Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 512469

Summary: java.lang.VerifyError: JVMVRFY012 Stackform inkonsistent error while profiling
Product: [Eclipse Project] JDT Reporter: David Christensen <davidaca>
Component: CoreAssignee: JDT-Core-Inbox <jdt-core-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: davidaca
Version: 4.4.2   
Target Milestone: ---   
Hardware: PC   
OS: Windows All   
Whiteboard: stalebug
Attachments:
Description Flags
A Maven project for test case. none

Description David Christensen CLA 2017-02-20 23:39:17 EST
Having the following testcase based on a java 8 project

- Add JUNIT 4 Support to the Build/Classpath.
- Create a Java-Class : e.g. DummyService

***************
import java.util.stream.Collectors;
import java.util.stream.IntStream;


public class DummyService {

public String getValues(int size) {

  return IntStream.range(0, size).mapToObj(i -> ((Integer) i).
toString()).collect(Collectors.joining(", "));
}

}
**************

Create a JUnit-testclass: e.g.: DummyServiceTest

***************

import org.junit.Test;


public class DummyServiceTest {

@Test
public void testName() throws Exception {

  DummyService service = new DummyService();

  String values = service.getValues(20);
  System.out.println(values);
}
}

- Start with  Profile As  and create a launch configuration.
- Select, to "run all tests" and JUnit 4 as Testrunner.
- Inside  Profile Settings , activate as "Java Profiling" the  Execution Time Analysis .

Profile the application it will throw the JVMVRFY012 error.


Stack Trace:
java.lang.VerifyError: JVMVRFY012 Stackform inkonsistent;
Klasse=de/datev/eval/DummyService, Methode=getValues(I)
Ljava/lang/String;, PC=12
Exception Details:
  Location:
    de/datev/eval/DummyService.getValues(I)Ljava/lang/String; @12:
JBifne
  Reason:
    A stackmap frame is expected at branch target 19.
  Exception Handler Table:
    bci [19, 59] => handler: 60
at de.datev.eval.DummyServiceTest.testName(DummyServiceTest.java:11)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke
(NativeMethodAccessorImpl.java:95)
at sun.reflect.DelegatingMethodAccessorImpl.invoke
(DelegatingMethodAccessorImpl.java:55)
at java.lang.reflect.Method.invoke(Method.java:508)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall
(FrameworkMethod.java:47)
at org.junit.internal.runners.model.ReflectiveCallable.run
(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively
(FrameworkMethod.java:44)
at org.junit.internal.runners.statements.InvokeMethod.evaluate
(InvokeMethod.java:17)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:271)
at org.junit.runners.BlockJUnit4ClassRunner.runChild
(BlockJUnit4ClassRunner.java:70)
at org.junit.runners.BlockJUnit4ClassRunner.runChild
(BlockJUnit4ClassRunner.java:50)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:238)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:63)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:236)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:53)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:229)
at org.junit.runners.ParentRunner.run(ParentRunner.java:309)
at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run
(JUnit4TestReference.java:50)
at org.eclipse.jdt.internal.junit.runner.TestExecution.run
(TestExecution.java:38)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
(RemoteTestRunner.java:459)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests
(RemoteTestRunner.java:675)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run
(RemoteTestRunner.java:382)
at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main
(RemoteTestRunner.java:192)

I still can't reproduce the problem without profiling.
Regards
Comment 1 David Christensen CLA 2017-02-20 23:51:23 EST
Created attachment 266909 [details]
A Maven project for test case.

Contains also a Main.main() method for profiling as a Java Application.
Comment 2 Sasikanth Bharadwaj CLA 2017-02-21 00:41:05 EST
I gather that without profiling, the test runs just fine. Which profiler are you using? Do I need to install some tooling to be able to reproduce this problem?
Comment 3 David Christensen CLA 2017-02-23 11:57:52 EST
(In reply to Sasikanth Bharadwaj from comment #2)
> I gather that without profiling, the test runs just fine. Which profiler are
> you using? Do I need to install some tooling to be able to reproduce this
> problem?

TPTP. Probably the profiler is between.
Should we close this bug? 
Regards
Comment 4 Eclipse Genie CLA 2020-01-26 11:52:57 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet. As such, we're closing this bug.

If you have further information on the current state of the bug, please add it and reopen this bug. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.