GWT 2.8.0 + Mvp4g 1.5.2 + gradle dependency

131 views
Skip to first unread message

Олег Рачаев

unread,
Apr 25, 2017, 7:02:03 AM4/25/17
to Mvp4g
[ERROR] Unexpected internal compiler error
java.lang.NoSuchMethodError: com.google.gwt.util.tools.shared.Md5Utils.getMd5Digest(Ljava/lang/String;)[B
at com.google.gwt.dev.util.CompilerVersion.getHash(CompilerVersion.java:42)
at com.google.gwt.dev.javac.PersistentUnitCacheDir.<clinit>(PersistentUnitCacheDir.java:53)
at com.google.gwt.dev.javac.PersistentUnitCache$BackgroundService.<init>(PersistentUnitCache.java:275)
at com.google.gwt.dev.javac.PersistentUnitCache.<init>(PersistentUnitCache.java:104)
at com.google.gwt.dev.javac.UnitCacheSingleton.get(UnitCacheSingleton.java:98)
at com.google.gwt.dev.Compiler.getOrCreateUnitCache(Compiler.java:90)
at com.google.gwt.dev.Compiler.compile(Compiler.java:191)
at com.google.gwt.dev.Compiler.compile(Compiler.java:155)
at com.google.gwt.dev.Compiler.compile(Compiler.java:144)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:118)
at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
at com.google.gwt.dev.Compiler.main(Compiler.java:1

Mvp4g have dependency gwt-servlet 2.7.0. May be this the source of problem ?

Frank Hossfeld

unread,
Apr 25, 2017, 7:10:25 AM4/25/17
to Mvp4g
I don't think that this problem is related to mvp4g. It looks like you upgraded your project to GWT 2.8.0 and have some old stuff in your classpath.


Hope that helps.

Олег Рачаев

unread,
Apr 25, 2017, 7:37:41 AM4/25/17
to Mvp4g
 I see in Eclipse project folder "Project and External Dependencies" gwt-servlet-2.7.0.

So if i declare exact dependency on gwt-servlet-2.8.0 with 

compile group: 'com.google.gwt', name: 'gwt-servlet', version: '2.8.0'

other error occurs:

[ERROR] Unexpected internal compiler error
java.lang.IncompatibleClassChangeError: class com.google.gwt.dev.javac.BytecodeSignatureMaker$CompileDependencyVisitor has interface org.objectweb.asm.ClassVisitor as super class
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:763)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:467)
at java.net.URLClassLoader.access$100(URLClassLoader.java:73)
at java.net.URLClassLoader$1.run(URLClassLoader.java:368)
at java.net.URLClassLoader$1.run(URLClassLoader.java:362)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:361)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
at com.google.gwt.dev.javac.BytecodeSignatureMaker.visitCompileDependenciesInBytecode(BytecodeSignatureMaker.java:227)
at com.google.gwt.dev.javac.BytecodeSignatureMaker.getCompileDependencySignature(BytecodeSignatureMaker.java:209)
at com.google.gwt.dev.javac.CompiledClass.getSignatureHash(CompiledClass.java:165)
at com.google.gwt.dev.javac.Dependencies$Ref.<init>(Dependencies.java:41)
at com.google.gwt.dev.javac.Dependencies$Ref.<init>(Dependencies.java:36)
at com.google.gwt.dev.javac.Dependencies.resolve(Dependencies.java:100)
at com.google.gwt.dev.javac.CompilationStateBuilder$CompileMoreLater.compile(CompilationStateBuilder.java:352)
at com.google.gwt.dev.javac.CompilationStateBuilder.doBuildFrom(CompilationStateBuilder.java:548)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:479)
at com.google.gwt.dev.javac.CompilationStateBuilder.buildFrom(CompilationStateBuilder.java:465)
at com.google.gwt.dev.cfg.ModuleDef.getCompilationState(ModuleDef.java:423)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:222)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:202)
at com.google.gwt.dev.Precompile.precompile(Precompile.java:143)
at com.google.gwt.dev.Compiler.compile(Compiler.java:204)
at com.google.gwt.dev.Compiler.compile(Compiler.java:155)
at com.google.gwt.dev.Compiler.compile(Compiler.java:144)
at com.google.gwt.dev.Compiler$1.run(Compiler.java:118)
at com.google.gwt.dev.CompileTaskRunner.doRun(CompileTaskRunner.java:55)
at com.google.gwt.dev.CompileTaskRunner.runWithAppropriateLogger(CompileTaskRunner.java:50)
at com.google.gwt.dev.Compiler.main(Compiler.java:125)

Олег Рачаев

unread,
Apr 25, 2017, 8:16:01 AM4/25/17
to Mvp4g
I've managed to avoid internal compiler errors by redefining dependency on mvpg in gradle script via file:

compile files('libs/mvp4g-1.5.2.jar','libs/gin-2.1.2.jar')

So I think this is gradle dependency conflict. I'm no so strong in gradle may be someone explain this strange gradle stuffs.

Frank Hossfeld

unread,
Apr 25, 2017, 10:24:53 AM4/25/17
to Mvp4g
Using mvp4g 1.5.2 with GWT 2.8.0 in a Maven works without problems. I would expect that it will work wituout problems using Gradle.

How did you set up mvp4g in your Gradle project as the error occured?

Олег Рачаев

