Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Spring boot JDK Problem ? - Problems copying method. Incompatible JVM? #98

Open
slavus opened this Issue Jan 10, 2015 · 25 comments

Comments

Projects
None yet
@slavus
Copy link

slavus commented Jan 10, 2015

I am havening trouble using spring loaded with whatever.
I am getting org.springsource.loaded.jvm.JVM : Problems copying method. Incompatible JVM?

Maybe this is JDK issue

the same thing happens if I swap JVM

openjdk version "1.8.0_40"
OpenJDK Runtime Environment (build 1.8.0_40-b20)
OpenJDK 64-Bit Server VM (build 25.40-b23, mixed mode)

java version "1.7.0_55"
OpenJDK Runtime Environment (IcedTea 2.4.8) (suse-24.17.1-x86_64)
OpenJDK 64-Bit Server VM (build 24.55-b03, mixed mode)

java version "1.6.0_33"
OpenJDK Runtime Environment (IcedTea6 1.13.5) (suse-37.1-x86_64)
OpenJDK 64-Bit Server VM (build 23.25-b01, mixed mode

Any ideas ?

Here ist stack

[INFO] Scanning for projects...
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Spring Boot Web UI Sample 1.2.2.BUILD-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[INFO] 
[INFO] >>> spring-boot-maven-plugin:1.2.2.BUILD-SNAPSHOT:run (default-cli) > test-compile @ spring-boot-sample-web-ui >>>
[INFO] 
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ spring-boot-sample-web-ui ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 1 resource
[INFO] Copying 9 resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:compile (default-compile) @ spring-boot-sample-web-ui ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ spring-boot-sample-web-ui ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] skip non existing resourceDirectory /home/user/github/spring-boot/spring-boot-samples/spring-boot-sample-web-ui/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:3.1:testCompile (default-testCompile) @ spring-boot-sample-web-ui ---
[INFO] Nothing to compile - all classes are up to date
[INFO] 
[INFO] <<< spring-boot-maven-plugin:1.2.2.BUILD-SNAPSHOT:run (default-cli) < test-compile @ spring-boot-sample-web-ui <<<
[INFO] 
[INFO] --- spring-boot-maven-plugin:1.2.2.BUILD-SNAPSHOT:run (default-cli) @ spring-boot-sample-web-ui ---
[INFO] Attaching agents: [/home/user/.m2/repository/org/springframework/springloaded/1.2.0.RELEASE/springloaded-1.2.0.RELEASE.jar]

  .   ____          _            __ _ _
 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \
( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \
 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )
  '  |____| .__|_| |_|_| |_\__, | / / / /
 =========|_|==============|___/=/_/_/_/
 :: Spring Boot ::  (v1.2.2.BUILD-SNAPSHOT)

2015-01-10 19:28:22.833  INFO 29434 --- [           main] sample.ui.SampleWebUiApplication         : Starting SampleWebUiApplication on XXXXXXXXX with PID 29434 (/home/user/github/spring-boot/spring-boot-samples/spring-boot-sample-web-ui/target/classes started by user in /home/user/github/spring-boot/spring-boot-samples/spring-boot-sample-web-ui)
2015-01-10 19:28:22.946  INFO 29434 --- [           main] ationConfigEmbeddedWebApplicationContext : Refreshing org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext@37574691: startup date [Sat Jan 10 19:28:22 CET 2015]; root of context hierarchy
2015-01-10 19:28:23.146 ERROR 29434 --- [           main] org.springsource.loaded.jvm.JVM          : Problems copying method. Incompatible JVM?

java.lang.reflect.InvocationTargetException: null
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.springsource.loaded.jvm.JVM.copyMethod(JVM.java:134)
        at org.springsource.loaded.ri.OriginalClassInvoker.createJavaMethod(OriginalClassInvoker.java:68)
        at org.springsource.loaded.ri.ReflectiveInterceptor.jlClassGetDeclaredMethods(ReflectiveInterceptor.java:151)
        at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:140)
        at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:286)
        at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:226)
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:193)
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:163)
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:306)
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:239)
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254)
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:94)
        at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
        at sample.ui.SampleWebUiApplication.main(SampleWebUiApplication.java:43)
Caused by: java.lang.IllegalArgumentException: Can not copy a non-root Method
        at java.lang.reflect.Method.copy(Method.java:151)
        ... 24 common frames omitted

2015-01-10 19:28:23.149 ERROR 29434 --- [           main] org.springsource.loaded.jvm.JVM          : Problems copying method. Incompatible JVM?

