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]

Reply via email to