[
https://issues.apache.org/jira/browse/SM-2903?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Nick Clarke updated SM-2903:
----------------------------
Description:
org.apache.servicemix.bundles:org.apache.servicemix.bundles.spring-webmvc:4.2.4.RELEASE_1
does not have Import-Package for {{org.springframework.cglib.reflect}}.
This causes it to fail at runtime for some code paths using spring annotation
config and MVC, because a class from that package is loaded via reflection -
see below.
It does already have imports for other cglib packages because they're used
directly, so the package-time bytecode scanner found them:
{code}
org.springframework.cglib.core
version="[4.2.4.RELEASE,4.3)"
resolution:=optional
org.springframework.cglib.proxy
version="[4.2.4.RELEASE,4.3)"
resolution:=optional
{code}
What breaks? org.springframework.cglib.core.AbstractClassGenerator.create fails
when using spring-mvc with annotation config. (AbstractClassGenerator gets
invoked by
org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept,
and tries to load org.springframework.cglib.reflect.FastClass via reflection,
which fails because the package isn't imported)
Fix: add a line here:
https://github.com/apache/servicemix-bundles/blob/master/spring-webmvc-4.2.4.RELEASE/pom.xml#L86
...with an explicit import for this package:
{code}
org.springframework.cglib.reflect;version="[${pkgVersion},4.3)";resolution:=optional,
{code}
was:
org.apache.servicemix.bundles:org.apache.servicemix.bundles.spring-webmvc:4.2.4.RELEASE_1
does not have Import-Package for {org.springframework.cglib.reflect}.
This causes it to fail at runtime for some code paths using spring annotation
config and MVC, because a class from that package is loaded via reflection -
see below.
It does already have imports for other cglib packages because they're used
directly, so the package-time bytecode scanner found them:
{code}
org.springframework.cglib.core
version="[4.2.4.RELEASE,4.3)"
resolution:=optional
org.springframework.cglib.proxy
version="[4.2.4.RELEASE,4.3)"
resolution:=optional
{code}
What breaks? org.springframework.cglib.core.AbstractClassGenerator.create fails
when using spring-mvc with annotation config. (AbstractClassGenerator gets
invoked by
org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept,
and tries to load org.springframework.cglib.reflect.FastClass via reflection,
which fails because the package isn't imported)
Fix: add a line here:
https://github.com/apache/servicemix-bundles/blob/master/spring-webmvc-4.2.4.RELEASE/pom.xml#L86
...with an explicit import for this package:
{code}
org.springframework.cglib.reflect;version="[${pkgVersion},4.3)";resolution:=optional,
{code}
> org.apache.servicemix.bundles.spring-webmvc does not have Import-Package for
> org.springframework.cglib.reflect
> --------------------------------------------------------------------------------------------------------------
>
> Key: SM-2903
> URL: https://issues.apache.org/jira/browse/SM-2903
> Project: ServiceMix
> Issue Type: Bug
> Components: bundles
> Reporter: Nick Clarke
>
> org.apache.servicemix.bundles:org.apache.servicemix.bundles.spring-webmvc:4.2.4.RELEASE_1
> does not have Import-Package for {{org.springframework.cglib.reflect}}.
> This causes it to fail at runtime for some code paths using spring annotation
> config and MVC, because a class from that package is loaded via reflection -
> see below.
> It does already have imports for other cglib packages because they're used
> directly, so the package-time bytecode scanner found them:
> {code}
> org.springframework.cglib.core
> version="[4.2.4.RELEASE,4.3)"
> resolution:=optional
> org.springframework.cglib.proxy
> version="[4.2.4.RELEASE,4.3)"
> resolution:=optional
> {code}
> What breaks? org.springframework.cglib.core.AbstractClassGenerator.create
> fails when using spring-mvc with annotation config. (AbstractClassGenerator
> gets invoked by
> org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept,
> and tries to load org.springframework.cglib.reflect.FastClass via
> reflection, which fails because the package isn't imported)
> Fix: add a line here:
> https://github.com/apache/servicemix-bundles/blob/master/spring-webmvc-4.2.4.RELEASE/pom.xml#L86
> ...with an explicit import for this package:
> {code}
> org.springframework.cglib.reflect;version="[${pkgVersion},4.3)";resolution:=optional,
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)