This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 189285 - Compile on Save doesn't work with MLVM (InvokeDynamic)
Summary: Compile on Save doesn't work with MLVM (InvokeDynamic)
Status: RESOLVED INCOMPLETE
Alias: None
Product: java
Classification: Unclassified
Component: Compiler (show other bugs)
Version: 6.x
Hardware: Macintosh (x86) Mac OS X
: P3 normal (vote)
Assignee: Dusan Balek
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2010-08-07 04:23 UTC by hlovatt
Modified: 2011-11-10 12:48 UTC (History)
1 user (show)

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description hlovatt 2010-08-07 04:23:08 UTC
I am writing some code on the MLVM, in particular I am using InvokeDynamic. If I enable Compile on Save then I get the following error:

VM option '+UnlockExperimentalVMOptions'
VM option '+EnableMethodHandles'
VM option '+EnableInvokeDynamic'
VM option 'SuppressErrorAt=/constantPoolOop.cpp:283'
Exception in thread "main" invokedynamicmultipledispatch.MultipleDispatchException
        at invokedynamicmultipledispatch.Cost.cost(Cost.java:63)
        at invokedynamicmultipledispatch.Cost.main(Cost.java:46)
Caused by: java.lang.IllegalStateException: no bootstrap method found for invokedynamic
        at invokedynamicmultipledispatch.Cost.cost(Cost.java:61)
        ... 1 more
Java Result: 1

Note the MLVM build I am using prints out the -X options, the VM option ... lines above. All works fine if I disable Compile on Save.

The Java version I am using is from:

http://www.concord.org/~sbannasch/mlvm/

In particular July 30 build, which prints:

openjdk version "1.7.0-internal-fastdebug"
OpenJDK Runtime Environment (build 1.7.0-internal-fastdebug-stephen_2010_07_30_11_56-b00)
OpenJDK Server VM (build 19.0-b03-fastdebug, mixed mode)


 -- Howard.

PS The Track Java Dependancies also doesn't work, but that is an Ant issue. In particular you get:

Updating property file: /Users/lov080/Dropbox/Personal/Java/examples/Invoke Dynamic Multiple Dispatch/build/built-jar.properties
/Users/lov080/Dropbox/Personal/Java/examples/Invoke Dynamic Multiple Dispatch/nbproject/build-impl.xml:566: The following error occurred while executing this line:
/Users/lov080/Dropbox/Personal/Java/examples/Invoke Dynamic Multiple Dispatch/nbproject/build-impl.xml:319: 
java.lang.ClassFormatError: Invalid Constant Pool entry Type 17
        at org.apache.tools.ant.taskdefs.optional.depend.constantpool.ConstantPoolEntry.readEntry(ConstantPoolEntry.java:159)
        at org.apache.tools.ant.taskdefs.optional.depend.constantpool.ConstantPool.read(ConstantPool.java:67)
        at org.apache.tools.ant.taskdefs.optional.depend.ClassFile.read(ClassFile.java:72)
        at org.apache.tools.ant.taskdefs.optional.depend.AntAnalyzer.determineDependencies(AntAnalyzer.java:92)
        at org.apache.tools.ant.util.depend.AbstractAnalyzer.getClassDependencies(AbstractAnalyzer.java:100)
        at org.apache.tools.ant.taskdefs.optional.depend.Depend.determineDependencies(Depend.java:346)
        at org.apache.tools.ant.taskdefs.optional.depend.Depend.execute(Depend.java:718)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.Sequential.execute(Sequential.java:68)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.taskdefs.MacroInstance.execute(MacroInstance.java:398)
        at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:291)
        at sun.reflect.GeneratedMethodAccessor72.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:597)
        at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:106)
        at org.apache.tools.ant.Task.perform(Task.java:348)
        at org.apache.tools.ant.Target.execute(Target.java:390)
        at org.apache.tools.ant.Target.performTasks(Target.java:411)
        at org.apache.tools.ant.Project.executeSortedTargets(Project.java:1397)
        at org.apache.tools.ant.Project.executeTarget(Project.java:1366)
        at org.apache.tools.ant.helper.DefaultExecutor.executeTargets(DefaultExecutor.java:41)
        at org.apache.tools.ant.Project.executeTargets(Project.java:1249)
        at org.apache.tools.ant.module.bridge.impl.BridgeImpl.run(BridgeImpl.java:281)
        at org.apache.tools.ant.module.run.TargetExecutor.run(TargetExecutor.java:539)
        at org.netbeans.core.execution.RunClassThread.run(RunClassThread.java:154)

As you can see it is the extra entry in the Constant Pool used by InvokeDynamic that causes the Ant problem.
Comment 1 Jesse Glick 2011-04-06 11:54:25 UTC
(In reply to comment #0)
> java.lang.ClassFormatError: Invalid Constant Pool entry Type 17
>         at org.apache.tools.ant.taskdefs.optional.depend.constantpool.ConstantPoolEntry.readEntry(ConstantPoolEntry.java:159)

Please file on issues.apache.org and add jglick@netbeans.org to CC.
Comment 2 Dusan Balek 2011-11-10 12:48:02 UTC
Could you please create a simple test case project and attach it to the issue ? Thanks.