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

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

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

Modified: 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
==============================================================================
--- 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
      Sun May 10 08:47:14 2026        (r1934035)
+++ 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
      Sun May 10 08:47:18 2026        (r1934036)
@@ -376,6 +376,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/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
==============================================================================
--- 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
    Sun May 10 08:47:14 2026        (r1934035)
+++ 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
    Sun May 10 08:47:18 2026        (r1934036)
@@ -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/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
==============================================================================
--- 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
  Sun May 10 08:47:14 2026        (r1934035)
+++ 
pdfbox/branches/3.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
  Sun May 10 08:47:18 2026        (r1934036)
@@ -58,7 +58,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.
@@ -71,8 +70,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);
@@ -158,7 +163,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