[
https://issues.apache.org/jira/browse/DIRSERVER-1457?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12800508#action_12800508
]
Lorin Metzger commented on DIRSERVER-1457:
------------------------------------------
Thanks, for the additional information. I added caseIgnoreMatch because I
could not get it to create the attribute type without it.
Ex, with ldapmodify
ldap_initialize( ldap://localhost:10389 )
add attributeTypes:
( 1.3.6.1.4.1.65536.0.4.3.2.1
NAME 'template'
DESC 'Template Data'
SYNTAX 1.3.6.1.4.1.1466.115.121.1.5
SINGLE-VALUE)
modifying entry "cn=schema"
ldap_modify: Server is unwilling to perform (53)
additional info: UNWILLING_TO_PERFORM: failed for Modify Request
Object : '2.5.4.3=schema'
Modification[0]
Operation : add
Modification
attributeTypes: ( 1.3.6.1.4.1.65536.0.4.3.2.1 NAME 'template'
DESC 'Template Data' SYNTAX 1.3.6.1.4.1.1466.115.121.1.5
SINGLE-VALUE)
: Cannot permit the addition of an attributeType with an no EQUALITY
matchingRule
and no super type from which to derive an EQUALITY matchingRule.
> 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
> Fix For: 2.0.0-RC1
>
> 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.