Hi,

As previously was already said by Mirko: there is a limit on a size of 
method in Java Virtual Machine - 64K.
Your method is already big, but a bit below this limit.
In order to provide you coverage JaCoCo adds few instructions into the 
method. And after that method crosses JVM limit.

So all in all - the only options are:
either exclude method from instrumentation and hence from coverage analysis,
either change code of a method to split it on several smaller ones.

Hope this clarifies and helps.

Evgeny

On Tuesday, February 14, 2017 at 10:40:50 PM UTC+1, 
[email protected] wrote:
>
> On Thursday, 9 February 2017 15:16:11 UTC-5, [email protected]  wrote:
> > I am successfully using Jacoco except one issue. Jacoco throws errors 
> when method body is very large. Is there any limitation on number of lines 
> in a method? If yes can we increase that limit? Unfortunately, there are so 
> many such methods in my project and splitting them is a big and tedious 
> task.
> > 
> > So I am looking for any alternate solution. Any help would be highly 
> appreciated.
>
> Thanks! I tried latest version jacoco-0.7.9 as you said. But it gives same 
> error. As you suggested here is full exception trace. Please let me know 
> your thoughts. Thanks again!!
>
> java.lang.instrument.IllegalClassFormatException: Error while 
> instrumenting class com/comp/xt/svc/Basxmcchglp1C00v02.
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.jacoco.agent.rt.internal_8ff85ea.CoverageTransformer.transform(CoverageTransformer.java:93)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> sun.instrument.TransformerManager.transform(TransformerManager.java:188)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:424)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> java.lang.ClassLoader.defineClass1(Native Method)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> java.lang.ClassLoader.defineClass(ClassLoader.java:800)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.apache.catalina.loader.WebappClassLoader.findClassInternal(WebappClassLoader.java:2957)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.apache.catalina.loader.WebappClassLoader.findClass(WebappClassLoader.java:1210)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1690)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1571)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> com.comp.xt.Rvd0x02.mainSubroutine(Rvd0x02.java:26)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.Process.run(Process.java:13)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.ProcessInfo.run(ProcessInfo.java:20)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> com.comp.xt.Rcd0xf06.mainSubroutine(Rcd0xf06.java:143)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.Process.run(Process.java:13)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.ProcessInfo.run(ProcessInfo.java:20)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> com.comp.pt.svc.util.Recv203.mainSubroutine(Pmscar203.java:435)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.Process.run(Process.java:13)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.ProcessInfo.run(ProcessInfo.java:20)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> com.comp.pt.svc.ctrl.Cycle01.mainSubroutine(Pmscoc01.java:1114)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.Process.run(Process.java:13)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.ProcessInfo.run(ProcessInfo.java:20)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> com.comp.pt.CycleController.StartDaily(Basstrcycl.java:125)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> com.comp.pt.custom.CycleController.mainSubroutine(Basstrcycl.java:82)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.Process.run(Process.java:13)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.ProcessInfo.run(ProcessInfo.java:20)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.DynamicCall.legacyInvoke(DynamicCall.java:271)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.DynamicCall.execute(DynamicCall.java:167)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.util.DynamicCall.invoke(DynamicCall.java:577)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.task.LegacyCustomTaskWrapper.invoke(LegacyCustomTaskWrapper.java:17)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> hx.mt.task.CustomTaskWrapper.run(CustomTaskWrapper.java:117)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> com.comp.pt.svc.custom.jobScheduler.QuartzAsyncJob.execute(QuartzAsyncJob.java:44)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.quartz.core.JobRunShell.run(Unknown Source)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(Unknown Source)
> INFO   | jvm 1    | 2017/02/14 16:30:21 | Caused by: java.io.IOException: 
> Error while instrumenting class com/comp/xt/svc/Basxmcchglp1C00v02.
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.jacoco.agent.rt.internal_8ff85ea.core.instr.Instrumenter.instrumentError(Instrumenter.java:166)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.jacoco.agent.rt.internal_8ff85ea.core.instr.Instrumenter.instrument(Instrumenter.java:117)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.jacoco.agent.rt.internal_8ff85ea.CoverageTransformer.transform(CoverageTransformer.java:91)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         ... 33 more
> INFO   | jvm 1    | 2017/02/14 16:30:21 | Caused by: 
> java.lang.RuntimeException: Method code too large!
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.jacoco.agent.rt.internal_8ff85ea.asm.MethodWriter.getSize(MethodWriter.java:2079)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.jacoco.agent.rt.internal_8ff85ea.asm.ClassWriter.toByteArray(ClassWriter.java:838)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.jacoco.agent.rt.internal_8ff85ea.core.instr.Instrumenter.instrument(Instrumenter.java:91)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         at 
> org.jacoco.agent.rt.internal_8ff85ea.core.instr.Instrumenter.instrument(Instrumenter.java:114)
> INFO   | jvm 1    | 2017/02/14 16:30:21 |         ... 34 more
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"JaCoCo and EclEmma Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jacoco/9718376d-7469-46bb-ac1b-49b50891f69e%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to