[ 
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.

Reply via email to