You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by el...@apache.org on 2011/01/25 15:40:29 UTC
svn commit: r1063304 -
/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java
Author: elecharny
Date: Tue Jan 25 14:40:29 2011
New Revision: 1063304
URL: http://svn.apache.org/viewvc?rev=1063304&view=rev
Log:
Fixed a potential issue on some Java 5 VM
Modified:
directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java
Modified: directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java?rev=1063304&r1=1063303&r2=1063304&view=diff
==============================================================================
--- directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java (original)
+++ directory/shared/trunk/ldap/src/test/java/org/apache/directory/shared/ldap/codec/search/SearchRequestTest.java Tue Jan 25 14:40:29 2011
@@ -40,18 +40,21 @@ import org.apache.directory.shared.asn1.
import org.apache.directory.shared.asn1.ber.Asn1Decoder;
import org.apache.directory.shared.asn1.ber.tlv.TLVStateEnum;
import org.apache.directory.shared.ldap.codec.AttributeValueAssertion;
+import org.apache.directory.shared.ldap.codec.LdapEncoder;
import org.apache.directory.shared.ldap.codec.LdapMessageContainer;
import org.apache.directory.shared.ldap.codec.ResponseCarryingException;
import org.apache.directory.shared.ldap.codec.search.controls.subentries.SubentriesControl;
+import org.apache.directory.shared.ldap.message.SearchRequestImpl;
import org.apache.directory.shared.ldap.model.constants.SchemaConstants;
import org.apache.directory.shared.ldap.model.filter.SearchScope;
-import org.apache.directory.shared.ldap.model.message.*;
-import org.apache.directory.shared.ldap.codec.LdapEncoder;
-import org.apache.directory.shared.ldap.message.SearchRequestImpl;
-import org.apache.directory.shared.ldap.model.message.SearchResultDoneImpl;
+import org.apache.directory.shared.ldap.model.message.AliasDerefMode;
import org.apache.directory.shared.ldap.model.message.Control;
-import org.apache.directory.shared.ldap.model.schema.normalizers.OidNormalizer;
+import org.apache.directory.shared.ldap.model.message.Message;
+import org.apache.directory.shared.ldap.model.message.ResultCodeEnum;
+import org.apache.directory.shared.ldap.model.message.SearchRequest;
+import org.apache.directory.shared.ldap.model.message.SearchResultDoneImpl;
import org.apache.directory.shared.ldap.model.schema.normalizers.DeepTrimToLowerNormalizer;
+import org.apache.directory.shared.ldap.model.schema.normalizers.OidNormalizer;
import org.apache.directory.shared.util.Strings;
import org.junit.Before;
import org.junit.Test;
@@ -1030,7 +1033,7 @@ public class SearchRequestTest
@Test
public void testDecodeSearchRequestWithControls()
{
- byte[] asn1BER = new byte[]
+ byte[] asn1BERJava5 = new byte[]
{ 0x30, 0x7f,
0x02, 0x01, 0x04, // messageID
0x63, 0x33,
@@ -1062,18 +1065,56 @@ public class SearchRequestTest
'0', '.', '3', '.', '4', '.', '2',
};
+ byte[] asn1BERJava6 = new byte[]
+ { 0x30, 0x7f,
+ 0x02, 0x01, 0x04, // messageID
+ 0x63, 0x33,
+ 0x04, 0x13, // baseObject
+ 'd', 'c', '=', 'm', 'y', '-', 'd', 'o', 'm', 'a', 'i', 'n', ',', 'd', 'c', '=', 'c', 'o', 'm',
+ 0x0a, 0x01, 0x02, // scope: subtree
+ 0x0a, 0x01, 0x03, // derefAliases: derefAlways
+ 0x02, 0x01, 0x00, // sizeLimit: 0
+ 0x02, 0x01, 0x00, // timeLimit: 0
+ 0x01, 0x01, 0x00, // typesOnly: false
+ ( byte ) 0x87, 0x0b, // Present filter: (objectClass=*)
+ 'o', 'b', 'j', 'e', 'c', 't', 'C', 'l', 'a', 's', 's',
+ 0x30, 0x00, // Attributes = '*'
+ ( byte ) 0xa0, 0x45, // controls
+ 0x30, 0x19,
+ 0x04, 0x17, // control
+ '2', '.', '1', '6', '.', '8', '4', '0',
+ '.', '1', '.', '1', '1', '3', '7', '3',
+ '0', '.', '3', '.', '4', '.', '2',
+ 0x30, 0x28,
+ 0x04, 0x16, // control
+ '1', '.', '2', '.', '8', '4', '0', '.',
+ '1', '1', '3', '5', '5', '6', '.', '1',
+ '.', '4', '.', '3', '1', '9',
+ 0x01, 0x01, ( byte ) 0xff, // criticality: false
+ 0x04, 0x0b,
+ 0x30, 0x09,
+ 0x02, 0x01, 0x02,
+ 0x04, 0x04, 0x47, 0x00, 0x00, 0x00, // value: pageSize=2
+ };
+
Asn1Decoder ldapDecoder = new Asn1Decoder();
- ByteBuffer stream = ByteBuffer.allocate( asn1BER.length );
- stream.put( asn1BER );
- String decodedPdu = Strings.dumpBytes(stream.array());
- stream.flip();
+ // For Java6
+ ByteBuffer streamJava6 = ByteBuffer.allocate( asn1BERJava6.length );
+ streamJava6.put( asn1BERJava6 );
+ String decodedPduJava6 = Strings.dumpBytes(streamJava6.array());
+ streamJava6.flip();
+
+ // For Java5
+ ByteBuffer streamJava5 = ByteBuffer.allocate( asn1BERJava5.length );
+ streamJava5.put( asn1BERJava5 );
+ String decodedPduJava5 = Strings.dumpBytes(streamJava5.array());
Asn1Container ldapMessageContainer = new LdapMessageContainer();
try
{
- ldapDecoder.decode( stream, ldapMessageContainer );
+ ldapDecoder.decode( streamJava6, ldapMessageContainer );
}
catch ( DecoderException de )
{
@@ -1118,7 +1159,8 @@ public class SearchRequestTest
assertEquals( 0x81, bb.limit() );
String encodedPdu = Strings.dumpBytes(bb.array());
- assertEquals( decodedPdu, encodedPdu );
+
+ assertTrue( decodedPduJava5.equals( encodedPdu ) || decodedPduJava6.equals( encodedPdu ) );
}
catch ( EncoderException ee )
{