The problem persists in 6.1.9.

Here's a minimal test case:

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);
    }
}