Announcement Announcement Module
Collapse
No announcement yet.
Spring 3.2.0.RELEASE breaks with JBoss 7 Page Title Module
Move Remove Collapse
X
Conversation Detail Module
Collapse
  • Filter
  • Time
  • Show
Clear All
new posts

  • Spring 3.2.0.RELEASE breaks with JBoss 7

    I am trying to migrate from Spring 3.0.1 to 3.2.0.RELEASE. While deployment (in JBoss 7.1.1), I am getting following WARN

    Code:
    20:59:55,176 WARN  [org.jboss.modules.ModuleClassLoader] (MSC service thread 1-8) Failed to define class org.springframework.core.LocalVariableTableParameterNameDiscoverer$ParameterNameDiscoveringVisitor in Module "deployment.my-webApp.war:main" from Service Module Loader: java.lang.IncompatibleClassChangeError: class org.springframework.core.LocalVariableTableParameterNameDiscoverer$ParameterNameDiscoveringVisitor has interface org.springframework.asm.ClassVisitor as super class
    	at java.lang.ClassLoader.defineClass1(Native Method) [classes.jar:1.6.0_37]
    	at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631) [classes.jar:1.6.0_37]
    	at java.lang.ClassLoader.defineClass(ClassLoader.java:615) [classes.jar:1.6.0_37]
    	at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141) [classes.jar:1.6.0_37]
    	at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:327)
    	at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:391)
    	at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:243)
    	at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:73)
    	at org.jboss.modules.Module.loadModuleClass(Module.java:517)
    	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:182)
    	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:468)
    	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:456)
    	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:423)
    	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:398)
    	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:120)
    	at org.springframework.core.LocalVariableTableParameterNameDiscoverer.inspectClass(LocalVariableTableParameterNameDiscoverer.java:114) [spring-core-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.core.LocalVariableTableParameterNameDiscoverer.getParameterNames(LocalVariableTableParameterNameDiscoverer.java:86) [spring-core-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.ConstructorResolver.autowireConstructor(ConstructorResolver.java:193) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.autowireConstructor(AbstractAutowireCapableBeanFactory.java:1049) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:953) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:490) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveReference(BeanDefinitionValueResolver.java:323) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.BeanDefinitionValueResolver.resolveValueIfNecessary(BeanDefinitionValueResolver.java:107) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.applyPropertyValues(AbstractAutowireCapableBeanFactory.java:1391) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1132) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:522) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:461) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:295) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:223) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:292) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:194) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:607) [spring-beans-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:932) [spring-context-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:479) [spring-context-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.web.context.ContextLoader.configureAndRefreshWebApplicationContext(ContextLoader.java:383) [spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:283) [spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:112) [spring-web-3.2.0.RELEASE.jar:3.2.0.RELEASE]
    	at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3392) [jbossweb-7.0.13.Final.jar:]
    	at org.apache.catalina.core.StandardContext.start(StandardContext.java:3850) [jbossweb-7.0.13.Final.jar:]
    	at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:90) [jboss-as-web-7.1.1.Final.jar:7.1.1.Final]
    	at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811)
    	at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746)
    	at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) [classes.jar:1.6.0_37]
    	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) [classes.jar:1.6.0_37]
    	at java.lang.Thread.run(Thread.java:680) [classes.jar:1.6.0_37]
    On debug, this is what I found:

    1. There is no 3.2.0.RELEASE for Spring-ASM. Latest Spring-ASM module in Spring's Maven repo is 3.1.3.RELEASE
    2. In Spring-Core 3.2.0.RELEASE, the class LocalVariableTableParameterNameDiscoverer has a private class ParameterNameDiscoveringVisitor which extends an interface org.springframework.asm.ClassVisitor (defined inside Spring-ASM); whereas in Spring-Core 3.1.3.RELEASE the same class extends org.springframework.asm.commons.EmptyVisitor.

    Can someone help me understand why such inconsistencies? I am now at a stage to decide whether to use 3.1.3.RELEASE or 3.2.0.RELEASE. To me, it looks like 3.2.0 is still buggy and not ready for production use.

    Thanks,
    Niranjan

  • #2
    Created JIRA https://jira.springsource.org/browse/SPR-10134

    Comment


    • #3
      1. There is no 3.2.0.RELEASE for Spring-ASM. Latest Spring-ASM module in Spring's Maven repo is 3.1.3.RELEASE
      Correct. There is no more spring-asm... Those classes have moved into spring-core (with an upgraded version of ASM).

      2. In Spring-Core 3.2.0.RELEASE, the class LocalVariableTableParameterNameDiscoverer has a private class ParameterNameDiscoveringVisitor which extends an interface org.springframework.asm.ClassVisitor (defined inside Spring-ASM); whereas in Spring-Core 3.1.3.RELEASE the same class extends org.springframework.asm.commons.EmptyVisitor.
      Your conclusion is wrong. (See 1) the interface org.springframework.asm.ClassVisitor is defined in spring-core now.

      In short remove the spring-asm dependency from your dependency list.

      Comment


      • #4
        Thanks Martin for reply. Chris (Beams) had replied the same thing in the JIRA. And, I did as per his instruction and my app was deployed successfully.

        This thread can be considered closed.

        Thanks again.

        ~ Niranjan

        Comment

        Working...
        X