java.lang.reflect.InvocationTargetException: null
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
        at java.lang.reflect.Method.invoke(Method.java:497)
        at org.springsource.loaded.jvm.JVM.copyMethod(JVM.java:134)
        at org.springsource.loaded.ri.OriginalClassInvoker.createJavaMethod(OriginalClassInvoker.java:68)
        at org.springsource.loaded.ri.ReflectiveInterceptor.jlClassGetDeclaredMethods(ReflectiveInterceptor.java:151)
        at org.springframework.core.type.StandardAnnotationMetadata.getAnnotatedMethods(StandardAnnotationMetadata.java:140)
        at org.springframework.context.annotation.ConfigurationClassParser.doProcessConfigurationClass(ConfigurationClassParser.java:286)
        at org.springframework.context.annotation.ConfigurationClassParser.processConfigurationClass(ConfigurationClassParser.java:226)
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:193)
        at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:163)
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:306)
        at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:239)
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:254)
        at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:94)
        at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:606)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:462)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:118)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:950)
        at sample.ui.SampleWebUiApplication.main(SampleWebUiApplication.java:43)
Caused by: java.lang.IllegalArgumentException: Can not copy a non-root Method
        at java.lang.reflect.Method.copy(Method.java:151)
        ... 24 common frames omitted

2015-01-10 19:28:23.151 ERROR 29434 --- [           main] org.springsource.loaded.jvm.JVM          : Problems copying method. Incompatible JVM?
@aclement

This comment has been minimized.

Copy link
Contributor

aclement commented Mar 5, 2015

I put in a potential fix, try the 1.2.2 snapshot build that should come out of this build: https://build.spring.io/browse/SL-MAS-113

@aclement

This comment has been minimized.

Copy link
Contributor

aclement commented Mar 5, 2015

Here is the build: http://repo.spring.io/libs-snapshot-local/org/springframework/springloaded/1.2.2.BUILD-SNAPSHOT/springloaded-1.2.2.BUILD-SNAPSHOT.jar

To test it under grails, what I do is go into the grails folder: grails-2.4.1/lib/org.springframework/springloaded/jars

I then rename the spring loaded jar that is there and put in a symlink to the jar above. It used to be that you could just modify the startGrails script to point to the new version, but now due to the forking I find you need to do the symlink thing. Or drop that jar into this folder and rename it to match the expectations of grails (rename it from springloaded-1.2.2.BUILD-SNAPSHOT.jar to springloaded-1.2.0.RELEASE.jar)

@Dierk

This comment has been minimized.

Copy link

Dierk commented Mar 5, 2015

ok, thanks. Will give it a try...

@volnei

This comment has been minimized.

Copy link

volnei commented Mar 5, 2015

It worked for me! Thanks

@Dierk

This comment has been minimized.

Copy link

Dierk commented Mar 5, 2015

It appears that with Grails 3.0.0 such a file is no longer in the distribution. Maybe packaged differently?

@volnei

This comment has been minimized.

Copy link

volnei commented Mar 5, 2015

Look up at %USER_HOME%.gradle\caches\modules-2\files-2.1\org.springframework\springloaded\1.2.1.RELEASE...

@Dierk

This comment has been minimized.

Copy link

Dierk commented Mar 5, 2015

Ah - that does it!
(How could I possibly overlook that? :-) )

Thanks a lot!
Dierk

P.S. I assume, you'll notify Graeme such that he can upgrade before Grails 3.0.0 final goes out...

Am 05.03.2015 um 21:31 schrieb Volnei notifications@github.com:

Look up at %USER_HOME%.gradle\caches\modules-2\files-2.1\org.springframework\springloaded\1.2.1.RELEASE...


Reply to this email directly or view it on GitHub.

@volnei

This comment has been minimized.

Copy link

volnei commented Mar 5, 2015

I will raise a jira issue... ;-)

@volnei

This comment has been minimized.

Copy link

volnei commented Mar 5, 2015

@graemerocher

This comment has been minimized.

Copy link
Contributor

graemerocher commented Mar 5, 2015

@aclement Any chance of a 1.2.2 release soon?

@aclement

This comment has been minimized.

Copy link
Contributor

aclement commented Mar 5, 2015

I knew you'd ask that Graeme, I'll get to it over the next few days :)

@graemerocher

This comment has been minimized.

Copy link
Contributor

graemerocher commented Mar 6, 2015

Thanks!!

@igor-poteryaev

This comment has been minimized.

Copy link

igor-poteryaev commented Mar 12, 2015

@aclement

With 1.2.2 release I get other error: IllegalArgumentException: Can not copy a non-root Field

