Receiving a java.lang.ExceptionInInitializerError when building Groovy but not Java for same project.

I’m building a Groovy project using the Dropwizard library (http://dropwizard.codahale.com/) though I believe my issue is related to its use of Jersey based on the error I’m receiving.

I’m able to reproduce the error with a single Groovy class. If I swap the Groovy class for the equivalent Java class it works fine. I’m unsure what the issue is.

The error from Gradle is java.lang.ExceptionInInitializerError (no error message), but the underlying error is java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl.

My build.gradle looks like this:

apply plugin: 'groovy'
  repositories {
  mavenLocal()
  mavenCentral()
}
  dependencies {
  groovy(
      "org.codehaus.groovy:groovy:2.0.5",
  )
  compile(
      'com.yammer.dropwizard:dropwizard-core:0.5.1',
  )
}

The basic output from my build is below:

cstokes-ml:dropwizard-proj clstokes$ gradle clean build
:clean
:compileJava UP-TO-DATE
:compileGroovy FAILED
  FAILURE: Build failed with an exception.
  * What went wrong:
Execution failed for task ':compileGroovy'.
> java.lang.ExceptionInInitializerError (no error message)
  * Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output.
  BUILD FAILED
  Total time: 6.831 secs

The exception snippet from the info/debug is:

21:18:42.029 [ERROR] [org.gradle.BuildExceptionReporter] * What went wrong:
21:18:42.030 [ERROR] [org.gradle.BuildExceptionReporter] Execution failed for task ':compileGroovy'.
21:18:42.030 [ERROR] [org.gradle.BuildExceptionReporter] > java.lang.ExceptionInInitializerError (no error message)
21:18:42.032 [ERROR] [org.gradle.BuildExceptionReporter]
 21:18:42.032 [ERROR] [org.gradle.BuildExceptionReporter] * Exception is:
21:18:42.033 [ERROR] [org.gradle.BuildExceptionReporter] org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':compileGroovy'.
21:18:42.034 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:68)
21:18:42.034 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:46)
21:18:42.034 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.PostExecutionAnalysisTaskExecuter.execute(PostExecutionAnalysisTaskExecuter.java:34)
21:18:42.034 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter$1.run(CacheLockHandlingTaskExecuter.java:34)
21:18:42.035 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.cache.internal.DefaultCacheAccess$3.create(DefaultCacheAccess.java:243)
21:18:42.035 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:188)
21:18:42.035 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.cache.internal.DefaultCacheAccess.longRunningOperation(DefaultCacheAccess.java:241)
21:18:42.036 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.longRunningOperation(DefaultPersistentDirectoryStore.java:137)
21:18:42.036 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.longRunningOperation(DefaultTaskArtifactStateCacheAccess.java:83)
21:18:42.037 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.changedetection.CacheLockHandlingTaskExecuter.execute(CacheLockHandlingTaskExecuter.java:32)
21:18:42.037 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.SkipUpToDateTaskExecuter.execute(SkipUpToDateTaskExecuter.java:55)
21:18:42.038 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.ValidatingTaskExecuter.execute(ValidatingTaskExecuter.java:57)
21:18:42.038 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.SkipEmptySourceFilesTaskExecuter.execute(SkipEmptySourceFilesTaskExecuter.java:41)
21:18:42.038 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:51)
21:18:42.039 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:52)
21:18:42.039 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.execution.ExecuteAtMostOnceTaskExecuter.execute(ExecuteAtMostOnceTaskExecuter.java:42)
21:18:42.039 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.AbstractTask.executeWithoutThrowingTaskFailure(AbstractTask.java:247)
21:18:42.040 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.executeTask(DefaultTaskPlanExecutor.java:52)
21:18:42.040 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.processTask(DefaultTaskPlanExecutor.java:38)
21:18:42.041 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.taskgraph.DefaultTaskPlanExecutor.process(DefaultTaskPlanExecutor.java:30)
21:18:42.041 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.taskgraph.DefaultTaskGraphExecuter.execute(DefaultTaskGraphExecuter.java:83)
21:18:42.041 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.SelectedTaskExecutionAction.execute(SelectedTaskExecutionAction.java:29)
21:18:42.042 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
21:18:42.042 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
21:18:42.042 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
21:18:42.043 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter$1.run(TaskCacheLockHandlingBuildExecuter.java:31)
21:18:42.043 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.cache.internal.DefaultCacheAccess$2.create(DefaultCacheAccess.java:118)
21:18:42.043 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:133)
21:18:42.044 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.cache.internal.DefaultCacheAccess.useCache(DefaultCacheAccess.java:116)
21:18:42.044 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.cache.internal.DefaultPersistentDirectoryStore.useCache(DefaultPersistentDirectoryStore.java:129)
21:18:42.045 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.changedetection.DefaultTaskArtifactStateCacheAccess.useCache(DefaultTaskArtifactStateCacheAccess.java:79)
21:18:42.045 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.changedetection.TaskCacheLockHandlingBuildExecuter.execute(TaskCacheLockHandlingBuildExecuter.java:29)
21:18:42.045 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
21:18:42.046 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DefaultBuildExecuter.access$200(DefaultBuildExecuter.java:23)
21:18:42.046 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DefaultBuildExecuter$2.proceed(DefaultBuildExecuter.java:67)
21:18:42.047 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DryRunBuildExecutionAction.execute(DryRunBuildExecutionAction.java:32)
21:18:42.047 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:61)
21:18:42.047 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.execution.DefaultBuildExecuter.execute(DefaultBuildExecuter.java:54)
21:18:42.048 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.initialization.DefaultGradleLauncher.doBuildStages(DefaultGradleLauncher.java:158)
21:18:42.048 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.initialization.DefaultGradleLauncher.doBuild(DefaultGradleLauncher.java:113)
21:18:42.048 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.initialization.DefaultGradleLauncher.run(DefaultGradleLauncher.java:81)
21:18:42.049 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.ExecuteBuildAction.run(ExecuteBuildAction.java:38)
21:18:42.049 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.exec.InProcessGradleLauncherActionExecuter.execute(InProcessGradleLauncherActionExecuter.java:39)
21:18:42.050 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.exec.InProcessGradleLauncherActionExecuter.execute(InProcessGradleLauncherActionExecuter.java:25)
21:18:42.050 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.RunBuildAction.run(RunBuildAction.java:50)
21:18:42.050 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.ActionAdapter.execute(ActionAdapter.java:30)
21:18:42.050 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.ActionAdapter.execute(ActionAdapter.java:22)
21:18:42.051 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:200)
21:18:42.051 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.CommandLineActionFactory$ParseAndBuildAction.execute(CommandLineActionFactory.java:173)
21:18:42.051 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:169)
21:18:42.051 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.CommandLineActionFactory$WithLogging.execute(CommandLineActionFactory.java:138)
21:18:42.052 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:33)
21:18:42.052 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.cli.ExceptionReportingAction.execute(ExceptionReportingAction.java:22)
21:18:42.052 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.Main.doAction(Main.java:48)
21:18:42.052 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.bootstrap.EntryPoint.run(EntryPoint.java:45)
21:18:42.053 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.Main.main(Main.java:39)
21:18:42.053 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.bootstrap.ProcessBootstrap.runNoExit(ProcessBootstrap.java:50)
21:18:42.053 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.bootstrap.ProcessBootstrap.run(ProcessBootstrap.java:32)
21:18:42.053 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.launcher.GradleMain.main(GradleMain.java:26)
21:18:42.053 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.ExceptionInInitializerError
21:18:42.054 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:118)
21:18:42.054 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.compile.ApiGroovyCompiler.execute(ApiGroovyCompiler.java:39)
21:18:42.054 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.compile.daemon.CompilerDaemonServer.execute(CompilerDaemonServer.java:52)
21:18:42.054 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:35)
21:18:42.055 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.dispatch.ReflectionDispatch.dispatch(ReflectionDispatch.java:24)
21:18:42.055 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.remote.internal.TypeCastDispatch.dispatch(TypeCastDispatch.java:30)
21:18:42.055 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.remote.internal.WorkerProtocol.handleIncoming(WorkerProtocol.java:53)
21:18:42.055 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.remote.internal.WorkerProtocol.handleIncoming(WorkerProtocol.java:31)
21:18:42.055 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.remote.internal.ProtocolStack$ProtocolStage.handleIncoming(ProtocolStack.java:167)
21:18:42.055 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.remote.internal.ProtocolStack$BottomStage.handleIncoming(ProtocolStack.java:277)
21:18:42.056 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.remote.internal.ProtocolStack$BottomConnection$1.run(ProtocolStack.java:299)
21:18:42.056 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.remote.internal.ProtocolStack$ExecuteRunnable.dispatch(ProtocolStack.java:120)
21:18:42.056 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.remote.internal.ProtocolStack$ExecuteRunnable.dispatch(ProtocolStack.java:116)
21:18:42.056 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.dispatch.AsyncDispatch.dispatchMessages(AsyncDispatch.java:132)
21:18:42.056 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.dispatch.AsyncDispatch.access$000(AsyncDispatch.java:33)
21:18:42.056 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.messaging.dispatch.AsyncDispatch$1.run(AsyncDispatch.java:72)
21:18:42.057 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.internal.concurrent.DefaultExecutorFactory$StoppableExecutorImpl$1.run(DefaultExecutorFactory.java:66)
21:18:42.057 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.RuntimeException: java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl
21:18:42.057 [ERROR] [org.gradle.BuildExceptionReporter]
... 17 more
21:18:42.057 [ERROR] [org.gradle.BuildExceptionReporter] Caused by: java.lang.ClassNotFoundException: com.sun.ws.rs.ext.RuntimeDelegateImpl
21:18:42.057 [ERROR] [org.gradle.BuildExceptionReporter]
at org.gradle.api.internal.tasks.compile.TransformingClassLoader.findClass(TransformingClassLoader.java:47)
21:18:42.058 [ERROR] [org.gradle.BuildExceptionReporter]
... 17 more
21:18:42.058 [ERROR] [org.gradle.BuildExceptionReporter]
 21:18:42.058 [LIFECYCLE] [org.gradle.BuildResultLogger]
 21:18:42.058 [LIFECYCLE] [org.gradle.BuildResultLogger] BUILD FAILED
