You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@pdfbox.apache.org by ti...@apache.org on 2026/05/10 09:10:44 UTC

svn commit: r1934038 - in pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger: streampane ui/textsearcher

Author: tilman
Date: Sun May 10 09:10:44 2026
New Revision: 1934038

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

Modified:
   pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamTextView.java
   pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/textsearcher/Searcher.java

Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamTextView.java
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamTextView.java	Sun May 10 09:01:53 2026	(r1934037)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/streampane/StreamTextView.java	Sun May 10 09:10:44 2026	(r1934038)
@@ -65,6 +65,7 @@ class StreamTextView implements MouseMot
         textPane.addMouseMotionListener(this);
         textPane.setFont(new Font("monospaced", Font.PLAIN, 13));
         searcher = new Searcher(textPane);
+        searcher.init();
 
         JScrollPane scrollPane = new JScrollPane(textPane);
 

Modified: pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/textsearcher/Searcher.java
==============================================================================
--- pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/textsearcher/Searcher.java	Sun May 10 09:01:53 2026	(r1934037)
+++ pdfbox/trunk/debugger/src/main/java/org/apache/pdfbox/debugger/ui/textsearcher/Searcher.java	Sun May 10 09:10:44 2026	(r1934038)
@@ -52,7 +52,7 @@ public class Searcher implements Documen
     private static final Highlighter.HighlightPainter SELECTION_PAINTER =
             new DefaultHighlighter.DefaultHighlightPainter(new Color(109, 216, 26));
     private final SearchEngine searchEngine;
-    private final SearchPanel searchPanel;
+    private SearchPanel searchPanel;
     private final JTextComponent textComponent;
     private int totalMatch = 0;
     private int currentMatch = -1;
@@ -97,13 +97,21 @@ public class Searcher implements Documen
     public Searcher(JTextComponent textComponent)
     {
         this.textComponent = textComponent;
-        searchPanel = new SearchPanel(this, this, this, nextAction, previousAction);
         searchEngine = new SearchEngine(textComponent, PAINTER);
 
         nextAction.setEnabled(false);
         previousAction.setEnabled(false);
     }
 
+    /**
+     * Initialization, to be called immediately after construction.
+     */
+    public void init()
+    {
+        searchPanel = new SearchPanel(this, this, this, nextAction, previousAction);
+    }
+
+
     public JPanel getSearchPanel()
     {
         return searchPanel.getPanel();