You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by se...@apache.org on 2021/01/11 06:16:59 UTC

[directory-studio] branch master updated: DIRSTUDIO-837, DIRSTUDIO-1167: Move quick search to connection, fixes NPE

This is an automated email from the ASF dual-hosted git repository.

seelmann pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/directory-studio.git


The following commit(s) were added to refs/heads/master by this push:
     new 5d8d484  DIRSTUDIO-837, DIRSTUDIO-1167: Move quick search to connection, fixes NPE
5d8d484 is described below

commit 5d8d4845b0e63a2bb817c781a78d8321dd1bd2d7
Author: Stefan Seelmann <ma...@stefan-seelmann.de>
AuthorDate: Mon Jan 11 07:16:44 2021 +0100

    DIRSTUDIO-837, DIRSTUDIO-1167: Move quick search to connection, fixes NPE
---
 .../common/actions/OpenQuickSearchAction.java      |  4 ++--
 .../widgets/browser/BrowserContentProvider.java    |  2 +-
 .../widgets/browser/BrowserQuickSearchWidget.java  |  2 +-
 .../widgets/browser/BrowserUniversalListener.java  |  4 ++--
 .../studio/ldapbrowser/core/SearchManager.java     | 25 ----------------------
 .../ldapbrowser/core/model/IBrowserConnection.java | 16 ++++++++++++++
 .../core/model/impl/BrowserConnection.java         | 22 +++++++++++++++++++
 .../core/model/impl/DummyConnection.java           | 18 ++++++++++++++++
 .../browser/BrowserViewUniversalListener.java      |  6 +++---
 9 files changed, 65 insertions(+), 34 deletions(-)

diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java
index 774fd5b..b2130ec 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/actions/OpenQuickSearchAction.java
@@ -54,7 +54,7 @@ public class OpenQuickSearchAction extends BrowserAction
         if ( browserConnection != null )
         {
             // Getting the current quick search
-            IQuickSearch quickSearch = browserConnection.getSearchManager().getQuickSearch();
+            IQuickSearch quickSearch = browserConnection.getQuickSearch();
 
             // Creating a new quick search with the currently selected entry
             // if there's no current quick search or quick search isn't selected
@@ -74,7 +74,7 @@ public class OpenQuickSearchAction extends BrowserAction
 
                 // Creating a new quick search
                 quickSearch = new QuickSearch( searchBase, browserConnection );
-                browserConnection.getSearchManager().setQuickSearch( quickSearch );
+                browserConnection.setQuickSearch( quickSearch );
             }
 
             // Creating and opening the dialog
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java
index 222358c..b58e780 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserContentProvider.java
@@ -349,7 +349,7 @@ public class BrowserContentProvider implements ITreeContentProvider
         else if ( parent instanceof IEntry )
         {
             final IEntry parentEntry = ( IEntry ) parent;
-            IQuickSearch quickSearch = parentEntry.getBrowserConnection().getSearchManager().getQuickSearch();
+            IQuickSearch quickSearch = parentEntry.getBrowserConnection().getQuickSearch();
 
             if ( parentEntry instanceof IContinuation )
             {
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java
index 923ceb1..bdfb6d8 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserQuickSearchWidget.java
@@ -333,7 +333,7 @@ public class BrowserQuickSearchWidget
         quickSearch.getSearchParameter().setFilter( filter.toString() );
 
         // set new quick search
-        conn.getSearchManager().setQuickSearch( quickSearch );
+        conn.setQuickSearch( quickSearch );
 
         // execute quick search
         new StudioBrowserJob( new SearchRunnable( new ISearch[]
diff --git a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java
index ef37d6c..984f1ae 100644
--- a/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java
+++ b/plugins/ldapbrowser.common/src/main/java/org/apache/directory/studio/ldapbrowser/common/widgets/browser/BrowserUniversalListener.java
@@ -277,9 +277,9 @@ public class BrowserUniversalListener implements ConnectionUpdateListener, Entry
 
         if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() == EventDetail.SEARCH_REMOVED ) )
         {
-            if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
+            if ( search.getBrowserConnection().getQuickSearch() == search )
             {
-                search.getBrowserConnection().getSearchManager().setQuickSearch( null );
+                search.getBrowserConnection().setQuickSearch( null );
             }
         }
 
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java
index 7e7d5db..80d9603 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/SearchManager.java
@@ -28,7 +28,6 @@ import java.util.List;
 import org.apache.directory.studio.ldapbrowser.core.events.EventRegistry;
 import org.apache.directory.studio.ldapbrowser.core.events.SearchUpdateEvent;
 import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
-import org.apache.directory.studio.ldapbrowser.core.model.IQuickSearch;
 import org.apache.directory.studio.ldapbrowser.core.model.ISearch;
 import org.eclipse.osgi.util.NLS;
 
@@ -50,8 +49,6 @@ public class SearchManager implements Serializable
     /** The connection. */
     private IBrowserConnection connection;
 
-    /** The quick search. */
-    private IQuickSearch quickSearch;
 
     /**
      * Creates a new instance of SearchManager.
@@ -212,26 +209,4 @@ public class SearchManager implements Serializable
     {
         return searchList.size();
     }
-
-
-    /**
-     * Sets the quick search.
-     * 
-     * @param quickSearch the new quick search
-     */
-    public void setQuickSearch( IQuickSearch quickSearch )
-    {
-        this.quickSearch = quickSearch;
-    }
-
-
-    /**
-     * Gets the quick search.
-     * 
-     * @return the quick search
-     */
-    public IQuickSearch getQuickSearch()
-    {
-        return quickSearch;
-    }
 }
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/IBrowserConnection.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/IBrowserConnection.java
index 6dae532..d679c10 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/IBrowserConnection.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/IBrowserConnection.java
@@ -456,6 +456,22 @@ public interface IBrowserConnection extends Serializable, IAdaptable, Connection
 
 
     /**
+     * Sets the quick search.
+     * 
+     * @param quickSearch the new quick search
+     */
+     void setQuickSearch( IQuickSearch quickSearch );
+
+
+    /**
+     * Gets the quick search.
+     * 
+     * @return the quick search
+     */
+    IQuickSearch getQuickSearch();
+
+
+    /**
      * Gets the root DSE.
      * 
      * @return the root DSE
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/BrowserConnection.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/BrowserConnection.java
index 38150f3..f1845d4 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/BrowserConnection.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/BrowserConnection.java
@@ -37,6 +37,7 @@ import org.apache.directory.studio.ldapbrowser.core.SearchManager;
 import org.apache.directory.studio.ldapbrowser.core.internal.search.LdapSearchPageScoreComputer;
 import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
 import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
+import org.apache.directory.studio.ldapbrowser.core.model.IQuickSearch;
 import org.apache.directory.studio.ldapbrowser.core.model.IRootDSE;
 import org.apache.directory.studio.ldapbrowser.core.model.ISearch;
 import org.apache.directory.studio.ldapbrowser.core.model.schema.Schema;
@@ -69,6 +70,9 @@ public class BrowserConnection implements IBrowserConnection, Serializable
     /** The bookmark manager. */
     private BookmarkManager bookmarkManager;
 
+    /** The quick search. */
+    private IQuickSearch quickSearch;
+
     /** The dn to entry cache. */
     private volatile Map<String, IEntry> dnToEntryCache;
 
@@ -495,6 +499,24 @@ public class BrowserConnection implements IBrowserConnection, Serializable
     }
 
 
