[aspectwerkz-dev] [jira] Commented: (AW-472) Multi aop file cause an exception

"Sunder Tatta (JIRA)" <jira-yCVjj/[email protected]> Tue, 18 Sep 2007 17:59:11 -0500 (CDT)
Newsgroups gmane.comp.java.aspectwerkz.devel
Message-ID <19709079.1190156351958.JavaMail.haus-jira@codehaus01.managed.contegix.com>
    [ http://jira.codehaus.org/browse/AW-472?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_107693 ] 

Sunder Tatta commented on AW-472:
---------------------------------

When two are more applications on Tomcat (or probably any Application server ) have aop.xml files 
(Multiple aop.xmls' on a single server), the following exception stack trace is thrown

org.dom4j.DocumentException: null Nested exception: null
at org.dom4j.io.SAXReader.read(SAXReader.java:358)
at org.dom4j.io.SAXReader.read(SAXReader.java:261)
at org.codehaus.aspectwerkz.definition.XmlParser.createDocument(XmlParser.java:229)

Because the DTD Stream that accesses the AOP files is declared as "static final", it  works fine when there is one JVM attributed with every application. When there is just one JVM for two or more applications, each application should receive a new stream.

The fix is linked to that of  AW-473. Update the XmlParser.java in the aspectwerkz-2.Version.jar with the attached code of AW-473.







> Multi aop file cause an exception
> ---------------------------------
>
>                 Key: AW-472
>                 URL: http://jira.codehaus.org/browse/AW-472
>             Project: AspectWerkz
>          Issue Type: Bug
>    Affects Versions: 2.0
>         Environment: WLS-8.1, JDK 1.4.2_05, WinXP Pro.
>            Reporter: Oded Hassidi
>
> Hi, I think its a bug or I am missing something...
> I have an EAR file deployed successfuly on the WLS-8.1.
> My EAR looks like: multiple EJBs in the EAR file and two EJBs contains aop.xml each one of them (meaning two aop.xml files). Both of aop.xml files references to the same aspect class, also both files has different system-id values.
> When the AspectWerkz start to load, it loads the first aop.xml perfectly (I hope). But when starting to load the second I get a {{NullPointerException}}, when trying to debug the code I see that its in the {{org.codehaus.aspectwerkz.definition.XmlParser.createDocument}} method. Followed is the stack trace if you can help will more then just happy (!)
> *Stack:*
> ******************************************************************
> * ClassLoader = sun.misc.Launcher$ExtClassLoader@e80a59
> * SystemID = virtual_15207001, 1 aspects.
> ******************************************************************
> ******************************************************************
> * ClassLoader = sun.misc.Launcher$AppClassLoader@53ba3d
> * SystemID = virtual_5487165, 1 aspects.
> * file:/D:/beahome8/user_projects/domains/idmdomain/no -Daspectwerkz.definition.file
> ******************************************************************
> ******************************************************************
> * ClassLoader = weblogic.utils.classloaders.GenericClassLoader@18615648
> * SystemID = virtual_18615648, 1 aspects.
> ******************************************************************
> ******************************************************************
> * ClassLoader = weblogic.utils.classloaders.GenericClassLoader@7761603
> * SystemID = virtual_7761603, 1 aspects.
> ******************************************************************
> org.dom4j.DocumentException: null Nested exception: null
>         at org.dom4j.io.SAXReader.read(SAXReader.java:358)
>         at org.dom4j.io.SAXReader.read(SAXReader.java:261)
>         at org.codehaus.aspectwerkz.definition.XmlParser.createDocument(XmlParser.java:229)
>         at org.codehaus.aspectwerkz.definition.XmlParser.parseNoCache(XmlParser.java:177)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.registerClassLoader(SystemDefinitionContainer.java:138)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.getHierarchicalDefinitionsFor(SystemDefinitionContainer.java:316)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.getDefinitionsFor(SystemDefinitionContainer.java:224)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.getAdviceInfoContainerForJoinPoint(JoinPointManager.java:563)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.compileJoinPoint(JoinPointManager.java:459)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.loadJoinPoint(JoinPointManager.java:235)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineBean.aw$initJoinPoints(RuleEngineBean.java)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineBean.<clinit>(RuleEngineBean.java)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
>         at java.lang.Class.newInstance0(Class.java:308)
>         at java.lang.Class.newInstance(Class.java:261)
>         at weblogic.ejb20.manager.BaseEJBManager.allocateBean(BaseEJBManager.java:129)
>         at weblogic.ejb20.manager.StatelessManager.createBean(StatelessManager.java:266)
>         at weblogic.ejb20.pool.StatelessSessionPool.createBean(StatelessSessionPool.java:168)
>         at weblogic.ejb20.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:110)
>         at weblogic.ejb20.manager.StatelessManager.preInvoke(StatelessManager.java:140)
>         at weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:137)
>         at weblogic.ejb20.internal.StatelessEJBObject.preInvoke(StatelessEJBObject.java:69)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineEJB_vx0wlp_EOImpl.handleEvent(RuleEngineEJB_vx0wlp_EOImpl.java:517)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineEJB_vx0wlp_EOImpl_WLSkel.invoke(Unknown Source)
>         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
>         at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
>         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
>         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
>         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
>         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
>         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
>         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> Nested exception:
> java.lang.NullPointerException
>         at java.util.zip.Inflater.inflateBytes(Native Method)
>         at java.util.zip.Inflater.inflate(Inflater.java:219)
>         at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:128)
>         at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:105)
>         at java.io.FilterInputStream.read(FilterInputStream.java:66)
>         at weblogic.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(XMLEntityManager.java:3408)
>         at weblogic.apache.xerces.impl.XMLEntityManager.startEntity(XMLEntityManager.java:847)
>         at weblogic.apache.xerces.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:796)
>         at weblogic.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:275)
>         at weblogic.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(XMLDocumentScannerImpl.java:841)
>         at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
>         at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
>         at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
>         at weblogic.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
>         at weblogic.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
>         at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)
>         at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:152)
>         at org.dom4j.io.SAXReader.read(SAXReader.java:339)
>         at org.dom4j.io.SAXReader.read(SAXReader.java:261)
>         at org.codehaus.aspectwerkz.definition.XmlParser.createDocument(XmlParser.java:229)
>         at org.codehaus.aspectwerkz.definition.XmlParser.parseNoCache(XmlParser.java:177)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.registerClassLoader(SystemDefinitionContainer.java:138)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.getHierarchicalDefinitionsFor(SystemDefinitionContainer.java:316)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.getDefinitionsFor(SystemDefinitionContainer.java:224)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.getAdviceInfoContainerForJoinPoint(JoinPointManager.java:563)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.compileJoinPoint(JoinPointManager.java:459)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.loadJoinPoint(JoinPointManager.java:235)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineBean.aw$initJoinPoints(RuleEngineBean.java)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineBean.<clinit>(RuleEngineBean.java)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
>         at java.lang.Class.newInstance0(Class.java:308)
>         at java.lang.Class.newInstance(Class.java:261)
>         at weblogic.ejb20.manager.BaseEJBManager.allocateBean(BaseEJBManager.java:129)
>         at weblogic.ejb20.manager.StatelessManager.createBean(StatelessManager.java:266)
>         at weblogic.ejb20.pool.StatelessSessionPool.createBean(StatelessSessionPool.java:168)
>         at weblogic.ejb20.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:110)
>         at weblogic.ejb20.manager.StatelessManager.preInvoke(StatelessManager.java:140)
>         at weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:137)
>         at weblogic.ejb20.internal.StatelessEJBObject.preInvoke(StatelessEJBObject.java:69)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineEJB_vx0wlp_EOImpl.handleEvent(RuleEngineEJB_vx0wlp_EOImpl.java:517)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineEJB_vx0wlp_EOImpl_WLSkel.invoke(Unknown Source)
>         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
>         at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
>         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
>         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
>         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
>         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
>         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
>         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> Nested exception: java.lang.NullPointerException
>         at java.util.zip.Inflater.inflateBytes(Native Method)
>         at java.util.zip.Inflater.inflate(Inflater.java:219)
>         at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:128)
>         at java.util.zip.InflaterInputStream.read(InflaterInputStream.java:105)
>         at java.io.FilterInputStream.read(FilterInputStream.java:66)
>         at weblogic.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read(XMLEntityManager.java:3408)
>         at weblogic.apache.xerces.impl.XMLEntityManager.startEntity(XMLEntityManager.java:847)
>         at weblogic.apache.xerces.impl.XMLEntityManager.startDTDEntity(XMLEntityManager.java:796)
>         at weblogic.apache.xerces.impl.XMLDTDScannerImpl.setInputSource(XMLDTDScannerImpl.java:275)
>         at weblogic.apache.xerces.impl.XMLDocumentScannerImpl$DTDDispatcher.dispatch(XMLDocumentScannerImpl.java:841)
>         at weblogic.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:329)
>         at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:525)
>         at weblogic.apache.xerces.parsers.DTDConfiguration.parse(DTDConfiguration.java:581)
>         at weblogic.apache.xerces.parsers.XMLParser.parse(XMLParser.java:152)
>         at weblogic.apache.xerces.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1175)
>         at weblogic.xml.jaxp.WebLogicXMLReader.parse(WebLogicXMLReader.java:135)
>         at weblogic.xml.jaxp.RegistryXMLReader.parse(RegistryXMLReader.java:152)
>         at org.dom4j.io.SAXReader.read(SAXReader.java:339)
>         at org.dom4j.io.SAXReader.read(SAXReader.java:261)
>         at org.codehaus.aspectwerkz.definition.XmlParser.createDocument(XmlParser.java:229)
>         at org.codehaus.aspectwerkz.definition.XmlParser.parseNoCache(XmlParser.java:177)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.registerClassLoader(SystemDefinitionContainer.java:138)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.getHierarchicalDefinitionsFor(SystemDefinitionContainer.java:316)
>         at org.codehaus.aspectwerkz.definition.SystemDefinitionContainer.getDefinitionsFor(SystemDefinitionContainer.java:224)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.getAdviceInfoContainerForJoinPoint(JoinPointManager.java:563)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.compileJoinPoint(JoinPointManager.java:459)
>         at org.codehaus.aspectwerkz.joinpoint.management.JoinPointManager.loadJoinPoint(JoinPointManager.java:235)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineBean.aw$initJoinPoints(RuleEngineBean.java)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineBean.<clinit>(RuleEngineBean.java)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>         at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>         at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>         at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
>         at java.lang.Class.newInstance0(Class.java:308)
>         at java.lang.Class.newInstance(Class.java:261)
>         at weblogic.ejb20.manager.BaseEJBManager.allocateBean(BaseEJBManager.java:129)
>         at weblogic.ejb20.manager.StatelessManager.createBean(StatelessManager.java:266)
>         at weblogic.ejb20.pool.StatelessSessionPool.createBean(StatelessSessionPool.java:168)
>         at weblogic.ejb20.pool.StatelessSessionPool.getBean(StatelessSessionPool.java:110)
>         at weblogic.ejb20.manager.StatelessManager.preInvoke(StatelessManager.java:140)
>         at weblogic.ejb20.internal.BaseEJBObject.preInvoke(BaseEJBObject.java:137)
>         at weblogic.ejb20.internal.StatelessEJBObject.preInvoke(StatelessEJBObject.java:69)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineEJB_vx0wlp_EOImpl.handleEvent(RuleEngineEJB_vx0wlp_EOImpl.java:517)
>         at com.bmc.idm.ids.ruleengine.ejb.RuleEngineEJB_vx0wlp_EOImpl_WLSkel.invoke(Unknown Source)
>         at weblogic.rmi.internal.BasicServerRef.invoke(BasicServerRef.java:477)
>         at weblogic.rmi.cluster.ReplicaAwareServerRef.invoke(ReplicaAwareServerRef.java:108)
>         at weblogic.rmi.internal.BasicServerRef$1.run(BasicServerRef.java:420)
>         at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:363)
>         at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:144)
>         at weblogic.rmi.internal.BasicServerRef.handleRequest(BasicServerRef.java:415)
>         at weblogic.rmi.internal.BasicExecuteRequest.execute(BasicExecuteRequest.java:30)
>         at weblogic.kernel.ExecuteThread.execute(ExecuteThread.java:219)
>         at weblogic.kernel.ExecuteThread.run(ExecuteThread.java:178)
> Thanks.
> Oded Hassidi.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://jira.codehaus.org/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email