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;
}