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-framework 6 & spring-boot 3 support #9599

Closed
Gxiaodiao opened this issue Jan 4, 2023 · 4 comments
Closed

spring-framework 6 & spring-boot 3 support #9599

Gxiaodiao opened this issue Jan 4, 2023 · 4 comments
Milestone

Comments

@Gxiaodiao
Copy link

Prerequisites

2023-01-04 17:38:09 INFO org.springframework.cloud.bootstrap.config.PropertySourceBootstrapConfiguration:108 - Located property source: [BootstrapPropertySource {name='bootstrapProperties-config/data-api,dev/'}, BootstrapPropertySource {name='bootstrapProperties-config/data-api/'}, BootstrapPropertySource {name='bootstrapProperties-config/application,dev/'}, BootstrapPropertySource {name='bootstrapProperties-config/application/'}]
2023-01-04 17:38:09 INFO com.ji9.data.ApiApplication:636 - The following 1 profile is active: "dev"
01-04 17:38:09.009 [ main] ERROR c.n.p.p.t.BaseClassFileTransformer -- Transformer:com.navercorp.pinpoint.profiler.plugin.MatchableClassFileTransformerDelegate threw an exception. codeLocation:jar:file:/opt/data-api.jar!/BOOT-INF/lib/spring-webmvc-6.0.3.jar!/ cl:org.springframework.boot.loader.LaunchedURLClassLoader@8f5b6744 ctxCl:org.springframework.boot.loader.LaunchedURLClassLoader@8f5b6744 agentCl:Java9ClassLoader{name=pinpoint.agent} com.navercorp.pinpoint.bootstrap.java9.classloader.Java9ClassLoader@aa8ff8fc Cause:Cannot invoke "com.navercorp.pinpoint.bootstrap.instrument.InstrumentMethod.addInterceptor(java.lang.Class, java.lang.Object[])" because "doGet" is null
java.lang.NullPointerException: Cannot invoke "com.navercorp.pinpoint.bootstrap.instrument.InstrumentMethod.addInterceptor(java.lang.Class, java.lang.Object[])" because "doGet" is null
at com.navercorp.pinpoint.plugin.spring.web.SpringWebMvcPlugin$FrameworkServletTransform.doInTransform(SpringWebMvcPlugin.java:109) ~[pinpoint-spring-plugin-2.5.0.jar:2.5.0]
at com.navercorp.pinpoint.profiler.plugin.MatchableClassFileTransformerDelegate.transform(MatchableClassFileTransformerDelegate.java:64) ~[pinpoint-profiler-2.5.0.jar:2.5.0]
at com.navercorp.pinpoint.profiler.transformer.BaseClassFileTransformer.transform(BaseClassFileTransformer.java:56) ~[pinpoint-profiler-2.5.0.jar:2.5.0]
at com.navercorp.pinpoint.profiler.transformer.DefaultClassFileTransformerDispatcher.transform(DefaultClassFileTransformerDispatcher.java:90) ~[pinpoint-profiler-2.5.0.jar:2.5.0]
at com.navercorp.pinpoint.profiler.context.javamodule.ClassFileTransformerModuleHandler.transform(ClassFileTransformerModuleHandler.java:54) ~[pinpoint-profiler-2.5.0.jar:2.5.0]
at com.navercorp.pinpoint.bootstrap.java9.module.ClassFileTransformerModuleWrap.transform(ClassFileTransformerModuleWrap.java:44) ~[?:2.5.0]
at sun.instrument.TransformerManager.transform(TransformerManager.java:188) ~[?:?]
at sun.instrument.InstrumentationImpl.transform(InstrumentationImpl.java:541) ~[?:?]
at java.lang.ClassLoader.defineClassImpl(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClassInternal(ClassLoader.java:471) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:432) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:657) ~[?:?]
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1061) ~[?:?]
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1046) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:784) ~[?:?]
at java.net.URLClassLoader.findClass(URLClassLoader.java:572) ~[?:?]
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:1196) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:1111) ~[?:?]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:149) ~[data-api.jar:0.0.1]
at java.lang.ClassLoader.loadClass(ClassLoader.java:1094) ~[?:?]
at java.lang.ClassLoader.defineClassImpl(Native Method) ~[?:?]
at java.lang.ClassLoader.defineClassInternal(ClassLoader.java:471) ~[?:?]
at java.lang.ClassLoader.defineClass(ClassLoader.java:432) ~[?:?]
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:150) ~[?:?]
at java.net.URLClassLoader.defineClass(URLClassLoader.java:657) ~[?:?]
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1061) ~[?:?]
at java.net.URLClassLoader$ClassFinder.run(URLClassLoader.java:1046) ~[?:?]
at java.security.AccessController.doPrivileged(AccessController.java:784) ~[?:?]
at java.net.URLClassLoader.findClass(URLClassLoader.java:572) ~[?:?]
at java.lang.ClassLoader.loadClassHelper(ClassLoader.java:1196) ~[?:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:1111) ~[?:?]
at org.springframework.boot.loader.LaunchedURLClassLoader.loadClass(LaunchedURLClassLoader.java:149) ~[data-api.jar:0.0.1]
at java.lang.ClassLoader.loadClass(ClassLoader.java:1094) ~[?:?]
at java.lang.Class.forNameImpl(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:429) ~[?:?]
at org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition.resolve(FilteringSpringBootCondition.java:108) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition$ClassNameFilter.isPresent(FilteringSpringBootCondition.java:140) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition$ClassNameFilter$2.matches(FilteringSpringBootCondition.java:128) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.OnClassCondition$StandardOutcomesResolver.getOutcome(OnClassCondition.java:221) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.OnClassCondition$StandardOutcomesResolver.getOutcome(OnClassCondition.java:205) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.OnClassCondition$StandardOutcomesResolver.getOutcomes(OnClassCondition.java:195) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.OnClassCondition$StandardOutcomesResolver.resolveOutcomes(OnClassCondition.java:184) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.OnClassCondition.resolveOutcomesThreaded(OnClassCondition.java:68) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.OnClassCondition.getOutcomes(OnClassCondition.java:52) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.condition.FilteringSpringBootCondition.match(FilteringSpringBootCondition.java:49) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$ConfigurationClassFilter.filter(AutoConfigurationImportSelector.java:365) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector.getAutoConfigurationEntry(AutoConfigurationImportSelector.java:131) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.boot.autoconfigure.AutoConfigurationImportSelector$AutoConfigurationGroup.process(AutoConfigurationImportSelector.java:429) ~[spring-boot-autoconfigure-3.0.1.jar!/:3.0.1]
at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGrouping.getImports(ConfigurationClassParser.java:793) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorGroupingHandler.processGroupImports(ConfigurationClassParser.java:723) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.annotation.ConfigurationClassParser$DeferredImportSelectorHandler.process(ConfigurationClassParser.java:694) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.annotation.ConfigurationClassParser.parse(ConfigurationClassParser.java:182) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.processConfigBeanDefinitions(ConfigurationClassPostProcessor.java:398) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.annotation.ConfigurationClassPostProcessor.postProcessBeanDefinitionRegistry(ConfigurationClassPostProcessor.java:283) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanDefinitionRegistryPostProcessors(PostProcessorRegistrationDelegate.java:344) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.support.PostProcessorRegistrationDelegate.invokeBeanFactoryPostProcessors(PostProcessorRegistrationDelegate.java:115) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.support.AbstractApplicationContext.invokeBeanFactoryPostProcessors(AbstractApplicationContext.java:745) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:565) ~[spring-context-6.0.3.jar!/:6.0.3]
at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:146) ~[spring-boot-3.0.1.jar!/:3.0.1]
at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:730) ~[spring-boot-3.0.1.jar!/:3.0.1]
at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:432) ~[spring-boot-3.0.1.jar!/:3.0.1]
at org.springframework.boot.SpringApplication.run(SpringApplication.java:308) ~[spring-boot-3.0.1.jar!/:3.0.1]
at com.ji9.data.ApiApplication.main(ApiApplication.java:20) ~[classes!/:0.0.1]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:77) ~[?:?]
at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:568) ~[?:?]
at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:49) ~[data-api.jar:0.0.1]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:95) ~[data-api.jar:0.0.1]
at org.springframework.boot.loader.Launcher.launch(Launcher.java:58) ~[data-api.jar:0.0.1]
at org.springframework.boot.loader.JarLauncher.main(JarLauncher.java:65) ~[data-api.jar:0.0.1]

