Project: AspectJ
Bug 116255 XML Linkage Error with LTW
Reported: 2005-11-14 11:17:02 | Status: verified fixed

I am trying out a recent dev build of AspectJ and am now seeing a new linkage error when I load a Web app that contains an XML deployment descriptor. I'm trying to narrow down the date when this error first appeared. If I build and run with the Sept. 23 dev build all works properly. If I build and run with the Nov. 14 dev build it fails like this ... Here's the output: SEVERE: Error deploying configuration descriptor jpetstore.xml java.lang.LinkageError: org/apache/xerces/jaxp/SAXParserFactoryImpl : already defined in loader at java.lang.ClassLoader.defineClass(Ljava.lang.String; [BIILjava.security.ProtectionDomain;)Ljava.lang.Class;(Unknown Source ) at java.security.SecureClassLoader.defineClass (SecureClassLoader.java:124) at org.apache.catalina.loader.WebappClassLoader.findClassInternal (WebappClassLoader.java:1629) at org.apache.catalina.loader.WebappClassLoader.findClass (WebappClassLoader.java:850) at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1299) at org.apache.catalina.loader.WebappClassLoader.loadClass (WebappClassLoader.java:1181) at javax.xml.parsers.FactoryFinder.newInstance(FactoryFinder.java:88) at javax.xml.parsers.FactoryFinder.findJarServiceProvider (FactoryFinder.java:278) at javax.xml.parsers.FactoryFinder.find(FactoryFinder.java:185) at javax.xml.parsers.SAXParserFactory.newInstance (SAXParserFactory.java:107) at org.apache.tomcat.util.digester.Digester.getFactory (Digester.java:486) at org.apache.tomcat.util.digester.Digester.getParser(Digester.java:691) at org.apache.tomcat.util.digester.Digester.getXMLReader (Digester.java:899) at org.apache.tomcat.util.digester.Digester.parse(Digester.java:1561) at org.apache.catalina.startup.TldConfig.tldScanStream (TldConfig.java:513) at org.apache.catalina.startup.TldConfig.tldScanTld(TldConfig.java:545) at org.apache.catalina.startup.TldConfig.execute(TldConfig.java:300) at org.apache.catalina.core.StandardContext.processTlds (StandardContext.java:4193) at org.apache.catalina.core.StandardContext.start (StandardContext.java:4049) at org.apache.catalina.core.ContainerBase.addChildInternal (ContainerBase.java:759) at org.apache.catalina.core.ContainerBase.addChild (ContainerBase.java:739) at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:524) at org.apache.catalina.startup.HostConfig.deployDescriptor (HostConfig.java:589) at org.apache.catalina.startup.HostConfig.deployDescriptors (HostConfig.java:536) at org.apache.catalina.startup.HostConfig.deployApps (HostConfig.java:471) at org.apache.catalina.startup.HostConfig.start(HostConfig.java:1102) at org.apache.catalina.startup.HostConfig.lifecycleEvent (HostConfig.java:311) at org.apache.catalina.util.LifecycleSupport.fireLifecycleEvent (LifecycleSupport.java:119) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1020) at org.apache.catalina.core.StandardHost.start(StandardHost.java:718) at org.apache.catalina.core.ContainerBase.start(ContainerBase.java:1012) error can't determine implemented interfaces of missing type javax.xml.rpc.Call when matching pointcut ((((within(*) && call(public * javax.xml.rpc.Call.invoke* (..))) && target(BindingTypePattern(java.lang.Object , 0))) && if(boolean glassbox.inspector.monitor.resource.RemoteCallMonitor.ajc$if_12())) && persingleton(glassbox.inspector.monitor. resource.RemoteCallMonitor)) when matching shadow method-call(boolean org.apache.crimson.parser.ContentModel.empty()) when weaving type org.apache.crimson.parser.ContentModel when weaving classes when weaving abort trouble in: final class org.apache.crimson.parser.ContentModel extends java.lang.Object: public char type public Object content public org.apache.crimson.parser.ContentModel next private org.apache.crimson.parser.SimpleHashtable cache public void <init>(String): ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 116) INVOKESPECIAL java.lang.Object.<init> ()V constructor-execution(void org.apache.crimson.parser.ContentModel.<init> (java.lang.String)) | ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 110) | NEW org.apache.crimson.parser.SimpleHashtable | DUP | constructor-call(void org.apache.crimson.parser.SimpleHashtable.<init>()) | | INVOKESPECIAL org.apache.crimson.parser.SimpleHashtable.<init> ()V | constructor-call(void org.apache.crimson.parser.SimpleHashtable.<init>()) | PUTFIELD org.apache.crimson.parser.ContentModel.cache Lorg/apache/crimson/parser/SimpleHashtable; | ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 117) | ICONST_0 | PUTFIELD org.apache.crimson.parser.ContentModel.type C | ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 118) | ALOAD_1 // java.lang.String element | PUTFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; | RETURN (line 119) constructor-execution(void org.apache.crimson.parser.ContentModel.<init> (java.lang.String)) end public void <init>(String) public void <init>(char, org.apache.crimson.parser.ContentModel): ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 125) INVOKESPECIAL java.lang.Object.<init> ()V constructor-execution(void org.apache.crimson.parser.ContentModel.<init> (char, org.apache.crimson.parser.ContentModel)) | ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 110) | NEW org.apache.crimson.parser.SimpleHashtable | DUP | constructor-call(void org.apache.crimson.parser.SimpleHashtable.<init>()) | | INVOKESPECIAL org.apache.crimson.parser.SimpleHashtable.<init> ()V | constructor-call(void org.apache.crimson.parser.SimpleHashtable.<init>()) | PUTFIELD org.apache.crimson.parser.ContentModel.cache Lorg/apache/crimson/parser/SimpleHashtable; | ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 126) | ILOAD_1 // char type | PUTFIELD org.apache.crimson.parser.ContentModel.type C | ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 127) | ALOAD_2 // org.apache.crimson.parser.ContentModel content | PUTFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; | RETURN (line 128) constructor-execution(void org.apache.crimson.parser.ContentModel.<init> (char, org.apache.crimson.parser.ContentModel)) end public void <init>(char, org.apache.crimson.parser.ContentModel) public boolean empty(): method-execution(boolean org.apache.crimson.parser.ContentModel.empty()) | ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 137) | GETFIELD org.apache.crimson.parser.ContentModel.type C | LOOKUPSWITCH | 0: L1 | 42: L0 | 43: L1 | 44: L7 | 63: L0 | 124: L2 | default: L13 | L0: ICONST_1 (line 140) | IRETURN | L1: ICONST_0 (line 144) | IRETURN | L2: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 147) | GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; | INSTANCEOF org.apache.crimson.parser.ContentModel | IFEQ L3 | ALOAD_0 // org.apache.crimson.parser.ContentModel this | GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; | CHECKCAST org.apache.crimson.parser.ContentModel | method-call(boolean org.apache.crimson.parser.ContentModel.empty()) | | INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.empty ()Z | method-call(boolean org.apache.crimson.parser.ContentModel.empty()) | IFEQ L3 | ICONST_1 (line 149) | IRETURN | L3: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 151) | GETFIELD org.apache.crimson.parser.ContentModel.next Lorg/apache/crimson/parser/ContentModel; | ASTORE_1 | GOTO L6 | L4: ALOAD_1 // org.apache.crimson.parser.ContentModel m (line 154) | INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.empty ()Z | IFEQ L5 | ICONST_1 (line 155) | IRETURN | L5: ALOAD_1 // org.apache.crimson.parser.ContentModel m (line 153) | GETFIELD org.apache.crimson.parser.ContentModel.next Lorg/apache/crimson/parser/ContentModel; | ASTORE_1 // org.apache.crimson.parser.ContentModel m | L6: ALOAD_1 // org.apache.crimson.parser.ContentModel m (line 152) | IFNONNULL L4 | ICONST_0 (line 157) | IRETURN | L7: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 160) | GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; | INSTANCEOF org.apache.crimson.parser.ContentModel | IFEQ L8 | ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 161) | GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; | CHECKCAST org.apache.crimson.parser.ContentModel | INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.empty ()Z | IFNE L9 | ICONST_0 (line 162) | IRETURN | L8: ICONST_0 (line 165) | IRETURN | L9: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 167) | GETFIELD org.apache.crimson.parser.ContentModel.next Lorg/apache/crimson/parser/ContentModel; | ASTORE_2 | GOTO L12 | L10: ALOAD_2 // org.apache.crimson.parser.ContentModel m (line 170) | INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.empty ()Z | IFNE L11 | ICONST_0 (line 171) | IRETURN | L11: ALOAD_2 // org.apache.crimson.parser.ContentModel m (line 169) | GETFIELD org.apache.crimson.parser.ContentModel.next Lorg/apache/crimson/parser/ContentModel; | ASTORE_2 // org.apache.crimson.parser.ContentModel m | L12: ALOAD_2 // org.apache.crimson.parser.ContentModel m (line 168) | IFNONNULL L10 | ICONST_1 (line 173) | IRETURN | L13: NEW java.lang.InternalError (line 176) | DUP | INVOKESPECIAL java.lang.InternalError.<init> ()V | ATHROW method-execution(boolean org.apache.crimson.parser.ContentModel.empty()) end public boolean empty() public boolean first(String): ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 186) GETFIELD org.apache.crimson.parser.ContentModel.cache Lorg/apache/crimson/parser/SimpleHashtable; ALOAD_1 // java.lang.String token INVOKEVIRTUAL org.apache.crimson.parser.SimpleHashtable.get (Ljava/lang/String;)Ljava/lang/Object; CHECKCAST java.lang.Boolean ASTORE_2 ALOAD_2 // java.lang.Boolean b (line 189) IFNULL L0 ALOAD_2 // java.lang.Boolean b (line 190) INVOKEVIRTUAL java.lang.Boolean.booleanValue ()Z IRETURN L0: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 193) GETFIELD org.apache.crimson.parser.ContentModel.type C LOOKUPSWITCH 0: L1 42: L1 43: L1 44: L5 63: L1 124: L12 default: L16 L1: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 198) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; INSTANCEOF java.lang.String IFEQ L4 ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 199) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; ALOAD_1 // java.lang.String token IF_ACMPNE L2 ICONST_1 GOTO L3 L2: ICONST_0 L3: ISTORE_3 GOTO L17 L4: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 201) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; CHECKCAST org.apache.crimson.parser.ContentModel ALOAD_1 // java.lang.String token INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.first (Ljava/lang/String;)Z ISTORE_3 // boolean retval GOTO L17 (line 202) L5: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 205) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; INSTANCEOF java.lang.String IFEQ L8 ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 206) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; ALOAD_1 // java.lang.String token IF_ACMPNE L6 ICONST_1 GOTO L7 L6: ICONST_0 L7: ISTORE_3 // boolean retval GOTO L17 L8: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 207) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; CHECKCAST org.apache.crimson.parser.ContentModel ALOAD_1 // java.lang.String token INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.first (Ljava/lang/String;)Z IFEQ L9 ICONST_1 (line 208) ISTORE_3 // boolean retval GOTO L17 L9: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 209) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; CHECKCAST org.apache.crimson.parser.ContentModel INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.empty ()Z IFNE L10 ICONST_0 (line 210) ISTORE_3 // boolean retval GOTO L17 L10: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 211) GETFIELD org.apache.crimson.parser.ContentModel.next Lorg/apache/crimson/parser/ContentModel; IFNULL L11 ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 212) GETFIELD org.apache.crimson.parser.ContentModel.next Lorg/apache/crimson/parser/ContentModel; ALOAD_1 // java.lang.String token INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.first (Ljava/lang/String;)Z ISTORE_3 // boolean retval GOTO L17 L11: ICONST_0 (line 214) ISTORE_3 // boolean retval GOTO L17 (line 215) L12: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 218) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; INSTANCEOF java.lang.String IFEQ L13 ALOAD_0 // org.apache.crimson.parser.ContentModel this GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; ALOAD_1 // java.lang.String token IF_ACMPNE L13 ICONST_1 (line 219) ISTORE_3 // boolean retval GOTO L17 L13: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 220) GETFIELD org.apache.crimson.parser.ContentModel.content Ljava/lang/Object; CHECKCAST org.apache.crimson.parser.ContentModel ALOAD_1 // java.lang.String token INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.first (Ljava/lang/String;)Z IFEQ L14 ICONST_1 (line 221) ISTORE_3 // boolean retval GOTO L17 L14: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 222) GETFIELD org.apache.crimson.parser.ContentModel.next Lorg/apache/crimson/parser/ContentModel; IFNULL L15 ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 223) GETFIELD org.apache.crimson.parser.ContentModel.next Lorg/apache/crimson/parser/ContentModel; ALOAD_1 // java.lang.String token INVOKEVIRTUAL org.apache.crimson.parser.ContentModel.first (Ljava/lang/String;)Z ISTORE_3 // boolean retval GOTO L17 L15: ICONST_0 (line 225) ISTORE_3 // boolean retval GOTO L17 (line 226) L16: NEW java.lang.InternalError (line 229) DUP INVOKESPECIAL java.lang.InternalError.<init> ()V ATHROW L17: ILOAD_3 // boolean retval (line 233) IFEQ L18 ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 234) GETFIELD org.apache.crimson.parser.ContentModel.cache Lorg/apache/crimson/parser/SimpleHashtable; ALOAD_1 // java.lang.String token GETSTATIC java.lang.Boolean.TRUE Ljava/lang/Boolean; INVOKEVIRTUAL org.apache.crimson.parser.SimpleHashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Obj ect; POP GOTO L19 L18: ALOAD_0 // org.apache.crimson.parser.ContentModel this (line 236) GETFIELD org.apache.crimson.parser.ContentModel.cache Lorg/apache/crimson/parser/SimpleHashtable; ALOAD_1 // java.lang.String token GETSTATIC java.lang.Boolean.FALSE Ljava/lang/Boolean; INVOKEVIRTUAL org.apache.crimson.parser.SimpleHashtable.put (Ljava/lang/Object;Ljava/lang/Object;)Ljava/lang/Obj ect; POP L19: ILOAD_3 // boolean retval (line 238) IRETURN end public boolean first(String) end final class org.apache.crimson.parser.ContentModel

Files changed in fix:
loadtime/src/org/aspectj/weaver/loadtime/definition/DocumentParser.java