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