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

Illegal reflective access by org.springframework.cglib.core.ReflectUtils - spring-core-5.2.5.RELEASE.jar #24922

Closed
mananmehta11 opened this issue Apr 17, 2020 · 6 comments
Labels
in: core Issues in core modules (aop, beans, core, context, expression) status: duplicate A duplicate of another issue

Comments

@mananmehta11
Copy link

.m2/repository/org/springframework/spring-core/5.2.5.RELEASE/spring-core-5.2.5.RELEASE.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)

started to appear when using Spring HATEOAS - linkTo(methodOn(Some.class))

@spring-projects-issues spring-projects-issues added the status: waiting-for-triage An issue we've not yet triaged or decided on label Apr 17, 2020
@mananmehta11
Copy link
Author

mananmehta11 commented Apr 17, 2020

Stack Trace:
WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils (file:/home/manan/.m2/repository/org/springframework/spring-core/5.2.5.RELEASE/spring-core-5.2.5.RELEASE.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:533)
at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:363)
at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:582)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:110)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:108)
at org.springframework.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:264)
at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134)
at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319)
at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:569)
at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:416)
at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)
at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:205)
at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
at org.springframework.hateoas.server.core.DummyInvocationUtils.getProxyWithInterceptor(DummyInvocationUtils.java:167)
at org.springframework.hateoas.server.core.DummyInvocationUtils.access$000(DummyInvocationUtils.java:40)
at org.springframework.hateoas.server.core.DummyInvocationUtils$InvocationRecordingMethodInterceptor.invoke(DummyInvocationUtils.java:92)
at
org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
at tacos.web.DesignTacoController$$EnhancerBySpringCGLIB$$703cce15.recentTaco()
at tacos.web.DesignTacoController.recentTaco(DesignTacoController.java:64)
at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:190)
at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:138)
at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:105)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:879)
at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:793)
at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:87)
at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:1040)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:943)

@mananmehta11
Copy link
Author

mananmehta11 commented Apr 22, 2020

similar issue
WARNING: An illegal reflective access operation has occurred
WARNING: Illegal reflective access by com.thoughtworks.xstream.core.util.Fields (file:/home/manan/.m2/repository/com/thoughtworks/xstream/xstream/1.4.11.1/xstream-1.4.11.1.jar) to field java.util.TreeMap.comparator
WARNING: Please consider reporting this to the maintainers of com.thoughtworks.xstream.core.util.Fields
WARNING: Use --illegal-access=warn to enable warnings of further illegal reflective access operations
WARNING: All illegal access operations will be denied in a future release

@dkellenb
Copy link

dkellenb commented May 8, 2020

Same error, but related to Futures. (Java 1.11.0 OpenJDK AMD6, spring-core-5.2.5.RELEASE)

defineClass:501, ReflectUtils (org.springframework.cglib.core)
generate:363, AbstractClassGenerator (org.springframework.cglib.core)
generate:582, Enhancer (org.springframework.cglib.proxy)
apply:110, AbstractClassGenerator$ClassLoaderData$3 (org.springframework.cglib.core)
apply:108, AbstractClassGenerator$ClassLoaderData$3 (org.springframework.cglib.core)
call:54, LoadingCache$2 (org.springframework.cglib.core.internal)
run$$$capture:264, FutureTask (java.util.concurrent)
run:-1, FutureTask (java.util.concurrent)

  • Async stack trace
    :132, FutureTask (java.util.concurrent)
    createEntry:52, LoadingCache (org.springframework.cglib.core.internal)
    get:34, LoadingCache (org.springframework.cglib.core.internal)
    get:134, AbstractClassGenerator$ClassLoaderData (org.springframework.cglib.core)
    create:319, AbstractClassGenerator (org.springframework.cglib.core)
    createHelper:569, Enhancer (org.springframework.cglib.proxy)
    createClass:416, Enhancer (org.springframework.cglib.proxy)
    createClass:137, ConfigurationClassEnhancer (org.springframework.context.annotation)
    enhance:109, ConfigurationClassEnhancer (org.springframework.context.annotation)
    enhanceConfigurationClasses:423, ConfigurationClassPostProcessor (org.springframework.context.annotation)
    postProcessBeanFactory:257, ConfigurationClassPostProcessor (org.springframework.context.annotation)
    invokeBeanFactoryPostProcessors:286, PostProcessorRegistrationDelegate (org.springframework.context.support)
    invokeBeanFactoryPostProcessors:130, PostProcessorRegistrationDelegate (org.springframework.context.support)
    invokeBeanFactoryPostProcessors:706, AbstractApplicationContext (org.springframework.context.support)
    refresh:532, AbstractApplicationContext (org.springframework.context.support)
    refresh:141, ServletWebServerApplicationContext (org.springframework.boot.web.servlet.context)
    refresh:747, SpringApplication (org.springframework.boot)
    refreshContext:397, SpringApplication (org.springframework.boot)
    run:315, SpringApplication (org.springframework.boot)
    run:1226, SpringApplication (org.springframework.boot)
    run:1215, SpringApplication (org.springframework.boot)
    main:32, ConfigSeederManagementAppH2 (com.configseeder)
    invoke0:-2, NativeMethodAccessorImpl (jdk.internal.reflect)
    invoke:62, NativeMethodAccessorImpl (jdk.internal.reflect)
    invoke:43, DelegatingMethodAccessorImpl (jdk.internal.reflect)
    invoke:566, Method (java.lang.reflect)
    run:49, RestartLauncher (org.springframework.boot.devtools.restart)

