[
https://issues.apache.org/jira/browse/DIRSERVER-1457?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Emmanuel Lecharny updated DIRSERVER-1457:
-----------------------------------------
Fix Version/s: 2.0.0-RC1
We still have to fix the issue : if the specified MatchingRule does not fit the
syntax, then we should throw an exception when the AttributeType is being added
into the schema.
In the exposed use case, a caseIgnoreMatch EQUALITY matchingRule cannot be
applied on a binary AttributeType :
RFC 4517 :
"4.2.11. caseIgnoreMatch
The caseIgnoreMatch rule compares an assertion value of the Directory
String syntax to an attribute value of a syntax (e.g., the Directory
String, Printable String, Country String, or Telephone Number syntax)
whose corresponding ASN.1 type is DirectoryString or one of its
alternative string types."
> 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.