21:18:42.058 [LIFECYCLE] [org.gradle.BuildResultLogger]
 21:18:42.059 [LIFECYCLE] [org.gradle.BuildResultLogger] Total time: 8.69 secs

The full info/debug output is at https://gist.github.com/3943786.

The full project source is at https://s3.amazonaws.com/clstokes/scraps/dropwizard-proj.zip.

My Gradle version output is:

cstokes-ml:dropwizard-proj clstokes$ gradle -version
  ------------------------------------------------------------
Gradle 1.2
------------------------------------------------------------
  Gradle build time: Wednesday, September 12, 2012 10:46:02 AM UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012
Ivy: 2.2.0
JVM: 1.7.0-u10-b09 (Oracle Corporation 23.6-b03)
OS: Mac OS X 10.8.2 x86_64

Switching to jdk 1.6 gives the same error:

------------------------------------------------------------
Gradle 1.2
------------------------------------------------------------
  Gradle build time: Wednesday, September 12, 2012 10:46:02 AM UTC
Groovy: 1.8.6
Ant: Apache Ant(TM) version 1.8.4 compiled on May 22 2012
Ivy: 2.2.0
JVM: 1.6.0_37 (Apple Inc. 20.12-b01-434)
OS: Mac OS X 10.8.2 x86_64

