[
https://issues.apache.org/jira/browse/DIRSERVER-1581?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12932513#action_12932513
]
Emmanuel Lecharny commented on DIRSERVER-1581:
----------------------------------------------
I think I have a fix. We should first set the isHR flag to true for every
meta-schema AT, then add a check in the getString() : if the value is binary
and the isHR is true, then convert the byte[] to a String :
public String getString() throws LdapInvalidAttributeValueException
{
Value<?> value = get();
if ( value instanceof StringValue )
{
return value.getString();
}
else
{
if ( isHR )
{
// Try to convert the value from a byte[] to a String
String valueStr = StringTools.utf8ToString(
(byte[])value.getReference() );
return valueStr;
}
String message = I18n.err( I18n.ERR_04131 );
LOG.error( message );
throw new LdapInvalidAttributeValueException(
ResultCodeEnum.INVALID_ATTRIBUTE_SYNTAX, message );
}
}
Should work. (at east, it works with the test I have added)
> attribute type with trailing space in the description prevents apacheds from
> restarting
> ---------------------------------------------------------------------------------------
>
> Key: DIRSERVER-1581
> URL: https://issues.apache.org/jira/browse/DIRSERVER-1581
> Project: Directory ApacheDS
> Issue Type: Bug
> Components: core
> Environment: Windows XP, JDK 1.6
> Reporter: Antoine Levy-Lambert
> Assignee: Emmanuel Lecharny
>
> I had one attribute type with a trailing space in the description
> attributetype ( 1.3.6.1.4.1.8104.1.1.37 NAME 'versionNumber' DESC
> 'versionNumber ' EQUALITY caseIgnoreMatch SUBSTR
> caseIgnoreSubstringsMatch SYNTAX 1.3.6.1.4.1.1466.115.121.1.15 SINGLE-VALUE)
> using directory 1.5.7 this translates in the following ldif :
> dn: m-oid=1.3.6.1.4.1.8104.1.1.37, ou=attributeTypes, cn=lea, ou=schema
> objectclass: metaAttributeType
> objectclass: metaTop
> objectclass: top
> m-oid: 1.3.6.1.4.1.8104.1.1.37
> m-name: versionNumber
> m-description:: dmVyc2lvbk51bWJlciA=
> m-equality: caseIgnoreMatch
> m-substr: caseIgnoreSubstringsMatch
> m-syntax: 1.3.6.1.4.1.1466.115.121.1.15
> m-length: 0
> m-singleValue: TRUE
> I managed to get this LDIF imported into the directory server
> Afterwards, I shutdown (hit Ctrl-C in fact) my directory server.
> When restarting, I get the following exception :
> [11:22:19] ERROR
> [org.apache.directory.shared.ldap.entry.DefaultEntryAttribute] -
> ERR_04131 The value is expected to be a String
> org.apache.directory.shared.ldap.exception.LdapInvalidAttributeValueException:
> ERR_04131 The value is expected to be a String
> at
> org.apache.directory.shared.ldap.entry.DefaultEntryAttribute.getString(DefaultEntryAttribute.java:500)
> at
> org.apache.directory.shared.ldap.schema.loader.ldif.SchemaEntityFactory.setSchemaObjectProperties(SchemaEntityFactory.java:1080)
> at
> org.apache.directory.shared.ldap.schema.loader.ldif.SchemaEntityFactory.getAttributeType(SchemaEntityFactory.java:985)
> at
> org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager.addAttributeTypes(DefaultSchemaManager.java:731)
> at
> org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager.addSchemaObjects(DefaultSchemaManager.java:238)
> at
> org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager.load(DefaultSchemaManager.java:684)
> at
> org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager.loadDepsFirst(DefaultSchemaManager.java:1138)
> at
> org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager.loadWithDeps(DefaultSchemaManager.java:1037)
> at
> org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager.loadAllEnabled(DefaultSchemaManager.java:928)
> at
> org.apache.directory.server.ApacheDsService.initSchemaLdifPartition(ApacheDsService.java:222)
> at
> org.apache.directory.server.ApacheDsService.start(ApacheDsService.java:154)
> at org.apache.directory.server.UberjarMain.main(UberjarMain.java:58)
> [11:22:19] ERROR [org.apache.directory.server.UberjarMain] - Failed to
> start the service.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.