You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by nt...@apache.org on 2020/06/08 10:57:58 UTC

[cayenne] branch master updated: CAY-2661 NPE on DB Import screen logging unexpected tree node case

This is an automated email from the ASF dual-hosted git repository.

ntimofeev pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/cayenne.git


The following commit(s) were added to refs/heads/master by this push:
     new bfd7b35  CAY-2661 NPE on DB Import screen   logging unexpected tree node case
bfd7b35 is described below

commit bfd7b356fe2aee09b6fc34cf520f29ccb4f58a62
Author: Nikita Timofeev <st...@gmail.com>
AuthorDate: Mon Jun 8 13:57:50 2020 +0300

    CAY-2661 NPE on DB Import screen
      logging unexpected tree node case
---
 .../modeler/action/dbimport/TreeManipulationAction.java       | 11 ++++++++++-
 1 file changed, 10 insertions(+), 1 deletion(-)

diff --git a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/dbimport/TreeManipulationAction.java b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/dbimport/TreeManipulationAction.java
index 5b6c7d0..fbbc478 100644
--- a/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/dbimport/TreeManipulationAction.java
+++ b/modeler/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/action/dbimport/TreeManipulationAction.java
@@ -34,6 +34,8 @@ import org.apache.cayenne.modeler.editor.dbimport.DbImportModel;
 import org.apache.cayenne.modeler.editor.dbimport.DbImportTree;
 import org.apache.cayenne.modeler.undo.DbImportTreeUndoableEdit;
 import org.apache.cayenne.modeler.util.CayenneAction;
+import org.slf4j.Logger;
+import org.slf4j.LoggerFactory;
 
 import javax.swing.JTree;
 import javax.swing.tree.TreePath;
@@ -49,6 +51,8 @@ import java.util.Map;
  */
 public abstract class TreeManipulationAction extends CayenneAction {
 
+    private static final Logger LOGGER = LoggerFactory.getLogger(TreeManipulationAction.class);
+
     static final String EMPTY_NAME = "";
 
     protected DbImportTree tree;
@@ -154,7 +158,12 @@ public abstract class TreeManipulationAction extends CayenneAction {
             return false;
         }
         Class<?> selectedObjectClass = node.getUserObject().getClass();
-        return levels.get(selectedObjectClass).contains(insertableNodeClass);
+        List<Class<?>> classes = levels.get(selectedObjectClass);
+        if(classes == null) {
+            LOGGER.warn("Trying to insert node of the unknown class '" + selectedObjectClass.getName() + "' to the dbimport tree.");
+            return false;
+        }
+        return classes.contains(insertableNodeClass);
     }
 
     boolean canInsert() {