You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ak...@apache.org on 2006/08/08 19:17:02 UTC
svn commit: r429742 -
/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java
Author: akarasulu
Date: Tue Aug 8 10:17:01 2006
New Revision: 429742
URL: http://svn.apache.org/viewvc?rev=429742&view=rev
Log:
Fix for DIRSERVER-699: SubentriesControl causes null pointer exception
Modified:
directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java
Modified: directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java
URL: http://svn.apache.org/viewvc/directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java?rev=429742&r1=429741&r2=429742&view=diff
==============================================================================
--- directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java (original)
+++ directory/trunks/shared/ldap/src/main/java/org/apache/directory/shared/ldap/codec/TwixTransformer.java Tue Aug 8 10:17:01 2006
@@ -62,6 +62,7 @@
import org.apache.directory.shared.ldap.codec.search.SearchResultReference;
import org.apache.directory.shared.ldap.codec.search.SubstringFilter;
import org.apache.directory.shared.ldap.codec.search.controls.PSearchControl;
+import org.apache.directory.shared.ldap.codec.search.controls.SubEntryControl;
import org.apache.directory.shared.ldap.codec.util.LdapString;
import org.apache.directory.shared.ldap.codec.util.LdapStringEncodingException;
import org.apache.directory.shared.ldap.codec.util.LdapURL;
@@ -102,6 +103,7 @@
import org.apache.directory.shared.ldap.message.SearchResponseDoneImpl;
import org.apache.directory.shared.ldap.message.SearchResponseEntryImpl;
import org.apache.directory.shared.ldap.message.SearchResponseReferenceImpl;
+import org.apache.directory.shared.ldap.message.SubentriesControl;
import org.apache.directory.shared.ldap.message.UnbindRequestImpl;
import org.apache.directory.shared.ldap.message.extended.GracefulShutdownRequest;
import org.apache.directory.shared.ldap.message.extended.StoredProcedureRequest;
@@ -655,7 +657,7 @@
/**
- * Transform the Twix message to a Snickers message.
+ * Transform the Twix message to a codec neutral message.
*
* @param obj
* the object to transform
@@ -759,6 +761,15 @@
neutralPsearch.setCritical( twixControl.getCriticality() );
neutralPsearch.setValue( twixControl.getEncodedValue() );
}
+ else if ( twixControl.getControlValue() instanceof SubEntryControl )
+ {
+ SubentriesControl neutralSubentriesControl = new SubentriesControl();
+ SubEntryControl twixSubentriesControl = ( SubEntryControl ) twixControl.getControlValue();
+ neutralControl = neutralSubentriesControl;
+ neutralSubentriesControl.setVisibility( twixSubentriesControl.isVisible() );
+ neutralSubentriesControl.setCritical( twixControl.getCriticality() );
+ neutralSubentriesControl.setValue( twixControl.getEncodedValue() );
+ }
else if ( twixControl.getControlValue() instanceof byte[] )
{
neutralControl = new ControlImpl()
@@ -784,6 +795,32 @@
// m_value
neutralControl.setValue( ( byte[] ) twixControl.getControlValue() );
}
+ else if ( twixControl.getControlValue() == null )
+ {
+ neutralControl = new ControlImpl()
+ {
+ // Just to avoid a compilation warning !!!
+ public static final long serialVersionUID = 1L;
+
+
+ public byte[] getEncodedValue()
+ {
+ return null;
+ }
+ };
+
+ // Twix : boolean criticality -> Snickers : boolean
+ // m_isCritical
+ neutralControl.setCritical( twixControl.getCriticality() );
+
+ // Twix : OID controlType -> Snickers : String m_oid
+ neutralControl.setType( twixControl.getControlType() );
+
+ // Twix : OctetString controlValue -> Snickers : byte []
+ // m_value
+ neutralControl.setValue( ( byte[] ) twixControl.getControlValue() );
+ }
+
snickersMessage.add( neutralControl );
}