Author: tilman
Date: Sun May 10 14:14:37 2026
New Revision: 1934052

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/streampane/StreamPane.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 13:34:03 2026        (r1934051)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/PDFDebugger.java 
    Sun May 10 14:14:37 2026        (r1934052)
@@ -1137,6 +1137,7 @@ public class PDFDebugger extends JFrame
             }
         }
         StreamPane streamPane = new StreamPane(stream, isContentStream, 
isThumb, resourcesDic);
+        streamPane.init();
         replaceRightComponent(streamPane.getPanel());
     }
 

Modified: 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamPane.java
==============================================================================
--- 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamPane.java
   Sun May 10 13:34:03 2026        (r1934051)
+++ 
pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamPane.java
   Sun May 10 14:14:37 2026        (r1934052)
@@ -143,6 +143,16 @@ public class StreamPane implements Actio
             niceView = null;
         }
 
+        tabbedPane = new JTabbedPane();
+    }
+
+    /**
+     * Initialization, to be called immediately after construction.
+     *
+     * @throws IOException if there is an I/O error during internal data 
transfer.
+     */
+    public void init() throws IOException
+    {
         if (stream.isImage())
         {
             panel.add(createHeaderPanel(stream.getFilterList(), Stream.IMAGE, 
this));
@@ -154,7 +164,6 @@ public class StreamPane implements Actio
             requestStreamText(Stream.DECODED);
         }
 
-        tabbedPane = new JTabbedPane();
         if (stream.isImage())
         {
             tabbedPane.add("Image view", rawView.getStreamPanel());

Reply via email to