Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

scoverage during runtime? #10

Closed
seregasheypak opened this issue Sep 25, 2014 · 5 comments
Closed

scoverage during runtime? #10

seregasheypak opened this issue Sep 25, 2014 · 5 comments

Comments

@seregasheypak
Copy link

Hi, I've used scoverage, now I run my jar in production. Here is a stacktrace

ava.lang.NoClassDefFoundError: scoverage/Invoker$
    at my.app.scalding.job.MyScaldingJob$.<init>(MyScaldingJob.scala:59)
    at my.app.scalding.job.MyScaldingJob$.<clinit>(MyScaldingJob.scala)
    at my.app.scalding.job.MyScaldingJob.mobPrefixDictParam(MyScaldingJob.scala)
    at my.app.scalding.job.MyScaldingJob$mobPrefixDictParam.call(Unknown Source)
    at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
    at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
    at my.app.scalding.job.Main.prepareJobJson(Main.groovy:24)
    at my.app.scalding.job.Main.main(Main.groovy:16)
    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.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:495)
    at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
    at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
    at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
    at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
    at java.security.AccessController.doPrivileged(Native Method)
    at javax.security.auth.Subject.doAs(Subject.java:396)
    at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1438)
    at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: java.lang.ClassNotFoundException: scoverage.Invoker$
    at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
    at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
    at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
    ... 22 more

what it could be?

@sksamuel
Copy link
Member

You need to add the jar as a dependency as well as the compiler plugin.

On 25 September 2014 16:09, seregasheypak notifications@github.com wrote:

Hi, I've used scoverage, now I run my jar in production. Here is a
stacktrace

ava.lang.NoClassDefFoundError: scoverage/Invoker$
at my.app.scalding.job.MyScaldingJob$.(MyScaldingJob.scala:59)
at my.app.scalding.job.MyScaldingJob$.(MyScaldingJob.scala)
at my.app.scalding.job.MyScaldingJob.mobPrefixDictParam(MyScaldingJob.scala)
at my.app.scalding.job.MyScaldingJob$mobPrefixDictParam.call(Unknown Source)
at org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)
at org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)
at my.app.scalding.job.Main.prepareJobJson(Main.groovy:24)
at my.app.scalding.job.Main.main(Main.groovy:16)
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.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:495)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1438)
at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: java.lang.ClassNotFoundException: scoverage.Invoker$
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 22 more

what it could be?


Reply to this email directly or view it on GitHub
#10.

@seregasheypak
Copy link
Author

It was added before. Eception is different with jar, it complains that
coverage file is missing. It tries to read coverage file from maven target
dir: ~/devops/jenkins/my-project/target/scoverage-bla-bla-bla

2014-09-25 19:39 GMT+04:00 Stephen Samuel notifications@github.com:

You need to add the jar as a dependency as well as the compiler plugin.

On 25 September 2014 16:09, seregasheypak notifications@github.com
wrote:

Hi, I've used scoverage, now I run my jar in production. Here is a
stacktrace

ava.lang.NoClassDefFoundError: scoverage/Invoker$
at my.app.scalding.job.MyScaldingJob$.(MyScaldingJob.scala:59)
at my.app.scalding.job.MyScaldingJob$.(MyScaldingJob.scala)
at
my.app.scalding.job.MyScaldingJob.mobPrefixDictParam(MyScaldingJob.scala)
at my.app.scalding.job.MyScaldingJob$mobPrefixDictParam.call(Unknown
Source)
at
org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:45)

at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:108)

at
org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:112)

at my.app.scalding.job.Main.prepareJobJson(Main.groovy:24)
at my.app.scalding.job.Main.main(Main.groovy:16)
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.apache.oozie.action.hadoop.LauncherMapper.map(LauncherMapper.java:495)
at org.apache.hadoop.mapred.MapRunner.run(MapRunner.java:50)
at org.apache.hadoop.mapred.MapTask.runOldMapper(MapTask.java:417)
at org.apache.hadoop.mapred.MapTask.run(MapTask.java:332)
at org.apache.hadoop.mapred.Child$4.run(Child.java:268)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:396)
at
org.apache.hadoop.security.UserGroupInformation.doAs(UserGroupInformation.java:1438)

at org.apache.hadoop.mapred.Child.main(Child.java:262)
Caused by: java.lang.ClassNotFoundException: scoverage.Invoker$
at java.net.URLClassLoader$1.run(URLClassLoader.java:202)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
... 22 more

what it could be?


Reply to this email directly or view it on GitHub
#10.


Reply to this email directly or view it on GitHub
#10 (comment)
.

@jozic
Copy link
Collaborator

jozic commented Sep 25, 2014

you can/should create a separate maven profile for coverage only and run it on your CI server.
but you shouldn't instrument your prod code

@seregasheypak
Copy link
Author

I did it already, had never such problems with cobertura.

2014-09-26 0:10 GMT+04:00 Eugene Platonov notifications@github.com:

you can/should create a separate maven profile for coverage only and run
it on your CI server.
but you shouldn't instrument your prod code


Reply to this email directly or view it on GitHub
#10 (comment)
.

@sksamuel
Copy link
Member

sksamuel commented Oct 2, 2014

Cobertura works differently, plus it doesn't have to use the scala maven plugin. Scoverage's life is more difficult because it has to play nice with that scala plugin too.

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

No branches or pull requests

3 participants