Yes, using IdentityHashMap would actually solve this issue. It will be a more clean approach than changing the key. I will try that. Thanks for pointing it out.
On Sat, Jan 25, 2014 at 7:23 PM, Andreas Veithen <[email protected]> wrote: > 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] > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
