Weighing entities by attribute: NumberFormatException

please report bugs here

Weighing entities by attribute: NumberFormatException

Postby mgriffel » Thu Jan 19, 2012 5:11 pm

Hi,

I have problems getting the sample from the PDF Manual in section "5.36.2 Weighing imported entities by attribute" to work.

I have the following CSV file "cities.ent.csv":

Code: Select all
name,population
New York,8274527
Los Angeles,3834340
San Francisco,764976


and the follwoing benerator xml script:

Code: Select all
<generate type="address" count="100" consumer="ConsoleExporter">
    <variable name="city_data" source="cities.ent.csv"
        distribution="weighted[population]"/>
    <id name="id" type="long" />
    <attribute name="city" script="city_data.name"/>
 </generate>


When I execute the script with Maven I got the following exception:

Code: Select all
[INFO] --- maven-benerator-plugin:0.7.4:generate (default-cli)  ---
17:00:43,865 WARN  (main) [org.databene.commons.version.VersionInfo] Version number file 'org/databene/dbsanity/version.properties' not found, falling back to POM
17:00:43,874 WARN  (main) [org.databene.commons.version.VersionInfo] Version number file 'org/databene/gui/version.properties' not found, falling back to POM
17:00:43,881 INFO  (main) [org.databene.CONFIG] Running file Y:\work\mlp\BAP\workspace\bap-testdata\benerator.xml
17:00:43,881 INFO  (main) [org.databene.CONFIG] Benerator 0.7.4 build 1925
17:00:43,881 INFO  (main) [org.databene.CONFIG] Java version 1.6.0_22
17:00:43,881 INFO  (main) [org.databene.CONFIG] JVM Java HotSpot(TM) 64-Bit Server VM 17.1-b03 (Sun Microsystems Inc.)
17:00:43,881 INFO  (main) [org.databene.CONFIG] OS Windows 7 6.1 (amd64)
17:00:43,881 INFO  (main) [org.databene.CONFIG] Installed JSR 223 Script Engines:
17:00:43,885 INFO  (main) [org.databene.CONFIG] - Mozilla Rhino[js, rhino, JavaScript, javascript, ECMAScript, ecmascript]
17:00:43,885 INFO  (main) [org.databene.CONFIG] Max heap size: 455 MB
17:00:44,255 INFO  (main) [org.databene.task.runner.PagedTaskRunner] Running task GenerateAndConsumeTask(address) 100 times with page size 1 in a single thread
17:00:44,264 ERROR (main) [org.databene.benerator.engine.statement.GenerateOrIterateStatement] Error in execution of task GenerateAndConsumeTask
java.lang.NumberFormatException: For input string: "population"
        at sun.misc.FloatingDecimal.readJavaFormatString(FloatingDecimal.java:1224)
        at java.lang.Double.parseDouble(Double.java:510)
        at org.databene.benerator.csv.CSVGeneratorUtil.parseFile(CSVGeneratorUtil.java:71)
        at org.databene.benerator.csv.CSVGeneratorUtil.parseFile(CSVGeneratorUtil.java:59)
        at org.databene.benerator.sample.WeightedCSVSampleGenerator.init(WeightedCSVSampleGenerator.java:128)
        at org.databene.benerator.composite.AbstractGeneratorComponent.init(AbstractGeneratorComponent.java:63)
        at org.databene.benerator.composite.AbstractGeneratorComponent.prepare(AbstractGeneratorComponent.java:59)
        at org.databene.benerator.engine.statement.GenerateAndConsumeTask.prepareStatements(GenerateAndConsumeTask.java:260)
        at org.databene.benerator.engine.statement.GenerateAndConsumeTask.init(GenerateAndConsumeTask.java:112)
        at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:172)
        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:56)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:46)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:141)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:101)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:169)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:92)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:58)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:45)
        at org.databene.benerator.engine.statement.TimedGeneratorStatement.execute(TimedGeneratorStatement.java:66)
        at org.databene.benerator.engine.statement.SequentialStatement.executeSubStatements(SequentialStatement.java:51)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:46)
        at org.databene.benerator.engine.BeneratorRootStatement.execute(BeneratorRootStatement.java:62)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:127)
        at org.databene.benerator.engine.DescriptorRunner.runWithoutShutdownHook(DescriptorRunner.java:108)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:101)
        at org.databene.benerator.main.Benerator.runFile(Benerator.java:88)
        at org.databene.benerator.main.Benerator.runFromCommandLine(Benerator.java:76)
        at org.databene.benerator.main.Benerator.main(Benerator.java:69)
        at org.databene.benerator.maven.BeneratorMojo.execute(BeneratorMojo.java:96)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
