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 2016/06/10 03:33:08 UTC
[12/19] vxquery git commit: Working on some corrections
http://git-wip-us.apache.org/repos/asf/vxquery/blob/b93e4584/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java
----------------------------------------------------------------------
diff --git a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java
index 924e2c0..05f4498 100644
--- a/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java
+++ b/vxquery-core/src/main/java/org/apache/vxquery/runtime/functions/node/ArrayNodeConstructorScalarEvaluator.java
@@ -44,16 +44,20 @@ public class ArrayNodeConstructorScalarEvaluator extends AbstractNodeConstructor
throws IOException, SystemException {
ab.reset(mvs);
TaggedValuePointable arg = args[0];
- TaggedValuePointable tempTvp = ppool.takeOne(TaggedValuePointable.class);
if (arg.getTag() == ValueTag.SEQUENCE_TAG) {
- arg.getValue(sp);
- for (int i = 0; i < sp.getEntryCount(); ++i) {
- sp.getEntry(i, tempTvp);
- ab.addItem(tempTvp);
+ TaggedValuePointable tempTvp = ppool.takeOne(TaggedValuePointable.class);
+ try {
+ arg.getValue(sp);
+ for (int i = 0; i < sp.getEntryCount(); ++i) {
+ sp.getEntry(i, tempTvp);
+ ab.addItem(tempTvp);
+ }
+ } finally {
+ ppool.giveBack(tempTvp);
}
- ppool.giveBack(tempTvp);
+ } else {
+ ab.addItem(arg);
}
-
ab.finish();
}