Nick Clarke created SM-2903:
-------------------------------

             Summary: 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)

Reply via email to