Kabir Khan [
http://community.jboss.org/people/kabir.khan%40jboss.com] replied to the
discussion
"JBREFLECT-5 - Implementing generics in JavassistClassInfo"
To view the discussion, visit:
http://community.jboss.org/message/539484#539484
--------------------------------------------------------------
Having revisited how the classpools are set up (
http://community.jboss.org/thread/151095
http://community.jboss.org/thread/151095) which became apparent after looking into (
http://community.jboss.org/message/538568#538568
http://community.jboss.org/message/538568#538568) and fixed the problems to do with
generating accessors for classes loaded by a parent of the jboss-reflect classloader I now
end up with the following problems when starting AS:
Failed to boot JBoss:
java.lang.Exception: Encountered exception in server startup
at
org.jboss.bootstrap.impl.mc.server.AbstractMCServerBase.bootstrapMcAndDescriptors(AbstractMCServerBase.java:360)
at
org.jboss.bootstrap.impl.mc.server.AbstractMCServerBase.doStart(AbstractMCServerBase.java:292)
at
org.jboss.bootstrap.impl.as.server.AbstractJBossASServerBase.doStart(AbstractJBossASServerBase.java:381)
at
org.jboss.bootstrap.impl.base.server.AbstractServer$StartServerTask.run(AbstractServer.java:413)
at java.lang.Thread.run(Thread.java:637)
Caused by: org.jboss.xb.binding.JBossXBException: Failed to parse source:
java.lang.IllegalStateException: java.lang.ClassNotFoundException:
org.jboss.beans.metadata.spi.AnnotationMetaData
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployment.annotations
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployment
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:195)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:175)
at org.jboss.xb.binding.UnmarshallerImpl.unmarshal(UnmarshallerImpl.java:161)
at
org.jboss.bootstrap.impl.mc.deployer.TempBasicXMLDeployer.deploy(TempBasicXMLDeployer.java:188)
at
org.jboss.bootstrap.impl.mc.server.AbstractMCServerBase.bootstrapMcAndDescriptors(AbstractMCServerBase.java:345)
... 4 more
Caused by: org.jboss.xb.binding.JBossXBRuntimeException: java.lang.IllegalStateException:
java.lang.ClassNotFoundException: org.jboss.beans.metadata.spi.AnnotationMetaData
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployment.annotations
at org.jboss.kernel.plugins.deployment.AbstractKernelDeployment
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.rethrowWithLocation(JBossXBNoSchemaBuilder.java:2293)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.createRootElementBinding(JBossXBNoSchemaBuilder.java:428)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.createRootElements(JBossXBNoSchemaBuilder.java:403)
at org.jboss.xb.builder.JBossXBNoSchemaBuilder.build(JBossXBNoSchemaBuilder.java:273)
at org.jboss.xb.builder.JBossXBBuilder.build(JBossXBBuilder.java:336)
at org.jboss.xb.builder.JBossXBBuilder.build(JBossXBBuilder.java:222)
at org.jboss.xb.builder.JBossXBBuilder.build(JBossXBBuilder.java:201)
at
org.jboss.xb.binding.resolver.AbstractMutableSchemaResolver.resolve(AbstractMutableSchemaResolver.java:315)
at
org.jboss.xb.binding.sunday.unmarshalling.SundayContentHandler.startElement(SundayContentHandler.java:177)
at
org.jboss.xb.binding.parser.sax.SaxJBossXBParser.startElement(SaxJBossXBParser.java:370)
at org.apache.xerces.parsers.AbstractSAXParser.startElement(Unknown Source)
at org.apache.xerces.xinclude.XIncludeHandler.startElement(Unknown Source)
at org.apache.xerces.impl.XMLNSDocumentScannerImpl.scanStartElement(Unknown Source)
at
org.apache.xerces.impl.XMLNSDocumentScannerImpl$NSContentDispatcher.scanRootElementHook(Unknown
Source)
at
org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch(Unknown
Source)
at org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source)
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source)
at org.apache.xerces.parsers.AbstractSAXParser.parse(Unknown Source)
at org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse(Unknown Source)
at org.jboss.xb.binding.parser.sax.SaxJBossXBParser.parse(SaxJBossXBParser.java:191)
... 8 more
Caused by: java.lang.RuntimeException: java.lang.IllegalStateException:
java.lang.ClassNotFoundException: org.jboss.beans.metadata.spi.AnnotationMetaData
at
org.jboss.reflect.plugins.javassist.JavassistParameterizedClassInfo.findTypeInfo(JavassistParameterizedClassInfo.java:153)
at
org.jboss.reflect.plugins.javassist.JavassistParameterizedClassInfo.getComponentType(JavassistParameterizedClassInfo.java:121)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.bindProperty(JBossXBNoSchemaBuilder.java:1447)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateType(JBossXBNoSchemaBuilder.java:1231)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:855)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateBean(JBossXBNoSchemaBuilder.java:843)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.generateTypeBinding(JBossXBNoSchemaBuilder.java:604)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.resolveTypeBinding(JBossXBNoSchemaBuilder.java:563)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.createElementBinding(JBossXBNoSchemaBuilder.java:443)
at
org.jboss.xb.builder.JBossXBNoSchemaBuilder.createRootElementBinding(JBossXBNoSchemaBuilder.java:423)
... 28 more
Caused by: java.lang.IllegalStateException: java.lang.ClassNotFoundException:
org.jboss.beans.metadata.spi.AnnotationMetaData
at
org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl.getTypeInfo(JavassistTypeInfoFactoryImpl.java:852)
at
org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl.createTypeInfoForTypeArgument(JavassistTypeInfoFactoryImpl.java:910)
at
org.jboss.reflect.plugins.javassist.JavassistParameterizedClassInfo.getActualTypeArguments(JavassistParameterizedClassInfo.java:110)
at
org.jboss.reflect.plugins.javassist.JavassistParameterizedClassInfo.findTypeInfo(JavassistParameterizedClassInfo.java:149)
... 37 more
Caused by: java.lang.ClassNotFoundException:
org.jboss.beans.metadata.spi.AnnotationMetaData
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:315)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:330)
at java.lang.ClassLoader.loadClass(ClassLoader.java:250)
at
org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl.delegateToIntrospectionImplementation(JavassistTypeInfoFactoryImpl.java:608)
at
org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl.get(JavassistTypeInfoFactoryImpl.java:564)
at
org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl.get(JavassistTypeInfoFactoryImpl.java:455)
at
org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl.get(JavassistTypeInfoFactoryImpl.java:412)
at
org.jboss.reflect.plugins.javassist.JavassistTypeInfoFactoryImpl.getTypeInfo(JavassistTypeInfoFactoryImpl.java:848)
... 40 more
Posting Shutdown Request to the server...
The problem here is for parameterized type infos. We currently use the type info of the
raw type for the whole parameterized type which will not work for things like
java.util.Set<org.jboss.beans.metadata.spi.AnnotationMetaData> since the raw type
(Set) comes from the system classpath and thus cannot see the actual type argument classes
(AnnotationMetaData is further down in the classloader hierarchy).
Parameterized type infos will need to be cached differently, I'll look at how these
are handled in plain java across different classloaders.
--------------------------------------------------------------
Reply to this message by going to Community
[
http://community.jboss.org/message/539484#539484]
Start a new discussion in JBoss Microcontainer Development at Community
[
http://community.jboss.org/choose-container!input.jspa?contentType=1&...]