Author: tilman
Date: Sun May 10 08:47:10 2026
New Revision: 1934034

Log:
PDFBOX-5660: refactor, avoid leaking this in constructor; remove unused

Modified:
   
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
   
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
   pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
==============================================================================
--- 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java 
    Sun May 10 08:30:17 2026        (r1934033)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java 
    Sun May 10 08:47:10 2026        (r1934034)
@@ -377,6 +377,7 @@ public class PDFDebugger extends JFrame
         jSplitPane = new javax.swing.JSplitPane();
         JScrollPane jScrollPaneLeft = new JScrollPane();
         tree = new Tree();
+        tree.init();
         jScrollPaneRight = new JScrollPane();
         jTextPane = new javax.swing.JTextPane();
         

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
==============================================================================
--- 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
   Sun May 10 08:30:17 2026        (r1934033)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
   Sun May 10 08:47:10 2026        (r1934034)
@@ -34,12 +34,8 @@ import org.apache.pdfbox.debugger.ui.Xre
  */
 public final class TreeStatus
 {
-    private Object rootNode;
+    private final Object rootNode;
    
-    private TreeStatus()
-    {
-    }
-    
     /**
      * Constructor.
      *

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java 
Sun May 10 08:30:17 2026        (r1934033)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java 
Sun May 10 08:47:10 2026        (r1934034)
@@ -59,7 +59,6 @@ public class Tree extends JTree
 {
     // No logging possible in this class because it is created before the 
"LogDialog.init()" call
     private final JPopupMenu treePopupMenu;
-    private final Object rootNode;
 
     // Temporary files are stored in a private temp directory with restricted 
permissions,
     // which is deleted on exit using a shutdown hook.
@@ -72,8 +71,14 @@ public class Tree extends JTree
     public Tree()
     {
         treePopupMenu = new JPopupMenu();
+    }
+
+    /**
+     * Initialization, to be called immediately after construction.
+     */
+    public void init()
+    {
         setComponentPopupMenu(treePopupMenu);
-        rootNode = getModel().getRoot();
         int treeRowHeight = 
Integer.parseInt(PDFDebugger.configuration.getProperty(
                                     "treeRowHeight", 
Integer.toString(getRowHeight())));
         setRowHeight(treeRowHeight);
@@ -159,7 +164,8 @@ public class Tree extends JTree
         copyPathMenuItem.addActionListener(actionEvent ->
         {
             Clipboard clipboard = 
Toolkit.getDefaultToolkit().getSystemClipboard();
-            clipboard.setContents(new StringSelection(new 
TreeStatus(rootNode).getStringForPath(path)), null);
+            String pathString = new 
TreeStatus(getModel().getRoot()).getStringForPath(path);
+            clipboard.setContents(new StringSelection(pathString), null);
         });
         return copyPathMenuItem;
     }

Reply via email to