@elfhazard
Copy link

I also lived up to my mind, and as I was creating a new project today, a warning came to my attention and I found it.

In conclusion, this warning relates to the Java Platform Module System (JPMS), a jigsaw project, added since Java 9.

This feature has led to a stricter security management from inside Java, and ReflectUtils uses a feature not to be used in Java, which causes a warning.

Currently, if you use Java9 or higher, you have to put --add-opens java.base/java.lang=ALL-UNNAMED when you run the JVM.

@jazdw
Copy link

jazdw commented Dec 4, 2020

Similar issue in Spring 5.2.9 when using an @Async annotated method

WARNING: Illegal reflective access by org.springframework.cglib.core.ReflectUtils (file:/C:/Users/Jared/.m2/repository/org/springframework/spring-core/5.2.9.RELEASE/spring-core-5.2.9.RELEASE.jar) to method java.lang.ClassLoader.defineClass(java.lang.String,byte[],int,int,java.security.ProtectionDomain)
	at org.springframework.cglib.core.ReflectUtils.defineClass(ReflectUtils.java:533)
	at org.springframework.cglib.core.AbstractClassGenerator.generate(AbstractClassGenerator.java:363)
	at org.springframework.cglib.proxy.Enhancer.generate(Enhancer.java:585)
	at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:110)
	at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData$3.apply(AbstractClassGenerator.java:108)
	at org.springframework.cglib.core.internal.LoadingCache$2.call(LoadingCache.java:54)
	at java.base/java.util.concurrent.FutureTask.run$$$capture(FutureTask.java:264)
	at java.base/java.util.concurrent.FutureTask.run(FutureTask.java)
	at org.springframework.cglib.core.internal.LoadingCache.createEntry(LoadingCache.java:61)
	at org.springframework.cglib.core.internal.LoadingCache.get(LoadingCache.java:34)
	at org.springframework.cglib.core.AbstractClassGenerator$ClassLoaderData.get(AbstractClassGenerator.java:134)
	at org.springframework.cglib.core.AbstractClassGenerator.create(AbstractClassGenerator.java:319)
	at org.springframework.cglib.proxy.Enhancer.createHelper(Enhancer.java:572)
	at org.springframework.cglib.proxy.Enhancer.createClass(Enhancer.java:419)
	at org.springframework.aop.framework.ObjenesisCglibAopProxy.createProxyClassAndInstance(ObjenesisCglibAopProxy.java:57)
	at org.springframework.aop.framework.CglibAopProxy.getProxy(CglibAopProxy.java:205)
	at org.springframework.aop.framework.ProxyFactory.getProxy(ProxyFactory.java:110)
	at org.springframework.aop.framework.AbstractAdvisingBeanPostProcessor.postProcessAfterInitialization(AbstractAdvisingBeanPostProcessor.java:92)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyBeanPostProcessorsAfterInitialization(AbstractAutowireCapableBeanFactory.java:430)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1798)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:594)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:516)
	at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:324)
	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:234)
	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:322)
	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:897)
	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:879)
	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:551)
	at com.serotonin.m2m2.Lifecycle.springRuntimeContextInitialize(Lifecycle.java:386)
	at com.serotonin.m2m2.Lifecycle.initialize(Lifecycle.java:292)
	at com.serotonin.m2m2.Main.main(Main.java:144)

@rstoyanchev rstoyanchev added the in: core Issues in core modules (aop, beans, core, context, expression) label Nov 10, 2021
@snicoll
Copy link
Member

snicoll commented Sep 25, 2023

Duplicate #22674

@snicoll snicoll closed this as not planned Won't fix, can't repro, duplicate, stale Sep 25, 2023
@snicoll snicoll added status: duplicate A duplicate of another issue and removed status: waiting-for-triage An issue we've not yet triaged or decided on labels Sep 25, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
in: core Issues in core modules (aop, beans, core, context, expression) status: duplicate A duplicate of another issue
Projects
None yet
Development

No branches or pull requests

7 participants