Skip to content
This repository has been archived by the owner on Aug 7, 2020. It is now read-only.

eval() in js code would cause exception in FileStats.getFilePath() #40

Closed
daniel-deng opened this issue Jul 20, 2012 · 5 comments
Closed
Assignees
Labels
Milestone

Comments

@daniel-deng
Copy link

Cause:

eval() in javascript file would cause file paths in FileStats end in "some/path/myscript.js#342(eval)"

The error actually occur at line 139 for FileStats.java, where the logic is trying to access the file and get an absolute path from it.

Stacktrack:
Caused by: org.stringtemplate.v4.misc.STNoSuchPropertyException: no such property: com.github.timurstrekalov.saga.core.FileStats.filePath
    at org.stringtemplate.v4.misc.ObjectModelAdaptor.throwNoSuchProperty(ObjectModelAdaptor.java:110)
    at org.stringtemplate.v4.misc.ObjectModelAdaptor.getProperty(ObjectModelAdaptor.java:68)
    at org.stringtemplate.v4.Interpreter.getObjectProperty(Interpreter.java:1115)
    at org.stringtemplate.v4.Interpreter._exec(Interpreter.java:208)
    at org.stringtemplate.v4.Interpreter.exec(Interpreter.java:143)
    at org.stringtemplate.v4.Interpreter.writeObject(Interpreter.java:691)
    at org.stringtemplate.v4.Interpreter.writeIterator(Interpreter.java:721)
    at org.stringtemplate.v4.Interpreter.writeObject(Interpreter.java:696)
    at org.stringtemplate.v4.Interpreter.writeObjectWithOptions(Interpreter.java:653)
    at org.stringtemplate.v4.Interpreter._exec(Interpreter.java:290)
    at org.stringtemplate.v4.Interpreter.exec(Interpreter.java:143)
    at org.stringtemplate.v4.ST.write(ST.java:388)
    at org.stringtemplate.v4.ST.write(ST.java:421)
    at org.stringtemplate.v4.ST.write(ST.java:392)
    at com.github.timurstrekalov.saga.core.CoverageGenerator.writeRunStats(CoverageGenerator.java:321)
    at com.github.timurstrekalov.saga.core.CoverageGenerator.run(CoverageGenerator.java:179)
    at com.github.timurstrekalov.saga.maven.SagaMojo.execute(SagaMojo.java:85)
    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:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    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)
@daniel-deng
Copy link
Author

Just FYI, trying to run line 139 of FileStats.java in a debugger, with the above mentioned path pattern, would have this exception:

>Exception occurred in target VM: URI has a fragment component  java.lang.IllegalArgumentException: URI has a fragment component
    at java.io.File.<init>(File.java:399)
    at org.stringtemplate.v4.misc.ObjectModelAdaptor.throwNoSuchProperty(ObjectModelAdaptor.java:112)
    at org.stringtemplate.v4.misc.ObjectModelAdaptor.getProperty(ObjectModelAdaptor.java:68)
    at org.stringtemplate.v4.Interpreter.getObjectProperty(Interpreter.java:1115)
    at org.stringtemplate.v4.Interpreter._exec(Interpreter.java:208)
    at org.stringtemplate.v4.Interpreter.exec(Interpreter.java:143)
    at org.stringtemplate.v4.Interpreter.writeObject(Interpreter.java:691)
    at org.stringtemplate.v4.Interpreter.writeIterator(Interpreter.java:721)
    at org.stringtemplate.v4.Interpreter.writeObject(Interpreter.java:696)
    at org.stringtemplate.v4.Interpreter.writeObjectWithOptions(Interpreter.java:653)
    at org.stringtemplate.v4.Interpreter._exec(Interpreter.java:290)
    at org.stringtemplate.v4.Interpreter.exec(Interpreter.java:143)
    at org.stringtemplate.v4.ST.write(ST.java:388)
    at org.stringtemplate.v4.ST.write(ST.java:421)
    at org.stringtemplate.v4.ST.write(ST.java:392)
    at com.github.timurstrekalov.saga.core.CoverageGenerator.writeRunStats(CoverageGenerator.java:321)
    at com.github.timurstrekalov.saga.core.CoverageGenerator.run(CoverageGenerator.java:179)
    at com.github.timurstrekalov.saga.maven.SagaMojo.execute(SagaMojo.java:85)
    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:57)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:601)
    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)
 <

@daniel-deng
Copy link
Author

In case someone also encounters this, I am using this work-around in the configuration:

<noInstrumentPatterns>
    <pattern>.+\(eval\)</pattern>
</noInstrumentPatterns>

@timurstrekalov
Copy link
Owner

Thanks for the report and the workaround, will be fixed in the next release

@daniel-deng
Copy link
Author

@timurstrekalov You are welcome, and thanks for the great work on Saga :)

@timurstrekalov
Copy link
Owner

Should be fixed as of 1.1.1

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

No branches or pull requests

2 participants