Author: tilman
Date: Sun May 10 05:02:15 2026
New Revision: 1934019

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

Modified:
   
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java
   
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatusPane.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 05:02:11 2026        (r1934018)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java 
    Sun May 10 05:02:15 2026        (r1934019)
@@ -420,13 +420,8 @@ public class PDFDebugger extends JFrame
         documentScroller.setViewportView(documentPanel);
 
         statusPane = new TreeStatusPane(tree);
-        statusPane.getPanel().setBorder(new BevelBorder(BevelBorder.RAISED));
-        Dimension preferredTreePathSize = 
statusPane.getPanel().getPreferredSize();
-        int treePathHeight = (int) 
Math.round(preferredTreePathSize.getHeight());
-        treePathHeight = Integer.parseInt(
-                configuration.getProperty("treePathHeight", 
Integer.toString(treePathHeight)));
-        preferredTreePathSize.height = treePathHeight;
-        statusPane.getPanel().setPreferredSize(preferredTreePathSize);
+        statusPane.init();
+
         getContentPane().add(statusPane.getPanel(), BorderLayout.PAGE_START);
 
         getContentPane().add(jSplitPane, BorderLayout.CENTER);

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatusPane.java
==============================================================================
--- 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatusPane.java
       Sun May 10 05:02:11 2026        (r1934018)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/treestatus/TreeStatusPane.java
       Sun May 10 05:02:15 2026        (r1934019)
@@ -19,6 +19,7 @@ package org.apache.pdfbox.debugger.trees
 
 import java.awt.BorderLayout;
 import java.awt.Color;
+import java.awt.Dimension;
 import java.awt.event.ActionEvent;
 import javax.swing.AbstractAction;
 import javax.swing.Action;
@@ -72,10 +73,12 @@ public class TreeStatusPane implements T
     public TreeStatusPane(JTree targetTree)
     {
         tree = targetTree;
-        init();
     }
 
-    private void init()
+    /**
+     * Initialization, to be called immediately after construction.
+     */
+    public void init()
     {
         panel = new JPanel(new BorderLayout());
         statusField = new JTextField();
@@ -88,6 +91,13 @@ public class TreeStatusPane implements T
         errorBorder = new BevelBorder(BevelBorder.LOWERED, Color.RED, 
Color.RED);
         statusField.setAction(textInputAction);
         tree.addTreeSelectionListener(this);
+        panel.setBorder(new BevelBorder(BevelBorder.RAISED));
+        Dimension preferredTreePathSize = panel.getPreferredSize();
+        int treePathHeight = (int) 
Math.round(preferredTreePathSize.getHeight());
+        treePathHeight = Integer.parseInt(
+                PDFDebugger.configuration.getProperty("treePathHeight", 
Integer.toString(treePathHeight)));
+        preferredTreePathSize.height = treePathHeight;
+        panel.setPreferredSize(preferredTreePathSize);
     }
 
     /**

Reply via email to