Skip to content

Commit ed9bd6d

Browse files
committed
fix(model-server): IImmutableStore is supposed to return null values
1 parent 2a10185 commit ed9bd6d

File tree

4 files changed

+6
-15
lines changed

4 files changed

+6
-15
lines changed

model-server/src/main/kotlin/org/modelix/model/server/store/IImmutableStore.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import org.modelix.model.IGenericKeyListener
77
* Doesn't require transactions.
88
*/
99
interface IImmutableStore<KeyT> {
10-
fun getAll(keys: Set<KeyT>): Map<KeyT, String>
10+
fun getAll(keys: Set<KeyT>): Map<KeyT, String?>
1111
fun addAll(entries: Map<KeyT, String>)
1212
fun getIfCached(key: KeyT): String?
1313
}

model-server/src/main/kotlin/org/modelix/model/server/store/IgniteStoreClient.kt

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -247,13 +247,9 @@ class IgniteStoreClient(jdbcProperties: Properties? = null, private val inmemory
247247

248248
override fun getImmutableStore(): IImmutableStore<ObjectInRepository> {
249249
return object : IImmutableStore<ObjectInRepository> {
250-
override fun getAll(keys: Set<ObjectInRepository>): Map<ObjectInRepository, String> {
250+
override fun getAll(keys: Set<ObjectInRepository>): Map<ObjectInRepository, String?> {
251251
keys.forEach { require(HashUtil.isSha256(it.key)) { "Not an immutable object: $it" } }
252-
return cache.getAll(keys).mapValues {
253-
val value = it.value
254-
if (value == null) throw ObjectValueNotFoundException(it.key.key)
255-
value
256-
}
252+
return cache.getAll(keys)
257253
}
258254

259255
override fun addAll(entries: Map<ObjectInRepository, String>) {

model-server/src/main/kotlin/org/modelix/model/server/store/InMemoryStoreClient.kt

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@ package org.modelix.model.server.store
22

33
import org.modelix.model.IGenericKeyListener
44
import org.modelix.model.persistent.HashUtil
5-
import org.modelix.model.server.handlers.ObjectValueNotFoundException
65
import org.slf4j.LoggerFactory
76

87
fun generateId(idStr: String?): Long {
@@ -138,14 +137,10 @@ class InMemoryStoreClient : IsolatingStore, ITransactionManager, IRepositoryAwar
138137

139138
override fun getImmutableStore(): IImmutableStore<ObjectInRepository> {
140139
return object : IImmutableStore<ObjectInRepository> {
141-
override fun getAll(keys: Set<ObjectInRepository>): Map<ObjectInRepository, String> {
140+
override fun getAll(keys: Set<ObjectInRepository>): Map<ObjectInRepository, String?> {
142141
keys.forEach { require(HashUtil.isSha256(it.key)) { "Not an immutable object: $it" } }
143142
@OptIn(RequiresTransaction::class)
144-
return runRead { this@InMemoryStoreClient.getAll(keys) }.mapValues {
145-
val value = it.value
146-
if (value == null) throw ObjectValueNotFoundException(it.key.key)
147-
value
148-
}
143+
return runRead { this@InMemoryStoreClient.getAll(keys) }
149144
}
150145

151146
override fun addAll(entries: Map<ObjectInRepository, String>) {

model-server/src/main/kotlin/org/modelix/model/server/store/StoreClientAdapter.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -90,7 +90,7 @@ abstract class StoreClientAdapter(val client: IsolatingStore) : IStoreClient {
9090
override fun getImmutableStore(): IImmutableStore<String> {
9191
val immutableStore = client.getImmutableStore()
9292
return object : IImmutableStore<String> {
93-
override fun getAll(keys: Set<String>): Map<String, String> {
93+
override fun getAll(keys: Set<String>): Map<String, String?> {
9494
val fromRepository = immutableStore.getAll(keys.map { it.withRepoScope() }.toSet()).mapKeys { it.key.key }
9595
if (getRepositoryId() == null) return fromRepository
9696

0 commit comments

Comments
 (0)