The version used by the pinpoint server is 2.5.0, the version used by the agent is also 2.5.0, and the version used by the jdk is 17, the agent has an error, and the information is as follows:
Cannot invoke "com.navercorp.pinpoint.bootstrap.instrument.InstrumentMethod.addInterceptor(java.lang.Class, java.lang.Object[])" because "doGet" is null

ask for help

@emeroad
Copy link
Member

emeroad commented Jan 4, 2023

Since spring-framework 6.0, the package has been changed from javax to jakarta,
so it seems that it does not work properly.

  • javax.servlet.http.HttpServletRequest -> jakarta.servlet.http.HttpServletRequest

We plan to support spring 6.0 in a future release.

@emeroad emeroad added this to the 2.5.1 milestone Jan 4, 2023
@Gxiaodiao
Copy link
Author

When the project uses springboot3.0.1, jdk17, you need to wait for your pinpoint2.5.1 release, looking forward to

@emeroad emeroad changed the title agent2.5.0 error spring-framework 6 & spring-boot 3 support Jan 13, 2023
donghun-cho added a commit to donghun-cho/pinpoint that referenced this issue Jan 17, 2023
donghun-cho added a commit to donghun-cho/pinpoint that referenced this issue Jan 17, 2023
@14km
Copy link

14km commented Jan 19, 2023

When is the release plan for the next version?

@smilu97
Copy link
Member

smilu97 commented Jan 30, 2023

@14km

Related PR (#9658) wil be merged soon, but it is really difficult for us to announce clear time for that.

If you urgently need to test spring 6 application with pinpoint, you can build agent from sourcecode in master branch after merging #9658

donghun-cho added a commit to donghun-cho/pinpoint that referenced this issue Feb 3, 2023
donghun-cho added a commit to donghun-cho/pinpoint that referenced this issue Feb 3, 2023
donghun-cho added a commit to donghun-cho/pinpoint that referenced this issue Feb 6, 2023
donghun-cho added a commit that referenced this issue Feb 8, 2023
@emeroad emeroad modified the milestones: 2.5.1, 2.6.0 Apr 11, 2023
@emeroad emeroad closed this as completed Apr 11, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants