Maven problem with Build 48 (Linux 64 bit)

Keith McGuigan keith.mcguigan at oracle.com
Tue Jul 17 09:29:39 PDT 2012


Hello,

Thanks for the report.  I investigated and there is a bug in the current 
hotspot implementation.  It manifests when a pre-jdk6-compiled class 
inherits an extension method with no arguments and a long or double 
return type.  When this happens the verifier throws the VerifyError that 
you're seeing.   Disabling the verifier is a decent workaround (or 
changing the extension method, or recompiling the affected class with 
-target 1.6 or greater).

I have a fix that I'll push to the hotspot repo (after some testing), so 
it should be good to go in the next build.

Patch for hotspot:
-----------------------------------------------------------------
diff --git a/src/share/vm/classfile/defaultMethods.cpp 
b/src/share/vm/classfile/defaultMethods.cpp
--- a/src/share/vm/classfile/defaultMethods.cpp
+++ b/src/share/vm/classfile/defaultMethods.cpp
@@ -841,6 +841,9 @@
    assert(out.at_return_type(), "Parameter counts do not match");
    assert(in.type() == out.type(), "Return types are not compatible");

+  if (parameter_count == 1 && (in.type() == T_LONG || in.type() == 
T_DOUBLE)) {
+    ++parameter_count; // need room for return value
+  }
    assem.invokespecial(target());

    if (in.is_object() && in.as_symbol(THREAD) != out.as_symbol(THREAD)) {
-----------------------------------------------------------------

--
- Keith

On 7/17/2012 6:15 AM, Deepak S Patwardhan wrote:
> Hello,
>
> I have a (pet lambda) Maven project which builds fine with Lambda build 39.
> However, with Build 48, I get the following error :
>
> [deepak at verne lambda]$ mvn clean
> ---------------------------------------------------
> constituent[0]: file:/opt/apache-maven-3.0.4/lib/aether-impl-1.13.1.jar
> constituent[1]:
> file:/opt/apache-maven-3.0.4/lib/plexus-interpolation-1.14.jar
> constituent[2]: file:/opt/apache-maven-3.0.4/lib/maven-model-3.0.4.jar
> constituent[3]: file:/opt/apache-maven-3.0.4/lib/wagon-http-2.2-shaded.jar
> constituent[4]:
> file:/opt/apache-maven-3.0.4/lib/sisu-inject-plexus-2.3.0.jar
> constituent[5]: file:/opt/apache-maven-3.0.4/lib/maven-core-3.0.4.jar
> constituent[6]:
> file:/opt/apache-maven-3.0.4/lib/maven-aether-provider-3.0.4.jar
> constituent[7]: file:/opt/apache-maven-3.0.4/lib/sisu-guice-3.1.0-no_aop.jar
> constituent[8]: file:/opt/apache-maven-3.0.4/lib/aether-spi-1.13.1.jar
> constituent[9]:
> file:/opt/apache-maven-3.0.4/lib/maven-model-builder-3.0.4.jar
> constituent[10]:
> file:/opt/apache-maven-3.0.4/lib/plexus-sec-dispatcher-1.3.jar
> constituent[11]: file:/opt/apache-maven-3.0.4/lib/aether-api-1.13.1.jar
> constituent[12]: file:/opt/apache-maven-3.0.4/lib/maven-settings-3.0.4.jar
> constituent[13]:
> file:/opt/apache-maven-3.0.4/lib/maven-repository-metadata-3.0.4.jar
> constituent[14]:
> file:/opt/apache-maven-3.0.4/lib/maven-settings-builder-3.0.4.jar
> constituent[15]: file:/opt/apache-maven-3.0.4/lib/sisu-inject-bean-2.3.0.jar
> constituent[16]: file:/opt/apache-maven-3.0.4/lib/plexus-utils-2.0.6.jar
> constituent[17]: file:/opt/apache-maven-3.0.4/lib/maven-compat-3.0.4.jar
> constituent[18]:
> file:/opt/apache-maven-3.0.4/lib/aether-connector-wagon-1.13.1.jar
> constituent[19]: file:/opt/apache-maven-3.0.4/lib/plexus-cipher-1.7.jar
> constituent[20]: file:/opt/apache-maven-3.0.4/lib/sisu-guava-0.9.9.jar
> constituent[21]: file:/opt/apache-maven-3.0.4/lib/wagon-provider-api-2.2.jar
> constituent[22]: file:/opt/apache-maven-3.0.4/lib/commons-cli-1.2.jar
> constituent[23]: file:/opt/apache-maven-3.0.4/lib/maven-embedder-3.0.4.jar
> constituent[24]:
> file:/opt/apache-maven-3.0.4/lib/plexus-component-annotations-1.5.5.jar
> constituent[25]: file:/opt/apache-maven-3.0.4/lib/maven-artifact-3.0.4.jar
> constituent[26]: file:/opt/apache-maven-3.0.4/lib/maven-plugin-api-3.0.4.jar
> constituent[27]: file:/opt/apache-maven-3.0.4/lib/aether-util-1.13.1.jar
> constituent[28]: file:/opt/apache-maven-3.0.4/lib/wagon-file-2.2.jar
> ---------------------------------------------------
> Exception in thread "main" java.lang.VerifyError: (class:
> org/sonatype/guice/bean/locators/RankedSequence, method: count signature:
> ()J) Stack size too large
> 	at
> org.sonatype.guice.bean.locators.DefaultBeanLocator.<init>(DefaultBeanLocato
> r.java:52)
> 	at
> org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.jav
> a:119)
> 	at
> org.codehaus.plexus.DefaultPlexusContainer.<init>(DefaultPlexusContainer.jav
> a:160)
> 	at org.apache.maven.cli.MavenCli.container(MavenCli.java:375)
> 	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:191)
> 	at org.apache.maven.cli.MavenCli.main(MavenCli.java:141)
> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> 	at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57
> )
> 	at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl
> .java:43)
> 	at java.lang.reflect.Method.invoke(Method.java:474)
> 	at
> org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.ja
> va:290)
> 	at
> org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:230)
> 	at
> org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.
> java:409)
> 	at
> org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:352)
>
> The OS is Fedora 16, 64 bit and I am using the Linux 64bit build of Lambda.
> I believe I had the same problem with Build 45 as well. Is anyone else also
> facing this problem ? Any suggestions?
>
> Regards,
> Deepak S Patwardhan.
>
>



More information about the lambda-dev mailing list