If I remove all javax.ws.* references from the code it builds successfully.

If I remove all references except javax.ws.rs.Produces and javax.ws.rs.core.MediaType it fails.

You are running into a known Groovy limitation. The Groovy compiler uses reflection, which means that it sometimes needs classes on the compile class path that normally only go on the runtime class path. Also, the Groovy compiler won’t be happy about java-ee interface Jars and the like, because they cannot be loaded using reflection.

Shoot, you’re right. I was able to reproduce this exact error with a maven project.

Thanks for the help.

Hey Cameron, I’m running into the same problem… how to resolve it?

I was able to fix it by adding the jersey-client dependency:

compile group: ‘com.sun.jersey’, name: ‘jersey-client’, version: ‘1.14’

:slight_smile:

I solved it the same way Diego and I’ve been meaning to come back here to update the issue. Thanks for reminding me and posting the solution yourself. :slight_smile:

I am facing same problem with java 1.8.20 while executing mvn clean install

ava.lang.ExceptionInInitializerError: null

at javax.xml.xpath.XPathFactory.newInstance(XPathFactory.java:102)

at com.biomedcentral.journal.render.provisionalxml.ProvisionalArticleTextGenerator.getXPath(ProvisionalArticleTextGenerator.java:600)

at com.biomedcentral.journal.render.provisionalxml.ProvisionalArticleTextGenerator.(ProvisionalArticleTextGenerator.java:69)

at sun.reflect.GeneratedSerializationConstructorAccessor7.newInstance(Unknown Source)

at java.lang.reflect.Constructor.newInstance(Constructor.java:408)

at org.objenesis.instantiator.sun.SunReflectionFactoryInstantiator.newInstance(SunReflectionFactoryInstantiator.java:45)

at org.objenesis.ObjenesisBase.newInstance(ObjenesisBase.java:73)

at org.mockito.internal.creation.jmock.ClassImposterizer.createProxy(ClassImposterizer.java:135)

at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:61)

at org.mockito.internal.creation.jmock.ClassImposterizer.imposterise(ClassImposterizer.java:52)

at org.mockito.internal.creation.CglibMockMaker.createMock(CglibMockMaker.java:24)

at org.mockito.internal.util.MockUtil.createMock(MockUtil.java:32)

at org.mockito.internal.MockitoCore.mock(MockitoCore.java:59)

at org.mockito.Mockito.mock(Mockito.java:1258)

at org.mockito.Mockito.mock(Mockito.java:1135)

at com.biomedcentral.journal.article.ArticleXmlRetrieverTest.shouldRetrieveArticleXmlIfUsingQCLinkAndHasXml(ArticleXmlRetrieverTest.java:66)