Bug 961249

Summary: Seam 2.3, ClassDescriptor doesn't catch LinkageError
Product: [Retired] JBoss Enterprise WFK Platform 2 Reporter: Marek Schmidt <maschmid>
Component: SeamAssignee: Marek Novotny <mnovotny>
Status: CLOSED CURRENTRELEASE QA Contact: Marek Schmidt <maschmid>
Severity: high Docs Contact:
Priority: unspecified    
Version: 2.2.0CC: snagarwa, tremes
Target Milestone: ER1   
Target Release: 2.3.0   
Hardware: Unspecified   
OS: Unspecified   
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
Enterprise Application Platform 6.1.0 changed (compared to Enterprise Application Platform 6.0.x) the type of exception generated when a class is not on classloader classpath. As a consequence, application deployment would fail on Enterprise Application Platform 6.1. This has been fixed by changing the handling of java.lang.LinkageError instead of java.lang.ClassNotFoundException and java.lang.NoClassDefFoundError. As a result, application deployment works fine.
Story Points: ---
Clone Of: Environment:
Last Closed: 2013-07-16 11:10:46 UTC Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Embargoed:

Description Marek Schmidt 2013-05-09 08:50:01 UTC
Description of problem:

In several places where Seam catches ClassNotFoundException, NoClassDefFoundError, ... it doesn't catch the general LinkageError, causing some deployments to fail on EAP 6.1 (those with Seam Remoting not bundling an an optional gwt-servlet)

Version-Release number of selected component (if applicable):
WFK 2.2.0

How reproducible:
Always

Steps to Reproduce:
1. Attempt to deploy seambay example to EAP 6.1

Notice the warning of failing to load components.xml because of the LinkageError exception, causing the deployment failure:

10:40:40,202 WARN  [org.jboss.seam.integration.jbossas.vfs.VFSScanner] (ServerService Thread Pool -- 51) Cannot read resource: META-INF/components.xml: java.io.IOException
	at org.jboss.seam.integration.jbossas.vfs.VFSScanner.handleItem(VFSScanner.java:212) [jboss-seam-int.jar:6.0.0.GA-redhat-2]
	at org.jboss.seam.integration.jbossas.vfs.VFSScanner.handleRoot(VFSScanner.java:190) [jboss-seam-int.jar:6.0.0.GA-redhat-2]
	at org.jboss.seam.integration.jbossas.vfs.VFSScanner.scanResources(VFSScanner.java:153) [jboss-seam-int.jar:6.0.0.GA-redhat-2]
	at org.jboss.seam.deployment.StandardDeploymentStrategy.scan(StandardDeploymentStrategy.java:119) [jboss-seam.jar:2.3.1.Final-redhat-1]
	at org.jboss.seam.init.Initialization.create(Initialization.java:131) [jboss-seam.jar:2.3.1.Final-redhat-1]
	at org.jboss.seam.servlet.SeamListener.contextInitialized(SeamListener.java:36) [jboss-seam.jar:2.3.1.Final-redhat-1]
	at org.apache.catalina.core.StandardContext.contextListenerStart(StandardContext.java:3339) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
	at org.apache.catalina.core.StandardContext.start(StandardContext.java:3777) [jbossweb-7.2.0.Final-redhat-1.jar:7.2.0.Final-redhat-1]
	at org.jboss.as.web.deployment.WebDeploymentService.doStart(WebDeploymentService.java:156) [jboss-as-web-7.2.0.Final-redhat-6.jar:7.2.0.Final-redhat-6]
	at org.jboss.as.web.deployment.WebDeploymentService.access$000(WebDeploymentService.java:60) [jboss-as-web-7.2.0.Final-redhat-6.jar:7.2.0.Final-redhat-6]
	at org.jboss.as.web.deployment.WebDeploymentService$1.run(WebDeploymentService.java:93) [jboss-as-web-7.2.0.Final-redhat-6.jar:7.2.0.Final-redhat-6]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471) [rt.jar:1.7.0_19]
	at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334) [rt.jar:1.7.0_19]
	at java.util.concurrent.FutureTask.run(FutureTask.java:166) [rt.jar:1.7.0_19]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_19]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_19]
	at java.lang.Thread.run(Thread.java:722) [rt.jar:1.7.0_19]
	at org.jboss.threads.JBossThread.run(JBossThread.java:122)
