JAR incompatibilities

View: New views
2 Messages — Rating Filter:   Alert me  

JAR incompatibilities

by Jim Showalter-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

I'm using the following classpath:

    <path id="cobertura.classpath">
     <fileset dir="${jars.dir}">
      <include name="asm-1.5.3.jar"/>
      <include name="asm-attrs-1.5.3.jar"/>
      <include name="cglib-2.1_3.jar"/>
      <include name="cglib-nodep-2.1_3.jar"/>
            <include name="easymock-2.5.1.jar"/>
            <include name="easymockclassextension.jar"/>
      <include name="jmockit.jar"/>
            <include name="junit-4.7.jar"/>
      <include name="log4j-1.2.15.jar"/>
      <include name="sqlitejdbc-v056.jar"/>
      <include name="C:/Program
Files/Java/jdk1.6.0_15/lib/tools.jar"/>
     </fileset>
        <fileset dir="${cobertura.dir}">
            <include name="cobertura.jar"/>
            <include name="lib/**/*.jar"/>
        </fileset>
    </path>

Instrumentation fails with:

[cobertura-instrument] WARN   addInstrumentationToSingleClass, Unable
to instrument file
C:\SimpleTest\target\com\jimandlisa\coverate\SimpleTest.class
[cobertura-instrument] java.lang.NoSuchMethodError:
org.objectweb.asm.ClassWriter.<init>(I)V
[cobertura-instrument]  at
net.sourceforge.cobertura.instrument.Main.addInstrumentationToSingleClass(Main.java:356)
[cobertura-instrument]  at
net.sourceforge.cobertura.instrument.Main.addInstrumentation(Main.java:416)
[cobertura-instrument]  at
net.sourceforge.cobertura.instrument.Main.parseArguments(Main.java:492)
[cobertura-instrument]  at
net.sourceforge.cobertura.instrument.Main.main(Main.java:514)
[cobertura-instrument] Cobertura: Saved information on 0 classes.
[cobertura-instrument] Instrument time: 547ms

If I reverse the order of the filesets in the classpath,
instrumentation succeeds, but then the tests fail with:

java.lang.NoSuchMethodError: org.objectweb.asm.ClassWriter.<init>(Z)V
 at
net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
 at
net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
 at
net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
 at
net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
 at net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
 at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
 at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
 at
org.easymock.classextension.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:93)
 at
org.easymock.internal.MocksControl.createMock(MocksControl.java:51)
 at org.easymock.classextension.EasyMock.createMock(EasyMock.java:46)
 at com.jimandlisa.coverage.SimpleTest.testSimple(SimpleTest.java:27)

It appears I am using a version of EasyMock or one of its dependencies
that is not compatible with cobertura. What version(s) can I use?


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Cobertura-devel mailing list
Cobertura-devel@...
https://lists.sourceforge.net/lists/listinfo/cobertura-devel

Parent Message unknown Re: JAR incompatibilities

by Jim Showalter-4 :: Rate this Message:

Reply to Author | View Threaded | Show Only this Message

RTF:
Why is Cobertura causing me to have classpath conflicts with ASM?

Cobertura uses ASM to modify your bytecode. There are a few other
popular programs that use ASM; Groovy and Hibernate, to name two. You
could have problems if Cobertura uses a different version of asm and
you add both versions to your classpath.

Cobertura only uses ASM when instrumenting. Cobertura does not need
ASM in your classpath when running tests. If you're seeing classpath
conflicts, just make sure the asm jar that comes with Cobertura is
used only by Cobertura, and only when instrumenting.

----- Original Message -----
From: "Jim Showalter" <jim@...>
To: <cobertura-devel@...>
Sent: Sunday, August 16, 2009 2:11 PM
Subject: JAR incompatibilities


> I'm using the following classpath:
>
>    <path id="cobertura.classpath">
>     <fileset dir="${jars.dir}">
>      <include name="asm-1.5.3.jar"/>
>      <include name="asm-attrs-1.5.3.jar"/>
>      <include name="cglib-2.1_3.jar"/>
>      <include name="cglib-nodep-2.1_3.jar"/>
>            <include name="easymock-2.5.1.jar"/>
>            <include name="easymockclassextension.jar"/>
>      <include name="jmockit.jar"/>
>            <include name="junit-4.7.jar"/>
>      <include name="log4j-1.2.15.jar"/>
>      <include name="sqlitejdbc-v056.jar"/>
>      <include name="C:/Program
> Files/Java/jdk1.6.0_15/lib/tools.jar"/>
>     </fileset>
>        <fileset dir="${cobertura.dir}">
>            <include name="cobertura.jar"/>
>            <include name="lib/**/*.jar"/>
>        </fileset>
>    </path>
>
> Instrumentation fails with:
>
> [cobertura-instrument] WARN   addInstrumentationToSingleClass,
> Unable to instrument file
> C:\SimpleTest\target\com\jimandlisa\coverate\SimpleTest.class
> [cobertura-instrument] java.lang.NoSuchMethodError:
> org.objectweb.asm.ClassWriter.<init>(I)V
> [cobertura-instrument]  at
> net.sourceforge.cobertura.instrument.Main.addInstrumentationToSingleClass(Main.java:356)
> [cobertura-instrument]  at
> net.sourceforge.cobertura.instrument.Main.addInstrumentation(Main.java:416)
> [cobertura-instrument]  at
> net.sourceforge.cobertura.instrument.Main.parseArguments(Main.java:492)
> [cobertura-instrument]  at
> net.sourceforge.cobertura.instrument.Main.main(Main.java:514)
> [cobertura-instrument] Cobertura: Saved information on 0 classes.
> [cobertura-instrument] Instrument time: 547ms
>
> If I reverse the order of the filesets in the classpath,
> instrumentation succeeds, but then the tests fail with:
>
> java.lang.NoSuchMethodError:
> org.objectweb.asm.ClassWriter.<init>(Z)V
> at
> net.sf.cglib.core.DebuggingClassWriter.<init>(DebuggingClassWriter.java:47)
> at
> net.sf.cglib.core.DefaultGeneratorStrategy.getClassWriter(DefaultGeneratorStrategy.java:30)
> at
> net.sf.cglib.core.DefaultGeneratorStrategy.generate(DefaultGeneratorStrategy.java:24)
> at
> net.sf.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:216)
> at
> net.sf.cglib.core.KeyFactory$Generator.create(KeyFactory.java:145)
> at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:117)
> at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:108)
> at net.sf.cglib.core.KeyFactory.create(KeyFactory.java:104)
> at net.sf.cglib.proxy.Enhancer.<clinit>(Enhancer.java:69)
> at
> org.easymock.classextension.internal.ClassProxyFactory.createProxy(ClassProxyFactory.java:93)
> at
> org.easymock.internal.MocksControl.createMock(MocksControl.java:51)
> at org.easymock.classextension.EasyMock.createMock(EasyMock.java:46)
> at com.jimandlisa.coverage.SimpleTest.testSimple(SimpleTest.java:27)
>
> It appears I am using a version of EasyMock or one of its
> dependencies that is not compatible with cobertura. What version(s)
> can I use?


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day
trial. Simplify your report design, integration and deployment - and focus on
what you do best, core application coding. Discover what's new with
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Cobertura-devel mailing list
Cobertura-devel@...
https://lists.sourceforge.net/lists/listinfo/cobertura-devel