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

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

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

Modified: 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
==============================================================================
--- 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
      Sun May 10 08:47:10 2026        (r1934034)
+++ 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
      Sun May 10 08:47:14 2026        (r1934035)
@@ -244,7 +244,8 @@ public class PDFDebugger extends JFrame
     {
         jSplitPane = new javax.swing.JSplitPane();
         JScrollPane jScrollPaneLeft = new JScrollPane();
-        tree = new Tree(this);
+        tree = new Tree();
+        tree.init();
         jScrollPaneRight = new JScrollPane();
         jTextPane = new javax.swing.JTextPane();
         

Modified: 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
==============================================================================
--- 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
    Sun May 10 08:47:10 2026        (r1934034)
+++ 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatus.java
    Sun May 10 08:47:14 2026        (r1934035)
@@ -33,12 +33,8 @@ import org.apache.pdfbox.debugger.ui.Pag
  */
 public final class TreeStatus
 {
-    private Object rootNode;
+    private final Object rootNode;
    
-    private TreeStatus()
-    {
-    }
-    
     /**
      * Constructor.
      *

Modified: 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
==============================================================================
--- 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
  Sun May 10 08:47:10 2026        (r1934034)
+++ 
pdfbox/branches/2.0/debugger/src/main/java/org/apache/pdfbox/debugger/ui/Tree.java
  Sun May 10 08:47:14 2026        (r1934035)
@@ -17,7 +17,6 @@
 
 package org.apache.pdfbox.debugger.ui;
 
-import java.awt.Component;
 import java.awt.Desktop;
 import java.awt.Point;
 import java.awt.Toolkit;
@@ -56,17 +55,21 @@ import org.apache.pdfbox.pdmodel.common.
 public class Tree extends JTree
 {
     private final JPopupMenu treePopupMenu;
-    private final Object rootNode;
 
     /**
      * Constructor.
-     * @param parentComponent the main UI where the Tree resides.
      */
-    public Tree(Component parentComponent)
+    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);
@@ -154,7 +157,8 @@ public class Tree extends JTree
             public void actionPerformed(ActionEvent 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