[INFO] ------------------------------------------------------------------------


Furthermore if I change the
Code: Select all
distribution="weighted[population]"
attribute to
Code: Select all
distribution="random"
the follwoing exception is thrown:

Code: Select all
17:07:24,759 ERROR (main) [org.databene.benerator.engine.statement.GenerateOrIterateStatement] Error in execution of task address
org.databene.script.ScriptException: Error in script: city_data.name
        at org.databene.benerator.script.BeneratorScript.evaluate(BeneratorScript.java:60)
        at org.databene.script.ScriptUtil.execute(ScriptUtil.java:74)
        at org.databene.benerator.primitive.ScriptGenerator.generate(ScriptGenerator.java:60)
        at org.databene.benerator.wrapper.GeneratorWrapper.generateFromSource(GeneratorWrapper.java:69)
        at org.databene.benerator.wrapper.SingleSourceArrayGenerator.generate(SingleSourceArrayGenerator.java:83)
        at org.databene.benerator.composite.SimplifyingSingleSourceArrayGenerator.generate(SimplifyingSingleSourceArrayGenerator.java:51)
        at org.databene.benerator.composite.AbstractComponentBuilder.execute(AbstractComponentBuilder.java:50)
        at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:181)
        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:56)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:46)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:141)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:101)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:169)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:92)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:58)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:45)
        at org.databene.benerator.engine.statement.TimedGeneratorStatement.execute(TimedGeneratorStatement.java:66)
        at org.databene.benerator.engine.statement.SequentialStatement.executeSubStatements(SequentialStatement.java:51)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:46)
        at org.databene.benerator.engine.BeneratorRootStatement.execute(BeneratorRootStatement.java:62)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:127)
        at org.databene.benerator.engine.DescriptorRunner.runWithoutShutdownHook(DescriptorRunner.java:108)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:101)
        at org.databene.benerator.main.Benerator.runFile(Benerator.java:88)
        at org.databene.benerator.main.Benerator.runFromCommandLine(Benerator.java:76)
        at org.databene.benerator.main.Benerator.main(Benerator.java:69)
        at org.databene.benerator.maven.BeneratorMojo.execute(BeneratorMojo.java:96)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.databene.commons.ConfigurationError: Field not found: 'java.lang.String.name'
        at org.databene.commons.ExceptionMapper.configurationException(ExceptionMapper.java:133)
        at org.databene.commons.BeanUtil.getField(BeanUtil.java:1152)
        at org.databene.commons.accessor.FeatureAccessor.getValue(FeatureAccessor.java:112)
        at org.databene.commons.accessor.FeatureAccessor.getValue(FeatureAccessor.java:89)
        at org.databene.script.QNExpression.readField(QNExpression.java:93)
        at org.databene.script.QNExpression.resolveNamePart(QNExpression.java:86)
        at org.databene.script.QNExpression.evaluate(QNExpression.java:66)
        at org.databene.benerator.script.BeneratorScript.evaluate(BeneratorScript.java:58)
        ... 49 more
Caused by: java.lang.NoSuchFieldException: name
        at java.lang.Class.getField(Class.java:1520)
        at org.databene.commons.BeanUtil.getField(BeanUtil.java:1150)
        ... 55 more
