Absolute path and CSVEntitySource

please report bugs here

Absolute path and CSVEntitySource

Postby moulusque » Tue Jan 11, 2011 5:04 pm

Hello,

In my configuration file I tried the following statements and 2 of them are not working. It seems that CSVEntitySource doesn't like
Absolute path.
The following syntax in the configuration works :

Code: Select all
<bean id="dictReader" class="CSVEntitySource">
   <property name="uri" value="../../../x.txt" />
   <property name="separator" value=","></property>
</bean>

but not the ones bellow :
Code: Select all
<bean id="dictReader" class="CSVEntitySource">
      <property name="uri" value="D:/java/workspace/bene/test-benerator/x.txt" />
      <property name="separator" value=","></property>
</bean>

and
Code: Select all
<bean id="dictReader" class="CSVEntitySource">
      <property name="uri" value="D:\java\workspace\bene\test-benerator\x.txt" />
      <property name="separator" value=","></property>
</bean>

The following exeption is thrown :

ERROR (main) [GenerateOrIterateStatement] Error in execution of task GenerateAndConsumeTask
java.lang.RuntimeException: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at org.databene.commons.IOUtil.resolveRelativeFile(IOUtil.java:267)
at org.databene.commons.IOUtil.resolveRelativeUri(IOUtil.java:255)
at org.databene.benerator.engine.BeneratorContext.resolveRelativeUri(BeneratorContext.java:261)
at org.databene.model.data.FileBasedEntitySource.getAbsoluteUri(FileBasedEntitySource.java:63)
at org.databene.platform.csv.CSVEntitySource.iterator(CSVEntitySource.java:98)
at org.databene.platform.csv.CSVEntitySource.iterator(CSVEntitySource.java:39)
at org.databene.benerator.wrapper.IteratingGenerator.createIterator(IteratingGenerator.java:127)
at org.databene.benerator.wrapper.IteratingGenerator.init(IteratingGenerator.java:88)
at org.databene.benerator.composite.SourceAwareGenerator.init(SourceAwareGenerator.java:77)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.initGenerator(GenerateAndConsumeTask.java:186)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:120)
at org.databene.task.TaskProxy.execute(TaskProxy.java:58)
at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:58)
at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:49)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:138)
at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:165)
at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:87)
at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:57)
at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:42)
at org.databene.benerator.engine.statement.TimedGeneratorStatement.execute(TimedGeneratorStatement.java:58)
at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:47)
at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:125)
at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:97)
at eu.europa.schengen.dataengine.dictgen.Main.main(Main.java:34)
Caused by: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:396)
at java.io.File.getCanonicalPath(File.java:559)
at org.databene.commons.IOUtil.resolveRelativeFile(IOUtil.java:265)
... 24 more
Exception in thread "main" java.lang.RuntimeException: java.lang.RuntimeException: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:147)
at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:165)
at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:87)
at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:57)
at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:42)
at org.databene.benerator.engine.statement.TimedGeneratorStatement.execute(TimedGeneratorStatement.java:58)
at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:47)
at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:125)
at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:97)
at eu.europa.schengen.dataengine.dictgen.Main.main(Main.java:34)
Caused by: java.lang.RuntimeException: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at org.databene.commons.IOUtil.resolveRelativeFile(IOUtil.java:267)
at org.databene.commons.IOUtil.resolveRelativeUri(IOUtil.java:255)
at org.databene.benerator.engine.BeneratorContext.resolveRelativeUri(BeneratorContext.java:261)
at org.databene.model.data.FileBasedEntitySource.getAbsoluteUri(FileBasedEntitySource.java:63)
at org.databene.platform.csv.CSVEntitySource.iterator(CSVEntitySource.java:98)
at org.databene.platform.csv.CSVEntitySource.iterator(CSVEntitySource.java:39)
at org.databene.benerator.wrapper.IteratingGenerator.createIterator(IteratingGenerator.java:127)
at org.databene.benerator.wrapper.IteratingGenerator.init(IteratingGenerator.java:88)
at org.databene.benerator.composite.SourceAwareGenerator.init(SourceAwareGenerator.java:77)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.initGenerator(GenerateAndConsumeTask.java:186)
at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:120)
at org.databene.task.TaskProxy.execute(TaskProxy.java:58)
at org.databene.task.StateTrackingTaskProxy.execute(StateTrackingTaskProxy.java:52)
at org.databene.task.runner.SingleThreadedTaskRunner.runWithoutPage(SingleThreadedTaskRunner.java:58)
at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:49)
at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:138)
... 9 more
Caused by: java.io.IOException: The filename, directory name, or volume label syntax is incorrect
at java.io.WinNTFileSystem.canonicalize0(Native Method)
at java.io.Win32FileSystem.canonicalize(Win32FileSystem.java:396)
at java.io.File.getCanonicalPath(File.java:559)
at org.databene.commons.IOUtil.resolveRelativeFile(IOUtil.java:265)
... 24 more
16:51:27,656 INFO (Thread-1) [BeneratorShutdownHook] Shut down Benerator



I checked several times the path of the file, but it is the good one.
moulusque
 
Posts: 27
Joined: Wed Oct 13, 2010 4:34 pm

Re: Absolute path and CSVEntitySource

Postby Volker Bergmann » Thu Jan 13, 2011 5:13 pm

Hi moulusque,

URIs without protocol always are interpreted as relative path specification, except for Unix paths that start with '/'.

Thus, for an absolute windows file location, you need to specify the 'file' protocol, e.g.

Code: Select all
<property name="uri" value="file:///D:/java/workspace/bene/test-benerator/x.txt" />

or

Code: Select all
<property name="uri" value="file:///D:\\java\\workspace\\bene\\test-benerator\\x.txt" />

Remember that '\' is an escape character for Benerator, so you have to use '\\' for specifying a backslash.

I agree that it would be nice to have automatic recognition of windows paths too and consider adding it in Benerator 0.6.5

Regards,
Volker 'databene' Bergmann

Need faster response times? phone support? onsite support? training? custom extensions? immediate bug fixes? Support Benerator evolution by buying services from Volker Bergmann!
User avatar
Volker Bergmann
 
Posts: 654
Joined: Sat Nov 10, 2007 2:40 pm

Re: Absolute path and CSVEntitySource

Postby moulusque » Tue Jan 18, 2011 5:11 pm

Ah yes I did not think about adding "file://"

Sorry :s


Thanks a lot for the reply

Moulusque
moulusque
 
Posts: 27
Joined: Wed Oct 13, 2010 4:34 pm


Return to Benerator Bugs

Who is online

Users browsing this forum: No registered users and 1 guest

cron