The problem persists in 6.1.9.
Here's a minimal test case:
http://top.cs.vt.edu/~gback/bx/Test.java
http://top.cs.vt.edu/~gback/bx/Test.java
import javax.xml.xquery.*;
public class Test { public static void main(String av[]) throws Exception { XQConnection conn = ((XQDataSource)Class.forName("org.basex.api.xqj.BXQDataSource"). newInstance()).getConnection();
XQPreparedExpression xqp = null; String q = "declare variable $x := 1; $x"; try { xqp = conn.prepareExpression(q); xqp.executeQuery(); } catch (XQQueryException xqex) { printXQException(xqex, q); } }
public static void printXQException (XQQueryException xquery, String query) { String [] lines = query.split("\n"); System.out.println(lines[Math.min(xquery.getLineNumber() - 1, lines.length - 1)]); System.out.println(" " .substring(0, xquery.getColumnNumber()) + "^"); System.out.println(xquery); } }