directory-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "B G" <fitz...@gmail.com>
Subject Re: ldif directory path on windows
Date Wed, 02 May 2007 16:37:30 GMT
I am using the MutableServerStartupConfiguration so the code I am
using to set the ldif directory is something like

  MutableServerStartupConfiguration cfg = new
MutableServerStartupConfiguration();
  cfg.setLdifDirectory(new File("../my/relative/path/ldif"));

This File path is getting resolved to something like
C:\dev\my\relative\path\ldif.

Take a look at ServerContextFactory.addFileEntry method. This calls
getCanonical on the file path and / gets turned to \. As far as I can
tell there is no work
around for this issue on a windows platform where the absolute path
cannot be controlled in a manner to ensure that no possible hex values
follow a file seperator.
Given this, it is probably important to get this addressed.

This is also the case if you use server.xml to enter this path.

If you see that I am not understanding or doing something wrong please
let me know.

Thanks for the response...


>
> Hi,
>
> Have you tried to escape the escape character ?
>
> Something like : c:\\dev\\...
>
> Can you paste the piece of code you ar using to inject the ldif file, so
> that we have a clear idea about what happens ?
>
>
> Thanks !

On 5/2/07, B G <fitzbew@gmail.com> wrote:
>
> Hi...
>
> I am trying to use a ldif file to import schema into an embedded 1.5.0 ds.
>
> The issue I found has to do with what is configured for the path to the
> ldif
> directory on a windows machine. If this path contains any characters that
> are possible hex values after the  file seperator ( '\' on windows) things
> are totally screwed.
> This is because the DefaultStringNormalizer interprets the presence of any
> '\' characters as an escape for a hex sequence and tries to convert the
> following 2 bytes as hex. This is not a problem if the path has no
> possible
> hex values after the file seperator, but big problem otherwise.
>
> For example: C:\dev\ldif\myldif.ldif willl never work.
>
> Stack trace looks like this:
> javax.naming.NamingException: Invalid value : C:?v\ldif\myldif.ldif
>     at
>
> org.apache.directory.shared.ldap.schema.DeepTrimToLowerNormalizer.normalize
> (
> DeepTrimToLowerNormalizer.java:65)
>     at org.apache.directory.shared.ldap.schema.CachingNormalizer.normalize
> (
> CachingNormalizer.java:95)
>     at org.apache.directory.shared.ldap.name.LdapDN.rdnOidToName(
> LdapDN.java
> :1402)
>     at org.apache.directory.shared.ldap.name.LdapDN.normalize(LdapDN.java
> :1459)
>     at
> org.apache.directory.server.core.normalization.NormalizationService.add(
> NormalizationService.java:116)
>     at org.apache.directory.server.core.interceptor.InterceptorChain.add(
> InterceptorChain.java:708)
>     at org.apache.directory.server.core.partition.PartitionNexusProxy.add(
> PartitionNexusProxy.java:341)
>     at org.apache.directory.server.core.partition.PartitionNexusProxy.add(
> PartitionNexusProxy.java:329)
>     at
> org.apache.directory.server.core.jndi.ServerDirContext.createSubcontext(
> ServerDirContext.java:428)
>     at
> org.apache.directory.server.core.jndi.ServerDirContext.createSubcontext(
> ServerDirContext.java:374)
>     at org.apache.directory.server.jndi.ServerContextFactory.addFileEntry(
> ServerContextFactory.java:258)
>     at org.apache.directory.server.jndi.ServerContextFactory.loadLdifs(
> ServerContextFactory.java:383)
>     at org.apache.directory.server.jndi.ServerContextFactory.afterStartup(
> ServerContextFactory.java:209)
>     at org.apache.directory.server.core.DefaultDirectoryService.startup(
> DefaultDirectoryService.java:268)
>     at
>
> org.apache.directory.server.core.jndi.AbstractContextFactory.getInitialContext
> (AbstractContextFactory.java:123)
>
>
> Does anyone know of a work around for this?
>
> Thanks...
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message