This is an automated email from the ASF dual-hosted git repository.
joergrade pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git
The following commit(s) were added to refs/heads/master by this push:
new 352725d ISIS-2949 catch NPE's
new 812ede7 Merge remote-tracking branch 'origin/master'
352725d is described below
commit 352725d3ed819ce9f66986d4e99acea1a5e9822a
Author: Jörg Rade <[email protected]>
AuthorDate: Fri Feb 4 14:00:17 2022 +0100
ISIS-2949 catch NPE's
---
.../isis/client/kroviz/ui/builder/ColBuilder.kt | 12 +++++---
.../apache/isis/client/kroviz/ui/core/RoMenuBar.kt | 7 +++--
.../apache/isis/client/kroviz/utils/StringUtils.kt | 36 +++++++++++++---------
3 files changed, 33 insertions(+), 22 deletions(-)
diff --git
a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/ColBuilder.kt
b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/ColBuilder.kt
index eec96ab..786921a 100644
---
a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/ColBuilder.kt
+++
b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/builder/ColBuilder.kt
@@ -68,11 +68,13 @@ class ColBuilder : UiBuilder() {
for (c in col.collectionList) {
val key = c.id // entities
val objectDM = dsp.displayModel
- val collectionDM = objectDM.collections.get(key)!!
- val tblCpt = RoTable(collectionDM)
- val fsPanel = FieldsetPanel(legend =
StringUtils.capitalize(key)).add(tblCpt)
- panel.add(fsPanel)
- collectionDM.isRendered = true
+ val collectionDM = objectDM.collections.get(key)
+ if (collectionDM != null) {
+ val tblCpt = RoTable(collectionDM)
+ val fsPanel = FieldsetPanel(legend =
StringUtils.capitalize(key)).add(tblCpt)
+ panel.add(fsPanel)
+ collectionDM.isRendered = true
+ }
}
return panel
}
diff --git
a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
index 278f03e..299b7a7 100644
---
a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
+++
b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/ui/core/RoMenuBar.kt
@@ -90,8 +90,11 @@ class RoMenuBar : SimplePanel() {
}
fun switch(session: Session) {
- mainEntry.image = session.resString
- mainEntry.icon = null
+ val resString = session.resString
+ if (resString != null) {
+ mainEntry.image = session.resString
+ mainEntry.icon = null
+ }
mainEntry.image.apply { systemIconStyle }
val logEntry =
SessionManager.getEventStore().findMenuBarsBy(session.baseUrl)
if (logEntry != null) {
diff --git
a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/StringUtils.kt
b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/StringUtils.kt
index d44e3c9..0606d95 100644
---
a/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/StringUtils.kt
+++
b/incubator/clients/kroviz/src/main/kotlin/org/apache/isis/client/kroviz/utils/StringUtils.kt
@@ -37,8 +37,12 @@ object StringUtils {
@OptIn(ExperimentalStdlibApi::class)
fun capitalize(input: String): String {
- val output = input.substring(1, input.length)
- return input.first().uppercaseChar() + output
+ return if (input != null && input.length > 0) {
+ val output = input.substring(1, input.length)
+ input.first().uppercaseChar() + output
+ } else {
+ input
+ }
}
@OptIn(ExperimentalStdlibApi::class)
@@ -126,10 +130,10 @@ object StringUtils {
}
internal fun argumentsAsString(
- args: Map<String, Argument?>?,
- start: String,
- sep: String,
- end: String
+ args: Map<String, Argument?>?,
+ start: String,
+ sep: String,
+ end: String
): String {
return if (args.isNullOrEmpty()) "" else {
var answer = start
@@ -144,10 +148,10 @@ object StringUtils {
}
internal fun argumentsAsList(
- args: Map<String, Argument?>?,
- start: String,
- sep: String,
- end: String
+ args: Map<String, Argument?>?,
+ start: String,
+ sep: String,
+ end: String
): String {
return if (args.isNullOrEmpty()) "" else {
var answer = start
@@ -214,13 +218,15 @@ object StringUtils {
val n: Int = (0xFF.and(raw[it].toInt()) shl 16) +
(0xFF.and(raw[it + 1].toInt()) shl 8) +
0xFF.and(raw[it + 2].toInt())
- listOf<Int>((n shr 18) and 0x3F,
- (n shr 12) and 0x3F,
- (n shr 6) and 0x3F,
- n and 0x3F).forEach { append(BASE64_SET[it]) }
+ listOf<Int>(
+ (n shr 18) and 0x3F,
+ (n shr 12) and 0x3F,
+ (n shr 6) and 0x3F,
+ n and 0x3F
+ ).forEach { append(BASE64_SET[it]) }
}
}.dropLast(pad.length)
- .toString() + pad
+ .toString() + pad
}
fun shorten(url: String): String {