unread,
Apr 25, 2017, 11:33:53 PM4/25/17
to Mvp4g
plugins {
  id "fr.putnami.gwt" version "0.4.0"
}

group = 'nipi.raz4rn'
version = '0.1'

apply plugin: 'java'
apply plugin: 'eclipse'
apply plugin: 'fr.putnami.gwt'
apply plugin: 'maven-publish'

repositories {
mavenLocal()
    mavenCentral()
}

dependencies {
compile group: "nipi.gwt.login", name: "nipi-gwt-login", version: "+"
compile group: "nipi.ois.model", name: "nipi-ois-model", version: "+"
compile group: "nipi.oracle.db", name: "nipi-oracle-db", version: "+"
compile group: "com.googlecode.gflot", name: "gflot", version: "3.3.0"
compile group: 'com.googlecode.mvp4g', name: 'mvp4g', version: '1.5.2'
}

eclipse {
    classpath {
        downloadJavadoc = true
        downloadSources = true
    }
}

putnami {
module 'nipi.raz4rn.raz4rn'
gwtVersion = "2.8.0"

googlePluginEclipse = false

    jetty {
        debugJava = true
        debugPort = 8001
        debugSuspend = false
    }
    compile {
    sourceLevel = "auto"
    }

}

publishing {
    publications {
        mavenJava(MavenPublication) {
            from components.java
        }
    }
}

вторник, 25 апреля 2017 г., 18:24:53 UTC+4 пользователь Frank Hossfeld написал:

Олег Рачаев

unread,
Apr 25, 2017, 11:36:41 PM4/25/17
to Mvp4g
The above code is build.gradle. I am using Gradle 3.5.

вторник, 25 апреля 2017 г., 15:02:03 UTC+4 пользователь Олег Рачаев написал:

Олег Рачаев

unread,
Apr 26, 2017, 12:12:39 AM4/26/17
to Mvp4g
I think the problem comes from gwt-servlet 2.7.0. And if to tell more precisely because of the version of gwt-servlet that comes.

The compliler error says:

java.lang.NoSuchMethodError: com.google.gwt.util.tools.shared.Md5Utils.getMd5Digest

And as I see: 
com.google.gwt.util.tools.shared.Md5Utils.getMd5Digest 
is in gwt-servlet 2.7.0.

Олег Рачаев

unread,
Apr 26, 2017, 12:44:58 AM4/26/17
to Mvp4g
I continued my research and found a solution.

The solution is to add 2 lines to dependencies of build.gradle

compile group: 'com.google.gwt', name: 'gwt-servlet', version: '2.8.0'
compile group: 'org.ow2.asm', name: 'asm', version: '5.0.3'

Then as I came to this:
I looked at the dependency tree and found:

+--- com.googlecode.mvp4g:mvp4g:1.5.2
|    +--- com.google.gwt:gwt-servlet:2.7.0 -> 2.8.0
|    \--- com.google.gwt.inject:gin:2.1.2
|         +--- com.google.inject:guice:3.0
|         |    +--- javax.inject:javax.inject:1
|         |    +--- aopalliance:aopalliance:1.0
|         |    \--- org.sonatype.sisu.inject:cglib:2.2.1-v20090111
|         |         \--- asm:asm:3.1
|         \--- com.google.inject.extensions:guice-assistedinject:3.0
|              \--- com.google.inject:guice:3.0 (*)
...

+--- com.google.gwt:gwt-codeserver:2.8.0
|    \--- com.google.gwt:gwt-dev:2.8.0
|         +--- com.google.code.gson:gson:2.6.2
|         +--- org.ow2.asm:asm:5.0.3
|         +--- org.ow2.asm:asm-util:5.0.3
|         |    \--- org.ow2.asm:asm-tree:5.0.3
|         |         \--- org.ow2.asm:asm:5.0.3
|         +--- org.ow2.asm:asm-commons:5.0.3
|         |    \--- org.ow2.asm:asm-tree:5.0.3 (*)
...

Frank Hossfeld

unread,
Apr 26, 2017, 2:05:46 AM4/26/17
to Mvp4g
Looking at your gradle.build (the first one you posted), you did not specify the compile group for GWT, so Gradle uses the one from the pom of mvp4g. In this case you have to GWTversion in your build path.

By adding:

compile group: 'com.google.gwt', name: 'gwt-servlet', version: '2.8.0'

the GWT 2.7.0 version gets overwritten. 

I would change:

compile group: 'com.google.gwt', name: 'gwt-servlet', version: '2.8.0'

to

compile group: 'com.google.gwt', name: 'gwt-user', version: '2.8.0'

to avoid more class path issues. 

Олег Рачаев

unread,
Apr 26, 2017, 2:58:40 AM4/26/17
to Mvp4g
Ok. I've changed script. But without

compile group: 'org.ow2.asm', name: 'asm', version: '5.0.3'

compiler errors are still present.

среда, 26 апреля 2017 г., 10:05:46 UTC+4 пользователь Frank Hossfeld написал:

Frank Hossfeld

unread,
Apr 26, 2017, 3:00:19 AM4/26/17
to Mvp4g
That's possible, because this is a dependency of Guice.

Олег Рачаев

unread,
Apr 26, 2017, 3:08:11 AM4/26/17
to Mvp4g
I found similar problems discussed here:


May be this helps someone.
Reply all
Reply to author
Forward
0 new messages