| Error 2015-03-13 01:50:09,901 [localhost-startStop-1] ERROR jvm.JVM  - Problems copying field. Incompatible JVM?
Message: null
    Line | Method
->>  266 | run       in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run       in java.lang.Thread

Caused by IllegalArgumentException: Can not copy a non-root Field
->>  266 | run       in java.util.concurrent.FutureTask
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - 
|   1142 | runWorker in java.util.concurrent.ThreadPoolExecutor
|    617 | run . . . in java.util.concurrent.ThreadPoolExecutor$Worker
^    745 | run       in java.lang.Thread
@aclement

This comment has been minimized.

Copy link
Contributor

aclement commented Mar 12, 2015

Copying fields is something different (I addressed copying methods). Do you have a simple app that exhibits the problem?

@igor-poteryaev

This comment has been minimized.

Copy link

igor-poteryaev commented Mar 12, 2015

Simplest app to reproduce the copy field problem can be created as:

  1. grails create-app copy-field
  2. replace hibernate4 plugin with hibernate3 (in BuildConfig.groovy and DataSource.groovy)
    N.B. It is required to use Hibernate3 to reproduce copy field problem
@aclement

This comment has been minimized.

Copy link
Contributor

aclement commented Mar 13, 2015

committed a fix for copy field too.

@graemerocher

This comment has been minimized.

Copy link
Contributor

graemerocher commented Mar 13, 2015

@aclement Could we have 1.2.3? ;-)

@aclement

This comment has been minimized.

Copy link
Contributor

aclement commented Mar 13, 2015

1.2.3.RELEASE is cut and in repo.spring.io - at the moment I have no idea why the repo.spring.io contents aren't making it to central, I'm doing exactly the same thing as I've always done in the past but it doesn't seem enough now. Can you consume it from repo.spring.io?

@graemerocher

This comment has been minimized.

Copy link
Contributor

graemerocher commented Mar 13, 2015

yeah should be fine.. thanks

@rumog

This comment has been minimized.

Copy link

rumog commented Mar 20, 2015

hi, I am having the same issue, but not openjdk, I have oracle 1.8.0_40. I tried the solution above, with these differences:
-using grails 2.4.4. The existing jar was named springloaded-1.2.1.RELEASE.jar rather than 1.2.0
-instead of symlink I used the rename method, renaming the jar from the 1.2.2.BUILD-SNAPSHOT link above to springloaded-1.2.1.RELEASE.jar

did grails clean & clean-all (don't know if that is necessary, I'm learning grails for the first time), and run-app and still getting the exact same error/stack trace as the original issue.

I'm also a little confused, because I was reading that this was an incompatibility with jdk 1.8.0_40, but it sounds like @slavus tried other java versions and had the same issue? Sorry if I'm misunderstanding here.

@tommileino

This comment has been minimized.

Copy link

tommileino commented Mar 22, 2015

So one liner to fix Grails installed with GVM in Linux (worked for me with OpenJDK 1.8.0_40-internal-b27):
wget repo.spring.io/libs-snapshot-local/org/springframework/springloaded/1.2.3.BUILD-SNAPSHOT/springloaded-1.2.3.BUILD-SNAPSHOT.jar -O ~/.gvm/grails/2.4.4/lib/org.springframework/springloaded/jars/springloaded-1.2.1.RELEASE.jar

Will we get a new Grails 2.4 release?

@marin-h

This comment has been minimized.

Copy link

marin-h commented Sep 16, 2015

Works :) Thanks!

@songlineboy

This comment has been minimized.

Copy link

songlineboy commented Nov 14, 2015

thanks! worked for me too, copying the newer 1.2.1 springloaded jar and renaming to springloaded-1.2.1.RELEASE.

@lvicent

This comment has been minimized.

Copy link

lvicent commented Dec 11, 2016

Thanks,It works

@davidklebanoff

This comment has been minimized.

Copy link

davidklebanoff commented Dec 11, 2016

Oops nevermind. I was using grails-maven-plugin 2.4.3 which was bringing in springloaded 1.2.0. I upgraded to grails-maven-plugin 2.4.6 which uses springloaded-1.2.4 and the issue was resolved.

I'm experiencing this issue, but with Grails 2.5.1 (which uses springloaded-1.2.4.RELEASE), and the latest version of Java 8 (build 1.8.0_112). It's all very confusing as most of the comments here seem to indicate that I shouldn't experience this issue in 1.2.4.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
You can’t perform that action at this time.
You signed in with another tab or window. Reload to refresh your session. You signed out in another tab or window. Reload to refresh your session.