17:07:24,761 ERROR (main) [org.databene.benerator.engine.statement.GenerateOrIterateStatement] Error in execution of task GenerateAndConsumeTask
java.lang.RuntimeException: org.databene.script.ScriptException: Error in script: city_data.name
        at org.databene.commons.ErrorHandler.handleError(ErrorHandler.java:91)
        at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:198)
        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:56)
        at org.databene.task.runner.SingleThreadedTaskRunner.run(SingleThreadedTaskRunner.java:46)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:141)
        at org.databene.task.runner.PagedTaskRunner.run(PagedTaskRunner.java:101)
        at org.databene.task.runner.PagedTaskRunner.execute(PagedTaskRunner.java:169)
        at org.databene.benerator.engine.statement.GenerateOrIterateStatement.execute(GenerateOrIterateStatement.java:92)
        at org.databene.benerator.engine.statement.LazyStatement.execute(LazyStatement.java:58)
        at org.databene.benerator.engine.statement.StatementProxy.execute(StatementProxy.java:45)
        at org.databene.benerator.engine.statement.TimedGeneratorStatement.execute(TimedGeneratorStatement.java:66)
        at org.databene.benerator.engine.statement.SequentialStatement.executeSubStatements(SequentialStatement.java:51)
        at org.databene.benerator.engine.statement.SequentialStatement.execute(SequentialStatement.java:46)
        at org.databene.benerator.engine.BeneratorRootStatement.execute(BeneratorRootStatement.java:62)
        at org.databene.benerator.engine.DescriptorRunner.execute(DescriptorRunner.java:127)
        at org.databene.benerator.engine.DescriptorRunner.runWithoutShutdownHook(DescriptorRunner.java:108)
        at org.databene.benerator.engine.DescriptorRunner.run(DescriptorRunner.java:101)
        at org.databene.benerator.main.Benerator.runFile(Benerator.java:88)
        at org.databene.benerator.main.Benerator.runFromCommandLine(Benerator.java:76)
        at org.databene.benerator.main.Benerator.main(Benerator.java:69)
        at org.databene.benerator.maven.BeneratorMojo.execute(BeneratorMojo.java:96)
        at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:101)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:209)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:153)
        at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:145)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:84)
        at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:59)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.singleThreadedBuild(LifecycleStarter.java:183)
        at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:161)
        at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:319)
        at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:156)
        at org.apache.maven.cli.MavenCli.execute(MavenCli.java:537)
        at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:196)
        at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:290)
        at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
        at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:409)
        at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
Caused by: org.databene.script.ScriptException: Error in script: city_data.name
        at org.databene.benerator.script.BeneratorScript.evaluate(BeneratorScript.java:60)
        at org.databene.script.ScriptUtil.execute(ScriptUtil.java:74)
        at org.databene.benerator.primitive.ScriptGenerator.generate(ScriptGenerator.java:60)
        at org.databene.benerator.wrapper.GeneratorWrapper.generateFromSource(GeneratorWrapper.java:69)
        at org.databene.benerator.wrapper.SingleSourceArrayGenerator.generate(SingleSourceArrayGenerator.java:83)
        at org.databene.benerator.composite.SimplifyingSingleSourceArrayGenerator.generate(SimplifyingSingleSourceArrayGenerator.java:51)
        at org.databene.benerator.composite.AbstractComponentBuilder.execute(AbstractComponentBuilder.java:50)
        at org.databene.benerator.engine.statement.GenerateAndConsumeTask.execute(GenerateAndConsumeTask.java:181)
        ... 42 more
Caused by: org.databene.commons.ConfigurationError: Field not found: 'java.lang.String.name'
        at org.databene.commons.ExceptionMapper.configurationException(ExceptionMapper.java:133)
        at org.databene.commons.BeanUtil.getField(BeanUtil.java:1152)
        at org.databene.commons.accessor.FeatureAccessor.getValue(FeatureAccessor.java:112)
        at org.databene.commons.accessor.FeatureAccessor.getValue(FeatureAccessor.java:89)
        at org.databene.script.QNExpression.readField(QNExpression.java:93)
        at org.databene.script.QNExpression.resolveNamePart(QNExpression.java:86)
        at org.databene.script.QNExpression.evaluate(QNExpression.java:66)
        at org.databene.benerator.script.BeneratorScript.evaluate(BeneratorScript.java:58)
        ... 49 more
Caused by: java.lang.NoSuchFieldException: name
        at java.lang.Class.getField(Class.java:1520)
        at org.databene.commons.BeanUtil.getField(BeanUtil.java:1150)
        ... 55 more


Any ideas what I made wrong?

Greetings

Michael
mgriffel
 
Posts: 2
Joined: Thu Jan 19, 2012 4:59 pm

Re: Weighing entities by attribute: NumberFormatException

Postby Volker Bergmann » Sat Jan 21, 2012 10:09 am

Hi Michael,

thanks for reporting - I was able to spot the problem and fixed the bug.
A new beta version is available at http://databene.org/download/databene-benerator-0.7.5-dist.zip,
the release is scheduled for the end of January 2012.

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: Weighing entities by attribute: NumberFormatException

Postby mgriffel » Wed Jan 25, 2012 5:06 pm

Hi Volker,

thank you for the quick fix!

I will check out the 0.7.5 release once it is available in the Maven repositories.

Greetings

Michael
mgriffel
 
Posts: 2
Joined: Thu Jan 19, 2012 4:59 pm


Return to Benerator Bugs

Who is online

Users browsing this forum: No registered users and 1 guest

cron