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

asf-gitbox-commits 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 0aedf653a CAY-3002 Modeler: NPE after clicking path chooser
0aedf653a is described below

commit 0aedf653acbdd3597ee063b4b9b60671d6cb6c97
Author: Andrus Adamchik <[email protected]>
AuthorDate: Sat Aug 29 18:03:42 2026 -0400

    CAY-3002 Modeler: NPE after clicking path chooser
---
 RELEASE-NOTES.txt                                                   | 1 +
 .../editor/objentity/properties/DbAttributePathComboBoxEditor.java  | 2 ++
 .../objentity/properties/DbRelationshipPathComboBoxEditor.java      | 2 ++
 .../editor/objentity/properties/PathChooserComboBoxCellEditor.java  | 6 +++++-
 4 files changed, 10 insertions(+), 1 deletion(-)

diff --git a/RELEASE-NOTES.txt b/RELEASE-NOTES.txt
index 9b335e461..f99cfb9b3 100644
--- a/RELEASE-NOTES.txt
+++ b/RELEASE-NOTES.txt
@@ -17,6 +17,7 @@ CAY-2998 Modeler: clickabe "Target" column to navigate 
relationships
 CAY-2999 Modeler: A restricted method in java.lang.System has been called
 CAY-3000 Modeler: unifying the main views of all model objects
 CAY-3001 Modeler: Auto-increment attribute is not picked up
+CAY-3002 Modeler: NPE after clicking path chooser
 
 ----------------------------------
 Release: 5.0-M3
diff --git 
a/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbAttributePathComboBoxEditor.java
 
b/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbAttributePathComboBoxEditor.java
index bcf08e06b..186d0e464 100644
--- 
a/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbAttributePathComboBoxEditor.java
+++ 
b/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbAttributePathComboBoxEditor.java
@@ -60,6 +60,8 @@ class DbAttributePathComboBoxEditor extends 
PathChooserComboBoxCellEditor<ObjAtt
         this.row = row;
         treeModel = createTreeModelForComboBox(row);
         if (treeModel == null) {
+            // no combo box for this cell; drop the one left over from a 
previously edited row
+            pathChooser = null;
             return new JLabel("You should select table for this ObjectEntity");
         }
         initializeCombo(model, row, table);
diff --git 
a/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbRelationshipPathComboBoxEditor.java
 
b/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbRelationshipPathComboBoxEditor.java
index 661ae2f46..b0513ad67 100644
--- 
a/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbRelationshipPathComboBoxEditor.java
+++ 
b/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/DbRelationshipPathComboBoxEditor.java
@@ -57,6 +57,8 @@ class DbRelationshipPathComboBoxEditor extends 
PathChooserComboBoxCellEditor<Obj
         this.table = table;
         treeModel = createTreeModelForComboBox(row);
         if (treeModel == null) {
+            // no combo box for this cell; drop the one left over from a 
previously edited row
+            pathChooser = null;
             return new JLabel("You should select table for this ObjectEntity");
         }
         initializeCombo(model, row, table);
diff --git 
a/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/PathChooserComboBoxCellEditor.java
 
b/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/PathChooserComboBoxCellEditor.java
index 1dee114bf..fff9dd023 100644
--- 
a/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/PathChooserComboBoxCellEditor.java
+++ 
b/cayenne-modeler/src/main/java/org/apache/cayenne/modeler/ui/project/editor/objentity/properties/PathChooserComboBoxCellEditor.java
@@ -203,7 +203,11 @@ abstract class PathChooserComboBoxCellEditor<T extends 
CMTableModel<?>> extends
 
     @Override
     public boolean stopCellEditing() {
-        pathChooser.actionPerformed(new ActionEvent(this, 0, ""));
+        // "pathChooser" is null when the cell editor was never initialized, 
i.e. when the ObjEntity has no
+        // DbEntity and "getTableCellEditorComponent()" returned a placeholder 
label instead of the combo box
+        if (pathChooser != null) {
+            pathChooser.actionPerformed(new ActionEvent(this, 0, ""));
+        }
         fireEditingStopped();
         return true;
     }

Reply via email to