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