From e6eb7e4e1b8aa67a6eb5925a85bbd56ed91eb49b Mon Sep 17 00:00:00 2001 From: "Viktoria.Shirunova" Date: Mon, 9 Jul 2018 16:01:26 +0300 Subject: [PATCH] [gui-test] Process that ExtendedJTreePathFinder.value can return null --- .../testGuiFramework/driver/ExtendedJTreePathFinder.kt | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/platform/testGuiFramework/src/com/intellij/testGuiFramework/driver/ExtendedJTreePathFinder.kt b/platform/testGuiFramework/src/com/intellij/testGuiFramework/driver/ExtendedJTreePathFinder.kt index 264f2ba1c6b7..160f64965d65 100644 --- a/platform/testGuiFramework/src/com/intellij/testGuiFramework/driver/ExtendedJTreePathFinder.kt +++ b/platform/testGuiFramework/src/com/intellij/testGuiFramework/driver/ExtendedJTreePathFinder.kt @@ -27,7 +27,8 @@ class ExtendedJTreePathFinder(val jTree: JTree) { fun findMatchingPathByPredicate(vararg pathStrings: String, predicate: FinderPredicate): TreePath { val model = jTree.model if (jTree.isRootVisible) { - if (!predicate(pathStrings[0], jTree.value(model.root))) pathNotFound(*pathStrings) + val childValue = jTree.value(model.root) ?: "" + if (!predicate(pathStrings[0], childValue)) pathNotFound(*pathStrings) if (pathStrings.size == 1) return TreePath(arrayOf(model.root)) val result: TreePath = jTree.traverseChildren( @@ -104,7 +105,8 @@ class ExtendedJTreePathFinder(val jTree: JTree) { val child = model.getChild(node, childIndex) if (child is LoadingNode) throw ExtendedJTreeDriver.LoadingNodeException(node = child, treePath = this.getPathToNode(node)) - if (predicate(original, value(child))) { + val childValue = value(child) ?: continue + if (predicate(original, childValue)) { if (currentOrder == order) { if (pathStrings.size == 1) { return TreePath(arrayOf(child)) @@ -211,8 +213,8 @@ class ExtendedJTreePathFinder(val jTree: JTree) { return TreePath(path) } - private fun JTree.value(modelValue: Any): String { - return cellReader.valueAt(this, modelValue)!!.eraseZeroSpaceSymbols() + private fun JTree.value(modelValue: Any): String? { + return cellReader.valueAt(this, modelValue)?.eraseZeroSpaceSymbols() } private fun String.eraseZeroSpaceSymbols(): String = replace("\u200B", "")