+    /** 
+     * {@inheritDoc}
+     */
+    public void setQuickSearch( IQuickSearch quickSearch )
+    {
+        this.quickSearch = quickSearch;
+    }
+
+
+    /** 
+     * {@inheritDoc}
+     */
+    public IQuickSearch getQuickSearch()
+    {
+        return quickSearch;
+    }
+
+
     /**
      * {@inheritDoc}
      */
diff --git a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/DummyConnection.java b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/DummyConnection.java
index 9a0dbd8..43d5845 100644
--- a/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/DummyConnection.java
+++ b/plugins/ldapbrowser.core/src/main/java/org/apache/directory/studio/ldapbrowser/core/model/impl/DummyConnection.java
@@ -28,6 +28,7 @@ import org.apache.directory.studio.ldapbrowser.core.BookmarkManager;
 import org.apache.directory.studio.ldapbrowser.core.SearchManager;
 import org.apache.directory.studio.ldapbrowser.core.model.IBrowserConnection;
 import org.apache.directory.studio.ldapbrowser.core.model.IEntry;
+import org.apache.directory.studio.ldapbrowser.core.model.IQuickSearch;
 import org.apache.directory.studio.ldapbrowser.core.model.IRootDSE;
 import org.apache.directory.studio.ldapbrowser.core.model.schema.Schema;
 
@@ -389,6 +390,23 @@ public class DummyConnection implements IBrowserConnection
     /** 
      * {@inheritDoc}
      */
+    public void setQuickSearch( IQuickSearch quickSearch )
+    {
+    }
+
+
+    /** 
+     * {@inheritDoc}
+     */
+    public IQuickSearch getQuickSearch()
+    {
+        return null;
+    }
+
+
+    /** 
+     * {@inheritDoc}
+     */
     public LdapUrl getUrl()
     {
         return null;
diff --git a/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java b/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java
index 7909713..f00e941 100644
--- a/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java
+++ b/plugins/ldapbrowser.ui/src/main/java/org/apache/directory/studio/ldapbrowser/ui/views/browser/BrowserViewUniversalListener.java
@@ -550,9 +550,9 @@ public class BrowserViewUniversalListener extends BrowserUniversalListener imple
 
         if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() == EventDetail.SEARCH_REMOVED ) )
         {
-            if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
+            if ( search.getBrowserConnection().getQuickSearch() == search )
             {
-                search.getBrowserConnection().getSearchManager().setQuickSearch( null );
+                search.getBrowserConnection().setQuickSearch( null );
             }
         }
 
@@ -568,7 +568,7 @@ public class BrowserViewUniversalListener extends BrowserUniversalListener imple
         }
         else if ( ( search instanceof IQuickSearch ) && ( searchUpdateEvent.getDetail() != EventDetail.SEARCH_REMOVED ) )
         {
-            if ( search.getBrowserConnection().getSearchManager().getQuickSearch() == search )
+            if ( search.getBrowserConnection().getQuickSearch() == search )
             {
                 viewer.setSelection( new StructuredSelection( search ), true );
             }