[Mulgara-svn] r1889 - trunk/src/jar/querylang/java/org/mulgara/protocol

pag at mulgara.org pag at mulgara.org
Tue Jan 19 23:10:30 UTC 2010


Author: pag
Date: 2010-01-19 15:10:29 -0800 (Tue, 19 Jan 2010)
New Revision: 1889

Modified:
   trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedTqlXMLAnswer.java
Log:
Fixed up handling of subanswers and closed them after processing

Modified: trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedTqlXMLAnswer.java
===================================================================
--- trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedTqlXMLAnswer.java	2010-01-07 15:05:53 UTC (rev 1888)
+++ trunk/src/jar/querylang/java/org/mulgara/protocol/StreamedTqlXMLAnswer.java	2010-01-19 23:10:29 UTC (rev 1889)
@@ -97,8 +97,11 @@
 
   /** {@inheritDoc} */
   protected void addResult(Answer a, int indent) throws TuplesException, IOException {
+    int width = (a != null) ? a.getNumberOfVariables() : 0;
+    Variable[] vars = (a != null) ? a.getVariables() : null;
+
     s.append(i(indent + 2)).append("<solution>");
-    for (int c = 0; c < width; c++) addBinding(vars[c], answer.getObject(c), indent);
+    for (int c = 0; c < width; c++) addBinding(vars[c], a.getObject(c), indent);
     s.append(i(indent + 2)).append("</solution>");
   }
 
@@ -127,8 +130,11 @@
         addLiteral((Literal)value);
         s.append("</").append(var.getName()).append(">");
       } else if (value instanceof Answer) {
+        s.append(">");
         addHeader((Answer)value, indent + 4);
         addResults((Answer)value, indent + 4);
+        s.append("</").append(var.getName()).append(">");
+        ((Answer)value).close();
       } else throw new IllegalArgumentException("Unable to create a SPARQL response with an answer containing: " + value.getClass().getSimpleName());
     }
   }




More information about the Mulgara-svn mailing list