Skip to content

Commit 6fe77aa

Browse files
authored
Merge pull request #219 from solrudev/develop
0.25.4
2 parents d2eacd2 + d68973f commit 6fe77aa

3 files changed

Lines changed: 13 additions & 3 deletions

File tree

ackpine-plugins/privileged/src/main/kotlin/ru/solrudev/ackpine/privileged/PackageInstallerProxy.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public abstract class PackageInstallerProxy protected constructor(
5656

5757
private val installParameters = ConcurrentHashMap<UUID, PrivilegedInstallParameters>()
5858
private val uninstallParameters = ConcurrentHashMap<UUID, PrivilegedUninstallParameters>()
59-
private val packageInstallers = ConcurrentHashMap<Int, PackageInstaller>()
59+
private val packageInstallers = ConcurrentHashMap<PackageInstallerKey, PackageInstaller>()
6060
private val packageInstallerLocks = Locks(16)
6161

6262
final override fun bind(sessionId: UUID): PackageInstallerService {
@@ -71,7 +71,8 @@ public abstract class PackageInstallerProxy protected constructor(
7171
} else {
7272
targetUser.userId
7373
}
74-
val packageInstaller = packageInstallers.computeIfAbsentCompat(resolvedUserId, packageInstallerLocks) {
74+
val key = PackageInstallerKey(resolvedUserId, installerPackageName)
75+
val packageInstaller = packageInstallers.computeIfAbsentCompat(key, packageInstallerLocks) {
7576
createPackageInstaller(context, remotePackageInstaller, installerPackageName, resolvedUserId)
7677
}
7778
return BoundPackageInstaller(packageInstaller!!, resolvedUserId, installerPackageName)
@@ -113,6 +114,8 @@ public abstract class PackageInstallerProxy protected constructor(
113114
"PackageInstallerService must be bound to an Ackpine session before use"
114115
)
115116

117+
private data class PackageInstallerKey(val userId: Int, val installerPackageName: String)
118+
116119
private inner class BoundPackageInstaller(
117120
private val packageInstaller: PackageInstaller,
118121
private val userId: Int,

docs/changelog.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,13 @@ hide:
66
Change Log
77
==========
88

9+
Version 0.25.4 (2026-07-30)
10+
---------------------------
11+
12+
### Bug fixes and improvements
13+
14+
- Fix incorrect installer package name applied to a session when the same target user was already used with privileged plugins.
15+
916
Version 0.25.3 (2026-07-29)
1017
---------------------------
1118

version.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
{
22
"majorVersion": 0,
33
"minorVersion": 25,
4-
"patchVersion": 3,
4+
"patchVersion": 4,
55
"suffix": "",
66
"isSnapshot": false
77
}

0 commit comments

Comments
 (0)