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 2013/09/06 01:04:07 UTC
svn commit: r1520456 -
/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/
Author: prestonc
Date: Thu Sep 5 23:04:06 2013
New Revision: 1520456
URL: http://svn.apache.org/r1520456
Log:
Found an error in the value returned when an empty sequence result was expected. The function was returning a tagged value pointable for an empty sequence instead of the value of an empty sequence.
Modified:
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java
incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractDescendantPathStepScalarEvaluator.java Thu Sep 5 23:04:06 2013
@@ -54,39 +54,40 @@ public abstract class AbstractDescendant
protected void searchSubtree(TaggedValuePointable nodePointable) throws SystemException {
try {
SequencePointable seqp = (SequencePointable) SequencePointable.FACTORY.createPointable();
+ boolean search = false;
// Find all child element to search.
switch (nodePointable.getTag()) {
case ValueTag.DOCUMENT_NODE_TAG:
nodePointable.getValue(dnp);
dnp.getContent(ntp, seqp);
+ search = true;
break;
case ValueTag.ELEMENT_NODE_TAG:
nodePointable.getValue(enp);
if (enp.childrenChunkExists()) {
enp.getChildrenSequence(ntp, seqp);
+ search = true;
}
break;
-
- default:
- XDMConstants.setEmptySequence(seqp);
- break;
}
- int seqSize = seqp.getEntryCount();
- for (int i = 0; i < seqSize; ++i) {
- seqp.getEntry(i, itemTvp);
- // Only search element nodes.
- if (itemTvp.getTag() == ValueTag.ELEMENT_NODE_TAG) {
- if (matches()) {
- appendNodeToResult();
+ if (search) {
+ int seqSize = seqp.getEntryCount();
+ for (int i = 0; i < seqSize; ++i) {
+ seqp.getEntry(i, itemTvp);
+ // Only search element nodes.
+ if (itemTvp.getTag() == ValueTag.ELEMENT_NODE_TAG) {
+ if (matches()) {
+ appendNodeToResult();
+ }
+ // Now check this elements children.
+ TaggedValuePointable tvpTemp = (TaggedValuePointable) TaggedValuePointable.FACTORY
+ .createPointable();
+ tvpTemp.set(itemTvp);
+ searchSubtree(tvpTemp);
}
- // Now check this elements children.
- TaggedValuePointable tvpTemp = (TaggedValuePointable) TaggedValuePointable.FACTORY
- .createPointable();
- tvpTemp.set(itemTvp);
- searchSubtree(tvpTemp);
}
}
} catch (IOException e) {
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AbstractPathStepScalarEvaluator.java Thu Sep 5 23:04:06 2013
@@ -16,14 +16,12 @@
*/
package org.apache.vxquery.runtime.functions.step;
-import java.io.DataOutput;
import java.io.IOException;
import org.apache.vxquery.datamodel.accessors.TaggedValuePointable;
import org.apache.vxquery.datamodel.accessors.nodes.NodeTreePointable;
import org.apache.vxquery.datamodel.builders.nodes.NodeSubTreeBuilder;
import org.apache.vxquery.datamodel.builders.sequence.SequenceBuilder;
-import org.apache.vxquery.datamodel.values.ValueTag;
import org.apache.vxquery.exceptions.SystemException;
import org.apache.vxquery.runtime.functions.base.AbstractTaggedValueArgumentScalarEvaluator;
import org.apache.vxquery.runtime.functions.step.NodeTestFilter.INodeFilter;
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/AttributePathStepScalarEvaluator.java Thu Sep 5 23:04:06 2013
@@ -49,6 +49,8 @@ public class AttributePathStepScalarEval
return;
}
}
- XDMConstants.setEmptySequence(seqp);
+ TaggedValuePointable seqTvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ XDMConstants.setEmptySequence(seqTvp);
+ seqTvp.getValue(seqp);
}
}
\ No newline at end of file
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepScalarEvaluator.java Thu Sep 5 23:04:06 2013
@@ -58,6 +58,8 @@ public class ChildPathStepScalarEvaluato
return;
}
}
- XDMConstants.setEmptySequence(seqp);
+ TaggedValuePointable seqTvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ XDMConstants.setEmptySequence(seqTvp);
+ seqTvp.getValue(seqp);
}
}
\ No newline at end of file
Modified: incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java
URL: http://svn.apache.org/viewvc/incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java?rev=1520456&r1=1520455&r2=1520456&view=diff
==============================================================================
--- incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java (original)
+++ incubator/vxquery/trunk/vxquery/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/step/ChildPathStepUnnestingEvaluatorFactory.java Thu Sep 5 23:04:06 2013
@@ -140,7 +140,9 @@ public class ChildPathStepUnnestingEvalu
return;
}
}
- XDMConstants.setEmptySequence(seqp);
+ TaggedValuePointable seqTvp = (TaggedValuePointable) TaggedValuePointable.FACTORY.createPointable();
+ XDMConstants.setEmptySequence(seqTvp);
+ seqTvp.getValue(seqp);
}
};