Caused by: java.lang.reflect.InvocationTargetException
	at sun.reflect.GeneratedMethodAccessor52.invoke(Unknown Source) [:1.7.0_19]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_19]
	at java.lang.reflect.Method.invoke(Method.java:601) [rt.jar:1.7.0_19]
	at org.jboss.seam.integration.jbossas.vfs.VFSScanner.handleItem(VFSScanner.java:208) [jboss-seam-int.jar:6.0.0.GA-redhat-2]
	... 17 more
Caused by: java.lang.LinkageError: Failed to link org/jboss/seam/remoting/gwt/GWTService (Module "deployment.seam-seambay.ear:main" from Service Module Loader)
	at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:427) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:260) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:75) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.Module.loadModuleClass(Module.java:526) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:188) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_19]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [rt.jar:1.7.0_19]
	at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:344) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:422) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ModuleClassLoader.loadClassLocal(ModuleClassLoader.java:260) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ModuleClassLoader$1.loadClassLocal(ModuleClassLoader.java:75) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.Module.loadModuleClass(Module.java:526) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:188) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.seam.deployment.ClassDescriptor.<init>(ClassDescriptor.java:30) [jboss-seam.jar:2.3.1.Final-redhat-1]
	at org.jboss.seam.deployment.AbstractScanner$Handler.getClassDescriptor(AbstractScanner.java:125) [jboss-seam.jar:2.3.1.Final-redhat-1]
	at org.jboss.seam.deployment.AbstractScanner$Handler.handle(AbstractScanner.java:67) [jboss-seam.jar:2.3.1.Final-redhat-1]
	at org.jboss.seam.deployment.AbstractScanner$Handler.handle(AbstractScanner.java:97) [jboss-seam.jar:2.3.1.Final-redhat-1]
	at org.jboss.seam.deployment.AbstractScanner.handle(AbstractScanner.java:225) [jboss-seam.jar:2.3.1.Final-redhat-1]
	... 21 more
Caused by: java.lang.NoClassDefFoundError: com/google/gwt/user/server/rpc/SerializationPolicyProvider
	at java.lang.ClassLoader.defineClass1(Native Method) [rt.jar:1.7.0_19]
	at java.lang.ClassLoader.defineClass(ClassLoader.java:791) [rt.jar:1.7.0_19]
	at org.jboss.modules.ModuleClassLoader.doDefineOrLoadClass(ModuleClassLoader.java:344) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ModuleClassLoader.defineClass(ModuleClassLoader.java:422) [jboss-modules.jar:1.2.0.Final-redhat-1]
	... 46 more
Caused by: java.lang.ClassNotFoundException: com.google.gwt.user.server.rpc.SerializationPolicyProvider from [Module "deployment.seam-seambay.ear:main" from Service Module Loader]
	at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:196) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassUnchecked(ConcurrentClassLoader.java:444) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:432) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:374) [jboss-modules.jar:1.2.0.Final-redhat-1]
	at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:119) [jboss-modules.jar:1.2.0.Final-redhat-1]
	... 50 more

Comment 1 Marek Novotny 2013-06-04 10:38:24 UTC
fixed in r15543

Comment 3 Tomas Remes 2013-06-12 14:26:56 UTC
Verified on 2.3.0.ER1 release.

Comment 4 Sneha 2013-07-03 10:20:04 UTC
Updated doc text.

Note: This bug was not a known issue in wfk 2.2 RN.

Comment 5 Sneha 2013-07-03 10:20:52 UTC
Updated doc text.

Note: This bug was not a known issue in wfk 2.2 RN.

Comment 6 JBoss JIRA Server 2013-07-04 16:36:07 UTC
Marek Novotny <mnovotny> updated the status of jira JBSEAM-5111 to Resolved

Comment 7 JBoss JIRA Server 2013-07-04 16:36:07 UTC
Marek Novotny <mnovotny> made a comment on jira JBSEAM-5111

fixed

Comment 8 JBoss JIRA Server 2013-07-04 16:36:20 UTC
Marek Novotny <mnovotny> updated the status of jira JBSEAM-5111 to Closed