You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@directory.apache.org by "Emmanuel Lecharny (JIRA)" <ji...@apache.org> on 2010/01/15 03:18:54 UTC
[jira] Commented: (DIRSERVER-1457) Binary Attribute Type causes
java.lang.StackOverflowError
[ https://issues.apache.org/jira/browse/DIRSERVER-1457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12800504#action_12800504 ]
Emmanuel Lecharny commented on DIRSERVER-1457:
----------------------------------------------
Thanks for the report.
There is obviously something wrong in the server, and it will be investigated.
I would suggest that you use the OctetString syntax (1.3.6.1.4.1.1466.115.121.1.40) instead of the binary one (1.3.6.1.4.1.1466.115.121.1.5 ) as it has been removed from the available syntax in LDP (RFC 4517, Appendix B, point 12) . Also do not associate an EQUALITY matching rule to this AttributeType, as it's a binary one. I think those two modifications should fix your problem.
> Binary Attribute Type causes java.lang.StackOverflowError
> ---------------------------------------------------------
>
> Key: DIRSERVER-1457
> URL: https://issues.apache.org/jira/browse/DIRSERVER-1457
> Project: Directory ApacheDS
> Issue Type: Bug
> Components: core
> Affects Versions: 1.5.5
> Environment: Ubuntu Linux x86_64
> Sun JDK 1.6.0_17-b04
> Reporter: Lorin Metzger
> Attachments: apacheds-rolling.log
>
>
> After creating a custom binary attribute like
> dn: cn=schema
> changetype: modify
> add: attributeTypes
> attributeTypes: ( 1.3.6.1.4.1.65536.0.4.3.2.1
> NAME 'templateData'
> DESC 'template data'
> EQUALITY caseIgnoreMatch
> SYNTAX 1.3.6.1.4.1.1466.115.121.1.5
> SINGLE-VALUE
> )
> And a objectclass which contains that attribute. Trying to insert a byte[] from Java/JNDI
> Attributes attrs = new BasicAttributes();
> BasicAttribute ocattr = new BasicAttribute("objectclass");
> ocattr.add("top");
> ocattr.add("templateObject"));
> attrs.put( ocattr );
> byte[] template_data = new byte[4096];
> attrs.put("templateData", template_data);
> context.bind("cn=atemplate,dc=kynen,dc=com", null, attrs);
> Causes the ApacheDS server to throw the following StackOverflowError
> [20:12:28] WARN [org.apache.directory.server.ldap.LdapProtocolHandler] - Unexpected exception forcing session to close: sending disconnect notice to client.
> java.lang.StackOverflowError
> at org.apache.directory.server.core.entry.ServerBinaryValue.getNormalizer(ServerBinaryValue.java:574)
> at org.apache.directory.server.core.entry.ServerBinaryValue.normalize(ServerBinaryValue.java:193)
> at org.apache.directory.server.core.entry.ServerBinaryValue.getNormalizedValueReference(ServerBinaryValue.java:238)
> at org.apache.directory.server.core.entry.ServerBinaryValue.hashCode(ServerBinaryValue.java:469)
> at java.util.HashMap.getEntry(HashMap.java:344)
> at java.util.HashMap.containsKey(HashMap.java:335)
> at org.apache.directory.shared.ldap.util.SequencedHashMap.containsKey(SequencedHashMap.java:299)
> at org.apache.directory.shared.ldap.util.SynchronizedLRUMap.get(SynchronizedLRUMap.java:99)
> at org.apache.directory.shared.ldap.schema.normalizers.CachingNormalizer.normalize(CachingNormalizer.java:90)
> at org.apache.directory.server.core.entry.ServerBinaryValue.normalize(ServerBinaryValue.java:203)
> at org.apache.directory.server.core.entry.ServerBinaryValue.getNormalizedValueReference(ServerBinaryValue.java:238)
> at org.apache.directory.server.core.entry.ServerBinaryValue.hashCode(ServerBinaryValue.java:469)
> at java.util.HashMap.getEntry(HashMap.java:344)
> at java.util.HashMap.containsKey(HashMap.java:335)
> at org.apache.directory.shared.ldap.util.SequencedHashMap.containsKey(SequencedHashMap.java:299)
> at org.apache.directory.shared.ldap.util.SynchronizedLRUMap.get(SynchronizedLRUMap.java:99)
> at org.apache.directory.shared.ldap.schema.normalizers.CachingNormalizer.normalize(CachingNormalizer.java:90)
> at org.apache.directory.server.core.entry.ServerBinaryValue.normalize(ServerBinaryValue.java:203)
> at org.apache.directory.server.core.entry.ServerBinaryValue.getNormalizedValueReference(ServerBinaryValue.java:238)
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.