directory-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emmanuel Lecharny (JIRA)" <j...@apache.org>
Subject [jira] [Resolved] (DIRSERVER-1457) Binary Attribute Type causes java.lang.StackOverflowError
Date Wed, 08 Jun 2011 15:16:58 GMT

     [ https://issues.apache.org/jira/browse/DIRSERVER-1457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Emmanuel Lecharny resolved DIRSERVER-1457.
------------------------------------------

    Resolution: Fixed

Fixed in trunk.

A test has been added : http://svn.apache.org/viewvc?rev=1133419&view=rev

Basically, the problem was that the Syntax was not adequat, and that we didn't accept no Syntax.
The test demonstrates that we can now declare an AT without syntax with no 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
>             Fix For: 2.0.0-M1
>
>         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.
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message