Thanks for looking into this. What about using an IdentityHashMap?
Andreas On Sat, Jan 25, 2014 at 1:03 PM, Kishanthan Thangarajah <[email protected]> wrote: > There are changes to XmlSchemaElement object. This class now overrides > both equals and hashcode methods. We are currently using this as a > hashmap key in SchemaCompiler. The issue is that some times the values > from map cannot be retrieved using the XmlSchemaElement key object, > which causes the NPE. > > As I tried to find the root cause for the failing test case, I ended > up finding that the key used in the map is some time getting mutated. > So in some places, the key element is getting changed (value write). > > So as a fix what we can do is change the key type to QName instead of > XmlSchemaElement and use the QName of XmlSchemaElement when > adding/retrieving values to/from the map. All tests are passing with > this change. But will this have any major impact? Because we have been > using the XmlSchemaElement as the key for all these years. > > Thoughts? > > On Sat, Jan 25, 2014 at 1:31 PM, Kishanthan Thangarajah > <[email protected]> wrote: >> Yes, looks like most of the core elements' equals and hashcode methods >> have been overridden : >> http://mail-archives.apache.org/mod_mbox/ws-commits/201401.mbox/%[email protected]%3E >> >> We need to fix this from that aspect. >> >> On Wed, Jan 22, 2014 at 8:10 PM, Sagara Gunathunga >> <[email protected]> wrote: >>> I still didn't get chance to look into this in detail but it look like >>> fix for XMLSCHEMA-30 cause this failure. >>> >>> >>> [1] - https://issues.apache.org/jira/browse/XMLSCHEMA-30 >>> >>> >>> Thanks ! >>> ---------- Forwarded message ---------- >>> From: Apache Jenkins Server <[email protected]> >>> Date: Wed, Jan 22, 2014 at 6:56 PM >>> Subject: Build failed in Jenkins: Axis2 » Apache Axis2 - ADB Codegen #2533 >>> To: [email protected] >>> >>> >>> See >>> <https://builds.apache.org/job/Axis2/org.apache.axis2$axis2-adb-codegen/2533/> >>> >>> ------------------------------------------ >>> [INFO] >>> [INFO] >>> ------------------------------------------------------------------------ >>> [INFO] Building Apache Axis2 - ADB Codegen 1.7.0-SNAPSHOT >>> [INFO] >>> ------------------------------------------------------------------------ >>> [INFO] >>> [INFO] --- maven-clean-plugin:2.2:clean (default-clean) @ axis2-adb-codegen >>> --- >>> [INFO] Deleting directory >>> <https://builds.apache.org/job/Axis2/org.apache.axis2$axis2-adb-codegen/ws/target> >>> [INFO] >>> [INFO] --- maven-enforcer-plugin:1.1:enforce (default) @ axis2-adb-codegen >>> --- >>> [INFO] >>> [INFO] --- maven-remote-resources-plugin:1.1:process (default) @ >>> axis2-adb-codegen --- >>> [INFO] >>> [INFO] --- maven-resources-plugin:2.4.2:resources (default-resources) >>> @ axis2-adb-codegen --- >>> [INFO] Using 'UTF-8' encoding to copy filtered resources. >>> [INFO] skip non existing resourceDirectory >>> <https://builds.apache.org/job/Axis2/org.apache.axis2$axis2-adb-codegen/ws/conf> >>> [INFO] Copying 11 resources >>> [INFO] Copying 2 resources >>> [INFO] >>> [INFO] --- maven-antrun-plugin:1.2:run (process-resources) @ >>> axis2-adb-codegen --- >>> [INFO] Executing tasks >>> [copy] Copying 7 files to >>> <https://builds.apache.org/job/Axis2/org.apache.axis2$axis2-adb-codegen/ws/target/classes> >>> [INFO] Executed tasks >>> [INFO] >>> [INFO] --- maven-compiler-plugin:2.3.1:compile (default-compile) @ >>> axis2-adb-codegen --- >>> [INFO] Compiling 17 source files to >>> <https://builds.apache.org/job/Axis2/org.apache.axis2$axis2-adb-codegen/ws/target/classes> >>> [INFO] >>> [INFO] --- maven-antrun-plugin:1.2:run (generate-test-sources) @ >>> axis2-adb-codegen --- >>> [INFO] Executing tasks >>> Overriding previous definition of reference to maven.dependency.classpath >>> >>> main: >>> [mkdir] Created dir: >>> <https://builds.apache.org/job/Axis2/org.apache.axis2$axis2-adb-codegen/ws/target/schema> >>> [mkdir] Created dir: >>> <https://builds.apache.org/job/Axis2/org.apache.axis2$axis2-adb-codegen/ws/target/schema/src> >>> [mkdir] Created dir: >>> <https://builds.apache.org/job/Axis2/org.apache.axis2$axis2-adb-codegen/ws/target/schema/classes> >>> [java] Compiling simple_maxOccurs2.xsd >>> [java] Compiling anonymous_complexType.xsd >>> [java] Compiling simple_choice.xsd >>> [java] Compiling simple_particle_all.xsd >>> [java] Compiling simple_maxOccurs.xsd >>> [java] Compiling simple_anytype.xsd >>> [java] Compiling simple-minoccurs0.xsd >>> [java] Compiling complex-minoccurs0.xsd >>> [java] Compiling simple-recursive-datatypes.xsd >>> [java] Compiling mixed_minoccus0.xsd >>> [java] Compiling simpleType-All.xsd >>> [java] Compiling derivedType-All.xsd >>> [java] Compiling testsuite.xsd >>> [java] Compiling extensions.xsd >>> [java] Compiling union.xsd >>> [java] Compiling all.xsd >>> [java] Compiling enumeration.xsd >>> [java] Compiling restrictions.xsd >>> [java] Exception in thread "main" java.lang.NullPointerException >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:728) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:608) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processElements(SchemaCompiler.java:2517) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.process(SchemaCompiler.java:2193) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processParticle(SchemaCompiler.java:2078) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processComplexType(SchemaCompiler.java:1205) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processNamedComplexSchemaType(SchemaCompiler.java:1135) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processSchema(SchemaCompiler.java:1045) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:652) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.processElement(SchemaCompiler.java:620) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:423) >>> [java] at >>> org.apache.axis2.schema.SchemaCompiler.compile(SchemaCompiler.java:315) >>> [java] at >>> org.apache.axis2.schema.XSD2Java.compile(XSD2Java.java:165) >>> [java] at org.apache.axis2.schema.XSD2Java.main(XSD2Java.java:96) >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >>> >>> -- >>> Sagara Gunathunga >>> >>> Blog - http://ssagara.blogspot.com >>> Web - http://people.apache.org/~sagara/ >>> LinkedIn - http://www.linkedin.com/in/ssagara >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
