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 2008/03/22 20:19:43 UTC

svn commit: r640064 - in /directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs: InitializeAttributesJob.java InitializeChildrenJob.java

Author: seelmann
Date: Sat Mar 22 12:19:43 2008
New Revision: 640064

URL: http://svn.apache.org/viewvc?rev=640064&view=rev
Log:
Fixed alias and referrals handling in searches

Modified:
    directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeAttributesJob.java
    directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeChildrenJob.java

Modified: directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeAttributesJob.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeAttributesJob.java?rev=640064&r1=640063&r2=640064&view=diff
==============================================================================
--- directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeAttributesJob.java (original)
+++ directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeAttributesJob.java Sat Mar 22 12:19:43 2008
@@ -35,6 +35,8 @@
 import org.apache.directory.shared.ldap.name.LdapDN;
 import org.apache.directory.studio.connection.core.Connection;
 import org.apache.directory.studio.connection.core.StudioProgressMonitor;
+import org.apache.directory.studio.connection.core.Connection.AliasDereferencingMethod;
+import org.apache.directory.studio.connection.core.Connection.ReferralHandlingMethod;
 import org.apache.directory.studio.ldapbrowser.core.BrowserCoreMessages;
 import org.apache.directory.studio.ldapbrowser.core.events.AttributesInitializedEvent;
 import org.apache.directory.studio.ldapbrowser.core.events.EventRegistry;
@@ -222,11 +224,22 @@
         }
         else
         {
+            AliasDereferencingMethod aliasesDereferencingMethod = entry.getBrowserConnection()
+                .getAliasesDereferencingMethod();
+            if ( entry.isAlias() )
+            {
+                aliasesDereferencingMethod = AliasDereferencingMethod.NEVER;
+            }
+            ReferralHandlingMethod referralsHandlingMethod = entry.getBrowserConnection().getReferralsHandlingMethod();
+            if ( entry.isReferral() )
+            {
+                referralsHandlingMethod = ReferralHandlingMethod.MANAGE;
+            }
+            
             // search
             ISearch search = new Search( null, entry.getBrowserConnection(), entry.getDn(),
                 entry.isSubentry() ? ISearch.FILTER_SUBENTRY : ISearch.FILTER_TRUE, attributes, SearchScope.OBJECT, 0,
-                0, entry.getBrowserConnection().getAliasesDereferencingMethod(), entry.getBrowserConnection()
-                    .getReferralsHandlingMethod(), false, null );
+                0, aliasesDereferencingMethod, referralsHandlingMethod, false, null );
             SearchJob.searchAndUpdateModel( entry.getBrowserConnection(), search, monitor );
 
             // set initialized state
@@ -394,8 +407,8 @@
         ISearch search;
         IEntry entry;
         // search the entry
-        Connection.AliasDereferencingMethod derefAliasMethod = browserConnection.getAliasesDereferencingMethod();
-        Connection.ReferralHandlingMethod handleReferralsMethod = browserConnection.getReferralsHandlingMethod();
+        AliasDereferencingMethod derefAliasMethod = browserConnection.getAliasesDereferencingMethod();
+        ReferralHandlingMethod handleReferralsMethod = browserConnection.getReferralsHandlingMethod();
         search = new Search( null, browserConnection, dn, ISearch.FILTER_TRUE, ISearch.NO_ATTRIBUTES,
             SearchScope.OBJECT, 1, 0, derefAliasMethod, handleReferralsMethod, true, null );
         SearchJob.searchAndUpdateModel( browserConnection, search, monitor );

Modified: directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeChildrenJob.java
URL: http://svn.apache.org/viewvc/directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeChildrenJob.java?rev=640064&r1=640063&r2=640064&view=diff
==============================================================================
--- directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeChildrenJob.java (original)
+++ directory/studio/branches/1.1.0/ldapbrowser-core/src/main/java/org/apache/directory/studio/ldapbrowser/core/jobs/InitializeChildrenJob.java Sat Mar 22 12:19:43 2008
@@ -174,24 +174,22 @@
             
             // determine alias and referral handling
             SearchScope scope = SearchScope.ONELEVEL;
-            AliasDereferencingMethod derefAliasMethod = parent.getBrowserConnection().getAliasesDereferencingMethod();
-            ReferralHandlingMethod handleReferralsMethod = parent.getBrowserConnection().getReferralsHandlingMethod();
+            AliasDereferencingMethod aliasesDereferencingMethod = parent.getBrowserConnection().getAliasesDereferencingMethod();
+            if ( parent.isAlias() )
+            {
+                aliasesDereferencingMethod = AliasDereferencingMethod.NEVER;
+            }
+            ReferralHandlingMethod referralsHandlingMethod = parent.getBrowserConnection().getReferralsHandlingMethod();
+            if ( parent.isReferral() )
+            {
+                referralsHandlingMethod = ReferralHandlingMethod.MANAGE;
+            }
             Control[] controls = null;
-//            if( parent.isReferral() && handleReferralsMethod == ReferralHandlingMethod.MANAGE )
-//            {
-//                handleReferralsMethod = ReferralHandlingMethod.FOLLOW;
-//                scope = SearchScope.OBJECT;
-//            }
-//            if( parent.isAlias() && derefAliasMethod == AliasDereferencingMethod.NEVER )
-//            {
-//                derefAliasMethod = AliasDereferencingMethod.FINDING;
-//                scope = SearchScope.OBJECT;
-//            }
             
             // get children,
             ISearch search = new Search( null, parent.getBrowserConnection(), parent.getDn(), parent
                 .getChildrenFilter(), ISearch.NO_ATTRIBUTES, scope, parent.getBrowserConnection().getCountLimit(),
-                parent.getBrowserConnection().getTimeLimit(), derefAliasMethod, handleReferralsMethod,
+                parent.getBrowserConnection().getTimeLimit(), aliasesDereferencingMethod, referralsHandlingMethod,
                 BrowserCorePlugin.getDefault().getPluginPreferences().getBoolean(
                     BrowserCoreConstants.PREFERENCE_CHECK_FOR_CHILDREN ), controls );
             SearchJob.searchAndUpdateModel( parent.getBrowserConnection(), search, monitor );
@@ -238,7 +236,7 @@
             ISearch subSearch = new Search( null, parent.getBrowserConnection(), parent.getDn(), parent
                 .getChildrenFilter() != null ? parent.getChildrenFilter() : ISearch.FILTER_SUBENTRY,
                 ISearch.NO_ATTRIBUTES, scope, parent.getBrowserConnection().getCountLimit(), parent
-                    .getBrowserConnection().getTimeLimit(), derefAliasMethod, handleReferralsMethod, BrowserCorePlugin
+                    .getBrowserConnection().getTimeLimit(), aliasesDereferencingMethod, referralsHandlingMethod, BrowserCorePlugin
                     .getDefault().getPluginPreferences()
                     .getBoolean( BrowserCoreConstants.PREFERENCE_CHECK_FOR_CHILDREN ), new Control[]
                     { Control.SUBENTRIES_CONTROL } );