@@ -48,7 +48,7 @@ class CLTree : ITree, IBulkTree {
48
48
constructor (hash: String? , store: IDeserializingKeyValueStore ) : this (if (hash == null ) null else store.get<CPTree >(hash) { CPTree .deserialize(it) }, store)
49
49
constructor (store: IDeserializingKeyValueStore ) : this (null as CPTree ? , store)
50
50
constructor (data: CPTree ? , store_: IDeserializingKeyValueStore ) : this (data, null as RepositoryId ? , store_)
51
- private constructor (data: CPTree ? , repositoryId_: RepositoryId ? , store_: IDeserializingKeyValueStore , useRoleIds: Boolean = false ) {
51
+ constructor (data: CPTree ? , repositoryId_: RepositoryId ? , store_: IDeserializingKeyValueStore , useRoleIds: Boolean = false ) {
52
52
var repositoryId = repositoryId_
53
53
var store = store_
54
54
if (data == null ) {
@@ -580,8 +580,10 @@ class CLTree : ITree, IBulkTree {
580
580
private fun checkPropertyRoleId (nodeId : Long , role : String? ) = checkRoleId(nodeId, role) { it.getAllProperties() }
581
581
private fun checkRoleId (nodeId : Long , role : String? , rolesGetter : (IConcept ) -> Iterable <IRole >) {
582
582
if (role != null && usesRoleIds()) {
583
- val concept = getConceptReference(nodeId)?.tryResolve()
584
- if (concept != null && rolesGetter(concept).any { it.getSimpleName() == role }) {
583
+ val isKnownRoleName = getConceptReference(nodeId)?.tryResolve()?.let { concept ->
584
+ runCatching { rolesGetter(concept).any { it.getSimpleName() == role } }.getOrNull()
585
+ } ? : false
586
+ if (isKnownRoleName) {
585
587
throw IllegalArgumentException (" A role UID is expected, but a name was provided: $role " )
586
588
}
587
589
}
0 commit comments