You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@vxquery.apache.org by pr...@apache.org on 2012/08/25 03:04:49 UTC

svn commit: r1377171 - /incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/ValueEqComparisonOperation.java

Author: prestonc
Date: Sat Aug 25 01:04:49 2012
New Revision: 1377171

URL: http://svn.apache.org/viewvc?rev=1377171&view=rev
Log:
Fixed the QName compare to only check uri and local name.

Modified:
    incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/ValueEqComparisonOperation.java

Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/ValueEqComparisonOperation.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/ValueEqComparisonOperation.java?rev=1377171&r1=1377170&r2=1377171&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/ValueEqComparisonOperation.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/comparison/ValueEqComparisonOperation.java Sat Aug 25 01:04:49 2012
@@ -325,8 +325,13 @@ public class ValueEqComparisonOperation 
     @Override
     public boolean operateQNameQName(XSQNamePointable qnamep1, XSQNamePointable qnamep2) throws SystemException,
             IOException {
-        return arraysEqual(qnamep1.getByteArray(), qnamep1.getStartOffset(), qnamep1.getLength(),
-                qnamep2.getByteArray(), qnamep2.getStartOffset(), qnamep2.getLength());
+        int startOffsetLocalName1 = qnamep1.getStartOffset() + qnamep1.getUriLength() + qnamep1.getPrefixLength();
+        int startOffsetLocalName2 = qnamep2.getStartOffset() + qnamep2.getUriLength() + qnamep2.getPrefixLength();
+        // Only compare URI and LocalName.
+        return arraysEqual(qnamep1.getByteArray(), qnamep1.getStartOffset(), qnamep1.getUriLength(),
+                qnamep2.getByteArray(), qnamep2.getStartOffset(), qnamep2.getUriLength())
+                && arraysEqual(qnamep1.getByteArray(), startOffsetLocalName1, qnamep1.getLocalNameLength(),
+                        qnamep2.getByteArray(), startOffsetLocalName2, qnamep2.getLocalNameLength());
     }
 
     @Override