JXplorer should correctly encode non-english characters into UTF-8,
as per the spec; it's been tested with everything from French to
Chinese. "/ufffd' is a java unicode character escape sequence, which
should never be produced by JX, but might be produced by some java
code somewhere that is trying to 'make safe' a UTF-8 string - this
would be consistent with the ' ' -> '%20' behaviour.
- Chris Betts (JX dev team)
On 13/03/2006, at 7:59 PM, Tony Blanchard (JIRA) wrote:
> [ http://issues.apache.org/jira/browse/DIRSERVER-591?
> page=comments#action_12370132 ]
>
> Tony Blanchard commented on DIRSERVER-591:
> ------------------------------------------
>
> Hi Emmanuel,
>
> I did not try with another tool because I have no other tool yet.
> Nevertheless, I found the problem on my client code and tried with
> JXplorer which has the same pb.
>
> I have seen something to tell you about to reproduce in JXplorer.
> First of all, I have ACLs enabled and forgot to tell about it in
> environment...
>
> In JXplorer, under groups as admin, create a new entry with classes
> Top and groupOfUniqueNames.
> Enter the common name like "cn=secrétaire" and valiadate the
> creation box. In the right table of JXplorer, add as uniqueMember
> "uid=admin, ou=system".
> Submit changes to LDAP server. It works and you can look at the
> entry event if you look another one and come back to "secrétaire".
> Now, log out and login as admin. Go to "secrétaire" and there is an
> exception with these details :
>
>
> javax.naming.NameNotFoundException: [LDAP: error code 32 - failed
> on search operation:
> SearchRequest
> baseDn : 'cn=secr?taire,ou=groups,ou=system'
> filter : '(objectClass=*) '
> scope : base object
> typesOnly : false
> no limit
> Time Limit : no limit
> Deref Aliases : deref Finding Base Obj
> attributes :
> :
> org.apache.directory.shared.ldap.exception.LdapNameNotFoundException:
> Attempt to search under non-existant entry: cn=secr?
> taire,ou=groups,ou=system
> at
> org.apache.directory.server.core.exception.ExceptionService.assertHasE
> ntry(ExceptionService.java:377)
> at
> org.apache.directory.server.core.exception.ExceptionService.search
> (ExceptionService.java:353)
> at org.apache.directory.server.core.interceptor.InterceptorChain
> $Entry$1.search(InterceptorChain.java:1257)
> at
> org.apache.directory.server.core.authz.AuthorizationService.search
> (AuthorizationService.java:899)
> at org.apache.directory.server.core.interceptor.InterceptorChain
> $Entry$1.search(InterceptorChain.java:1257)
> at org.apache.directory.server.core.referral.ReferralService.search
> (ReferralService.java:905)
> at org.apache.directory.server.core.interceptor.InterceptorChain
> $Entry$1.search(InterceptorChain.java:1257)
> at
> org.apache.directory.server.core.authn.AuthenticationService.search
> (AuthenticationService.java:388)
> at org.apache.directory.server.core.interceptor.InterceptorChain
> $Entry$1.search(InterceptorChain.java:1257)
> at
> org.apache.directory.server.core.normalization.NormalizationService.se
> arch(NormalizationService.java:180)
> at
> org.apache.directory.server.core.interceptor.InterceptorChain.search
> (InterceptorChain.java:822)
> at
> org.apache.directory.server.core.partition.DirectoryPartitionNexusProx
> y.search(DirectoryPartitionNexusProxy.java:461)
> at
> org.apache.directory.server.core.partition.DirectoryPartitionNexusProx
> y.search(DirectoryPartitionNexusProxy.java:406)
> at org.apache.directory.server.core.jndi.ServerDirContext.search
> (ServerDirContext.java:526)
> at
> org.apache.directory.server.ldap.support.SearchHandler.messageReceived
> (SearchHandler.java:265)
> at org.apache.mina.handler.demux.DemuxingIoHandler.messageReceived
> (DemuxingIoHandler.java:128)
> at org.apache.directory.server.ldap.LdapProtocolProvider
> $LdapProtocolHandler.messageReceived(LdapProtocolProvider.java:431)
> at org.apache.mina.common.support.AbstractIoFilterChain
> $2.messageReceived(AbstractIoFilterChain.java:189)
> at
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageRe
> ceived(AbstractIoFilterChain.java:494)
> at org.apache.mina.common.support.AbstractIoFilterChain.access$1000
> (AbstractIoFilterChain.java:52)
> at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl
> $1.messageReceived(AbstractIoFilterChain.java:761)
> at org.apache.mina.filter.LoggingFilter.messageReceived
> (LoggingFilter.java:87)
> at
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageRe
> ceived(AbstractIoFilterChain.java:494)
> at org.apache.mina.common.support.AbstractIoFilterChain.access$1000
> (AbstractIoFilterChain.java:52)
> at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl
> $1.messageReceived(AbstractIoFilterChain.java:761)
> at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived
> (ProtocolCodecFilter.java:91)
> at
> org.apache.mina.common.support.AbstractIoFilterChain.callNextMessageRe
> ceived(AbstractIoFilterChain.java:494)
> at org.apache.mina.common.support.AbstractIoFilterChain.access$1000
> (AbstractIoFilterChain.java:52)
> at org.apache.mina.common.support.AbstractIoFilterChain$EntryImpl
> $1.messageReceived(AbstractIoFilterChain.java:761)
> at org.apache.mina.filter.ThreadPoolFilter.processEvent
> (ThreadPoolFilter.java:665)
> at org.apache.mina.filter.ThreadPoolFilter$Worker.processEvents
> (ThreadPoolFilter.java:421)
> at org.apache.mina.filter.ThreadPoolFilter$Worker.run
> (ThreadPoolFilter.java:376)
> ]; remaining name 'cn=secr taire,ou=groups,ou=system'
>
> If this is not enought to help i will try to install the tool you
> tell me about.
> Tony
>
>
>> Putting some chars like "é" in common name with JXPlorer or my
>> client code creates problems
>> ---------------------------------------------------------------------
>> ----------------------
>>
>> Key: DIRSERVER-591
>> URL: http://issues.apache.org/jira/browse/DIRSERVER-591
>> Project: Directory ApacheDS
>> Type: Bug
>> Versions: 1.0-RC1
>> Environment: Win XP SP2
>> JRE 1.5.0_04
>> ApacheDS RC1.0
>> Reporter: Tony Blanchard
>
>>
>> It seems the apacheds database does not like "é" chars.
>> I even think trying to destroy such entries containing such chars
>> lead to database severe corruption but I have no real and
>> systematic clue yet.
>> To reproduce, simply try to put a group with a "é" char in the cn
>> attribute with JXplorer. Now, try to modify it. Exception araise.
>> Now, in my client code, I see SearchResult returned with bad
>> results in getName() or getNameInNameSpace(). It seems it returns
>> a string with " " replaced by "%20" and "é" char replaced with a
>> value like /ufffd or something like this.
>> Nevertheless, if I retrieve the attributes from the SearchResult I
>> get the correct "cn" value with a correct "é" char in it
>
> --
> This message is automatically generated by JIRA.
> -
> If you think it was sent incorrectly contact one of the
> administrators:
> http://issues.apache.org/jira/secure/Administrators.jspa
> -
> For more information on JIRA, see:
> http://www.atlassian.com/software/jira
>
|