exist-db / monex Goto Github PK
View Code? Open in Web Editor NEWMonitoring Application for eXist-db
License: GNU Lesser General Public License v2.1
Monitoring Application for eXist-db
License: GNU Lesser General Public License v2.1
Describe the bug
I was using monex to monitor the performance of a sluggish application. Among the monex left menu choices, I looked at monitoring, and the console (because the app prints a few key performance measures to the console), and then clicked on Data Visualizer (sic), which I had never used before, hoping to find something useful. It said something about "index mapping" and I didn't know what it was talking about, so I moved on, but noticed that performance went from a little slow to quite horrible (minutes to get a response from queries that normally take milliseconds or seconds).
Eventually I discovered that simply clicking "Data Visualizer" immediately triggered a run of /db/apps/monex/modules/index2json.xql and passed "/db/apps" as the collection. As far as I can see after looking at the XQL and the way it calls util:index-keys, that means it's going to try to count all of the nodes in the structural index by document for every collection under /db/apps.
The problem is, in one of my collections, I have tens of thousands of documents with tens of millions of nodes in the structural index (i.e., they have xml:id present). A recursive scan of all of those nodes basically locked up my production system with one mouse click. I attempted to kill the query running index2json.xql (in Monex) but after many hours it is still running and consuming 100% of one CPU on a 4-processor system. Since eXist is mostly single-threaded, any user query has to compete with that process that has the CPU pegged, thus explaining why things that should take milliseconds now take minutes.
Expected behavior
Don't make a self-inflicted DOS attack easier for the user than the alternatives. Specifically, when the user chooses "Data Vizualizer," don't do anything until the user specifies what s/he wants to visualize, and perhaps explain the implications of touching every node in the structural index of every collection under /db/apps.
To Reproduce
Choose "Data Visualizer" in Monex in any eXist instance that actually has a lot of data to visualize. "A lot" is relative, but tens of millions of nodes definitely brings things to a virtual halt.
Context (please always complete the following information):
eXist 5.2.0. Nothing else in this section is relevant.
E.g.
dom.dbx: Size: 1639 / Used: 1639 / Fails: 8963 / Hits: 14192913 / Ratio: 0,63%
structure.dbx: Size 1639 / Used: 1639 / Fails: 4257873 / Hits: 14192913 / Ratio: 0,3%
A ratio exceeding certain values could further be emphasized (e.g. yellow, orange red background)
stack trace:
exerr:ERROR XPTY0004: The actual cardinality for parameter 1 does not match the cardinality declared in the function's signature: concat($atomizable-values as xs:anyAtomicType?, ...) xs:string?. Expected cardinality: zero or one, got 2. [at line 755, column 54, source: /db/apps/monex/modules/indexes.xqm]
In function:
indexes:remove-parameter-names(item()*, item()*) [752:9:/db/apps/monex/modules/indexes.xqm]
indexes:remove-parameter-names(item()*) [248:65:/db/apps/monex/modules/indexes.xqm]
indexes:show-index-keys(node(), map) [32:9:/db/apps/monex/modules/indexes.xqm]
templates:call-with-args(function, function*, element(), map) [208:13:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process-output(element(), map, item()*, element()) [205:9:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:call-by-introspection(element(), map, map, function) [187:28:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:call(item(), element(), map) [143:37:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process(node()*, map) [277:13:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process-output(element(), map, item()*, element()) [205:9:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:call-by-introspection(element(), map, map, function) [187:28:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:call(item(), element(), map) [135:36:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process(node()*, map) [146:81:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process(node()*, map) [146:81:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process(node()*, map) [146:81:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process(node()*, map) [146:81:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process(node()*, map) [462:17:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:surround(node(), map, xs:string, xs:string?, xs:string?, xs:string?) [32:9:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:call-with-args(function, function*, element(), map) [208:13:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process-output(element(), map, item()*, element()) [205:9:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:call-by-introspection(element(), map, map, function) [187:28:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:call(item(), element(), map) [135:36:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process(node()*, map) [131:51:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:process(node()*, map) [88:9:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
templates:apply(node()+, function, map?, map?) [43:5:/Users/wessels/Library/Application Support/org.exist/expathrepo/shared-0.4.0/content/templates.xql]
@joewiz commented on Nov 9, 2020, 10:28 PM UTC:
Describe the bug
Using the current develop branch, the xdb:xquery
ant task throws this error:
XMLDB exception caught while executing query: Failed to invoke method queryPT in class org.exist.xmlrpc.RpcConnection: org.exist.source.Source.getKey()Ljava/lang/Object;
For the corresponding error in exist.log, see exist-hsg-project-log.txt - which culminates in:
Caused by: java.lang.NoSuchMethodError: org.exist.source.Source.getKey()Ljava/lang/Object;
The error is not present when building from the develop branch older than ~20 days ago. For example, 2ac8622 does not exhibit the error.
Expected behavior
I expected no such error.
To Reproduce
From a local checkout of https://github.com/HistoryAtState/hsg-project, run ant deploy-repo-to-localhost -Ddirectory="/Users/joe/workspace/hsg-project/repos/administrative-timeline"
. This calls xdb:xquery
here: https://github.com/HistoryAtState/hsg-project/blob/master/build.xml#L284-L294.
Context (please always complete the following information):
Additional context
conf.xml
? noneThis issue was moved by adamretter from eXist-db/exist#3614.
Hello,
I have a fresh installation of eXist-db 5.2. running on CentOs 7. When I open the Monex application I'm asked for the admin password; after successfully logging in I get a ' Alert! Connection to server failed. Retrying ... ' message at the top of the page, and I have these errors in the console:
Firefox can’t establish a connection to the server at ws://myip:8080/rconsole. exadmin.js:231:25
WebSocket Error:
error
bubbles: false
cancelBubble: false
cancelable: false
composed: false
currentTarget: null
defaultPrevented: false
eventPhase: 0
explicitOriginalTarget: WebSocket { url: "ws://myip222:8080/rconsole", readyState: 3, bufferedAmount: 0, … }
isTrusted: true
originalTarget: WebSocket { url: "ws://myip:8080/rconsole", readyState: 3, bufferedAmount: 0, … }
returnValue: true
srcElement: WebSocket { url: "ws://myip:8080/rconsole", readyState: 3, bufferedAmount: 0, … }
target: WebSocket { url: "ws://myip:8080/rconsole", readyState: 3, bufferedAmount: 0, … }
timeStamp: 3058
type: "error"
<get isTrusted()>: function isTrusted()
<prototype>: EventPrototype { composedPath: composedPath(), stopPropagation: stopPropagation(), stopImmediatePropagation: stopImmediatePropagation(), … }
exadmin.js:236:21
Request URL:http://myip:8080/status?c=instances&c=processes&c=locking&c=memory&c=caches&c=system&c=operatingsystem&token=false
Request Method:GET
Remote Address:myip:8080
Status Code:
403
Version:HTTP/1.1
This is a request for a new feature in Monex.
Is your feature request related to a problem? Please describe.
I'm always frustrated when I can't easily focus on my own code in Monex profiling reports because results that concern the code that I wrote are intermingled with results produced by Monex itself.
Describe the solution you'd like
A clear and concise description of what you want to happen.
When I look at any of the three reporting tabs in Monex (queries, functions, index usage) the leftmost column is always the source, and it usually contains a path to some resource within the database (or occasionally just a reference to string with an id number). Those sources, at least in the types of queries I run, seem to be primarily of three types:
If I’ve understood correctly, Monex knows about these sources because if it didn't it couldn’t list them. I care about # 1, I don’t care about # 2, and I understand how the ultimate source of the operations that show up in # 3 might be ambiguous, since either my own app or Monex might call on standard library resources.
If I could tell Monex to hide # 2 and show me the others, or to show me only # 1, that would be an improvement over having to read around a mixture of the three.
Describe alternatives you've considered
Disabling tracing, clearing, enabling tracing, running, disabling tracing again, and refreshing seems to produce the cleanest view, but it still intermingles results that I don't care about with results that I do care about (at the extremes, it intermingles results produced by Monex itself with results produced my my own code). Monex cannot know what I care about, of course, but since it knows about sources, if it supported dynamic filtering of sources during viewing I could configure what was shown and what was hidden. For example, it might let me enter "/db/apps/app-name" and show me only lines in the reports where the source value begins with that string.
Additional context
I discussed this issue briefly with @line-o in the eXist-db Slack workspace (#community channel) on 2022-09-06. @line-o alerted me that "I am not sure monex is able to determine the source of each running process". While I understand that the ultimate source may not be accessible (for example, whether it is Monex or my app that starts a process in the standard eXist-db library resources, which is my # 3, above), support for user control over filtering results according to the source as Monex already reports it would be a substantial improvement in usability over the current static reporting.
Describe the bug
The display of elements that are in a facet (or dimension) might be incorrect. The count for each entry might be incorrect.
This can lead to confusion as monex is used as a tool to check if indices of a collection are set up properly.
Expected behavior
A complete list of elements present in a facet each with the correct count.
To Reproduce
Set up a collection with at least on facet and one field on an QName. The field must not be present on every element that is indexed.
Open the index view in Monex. Navigate to the facet of said collection. The elements in this facet is reduced to those that also have the field.
Reason is:
The link is constructed with the fields parameter populated. In the code this triggers the search options to include those fields.
This then excludes all entries from being returned in the result that do not have an entry in the sparse field.
Example link:
http://localhost:8080/exist/apps/monex/facet.html?
collection=/db/lucenetest&
facet=place&
fields=place,from,to,date,time,datetime,likes,score&
node-name=letter
Minimal Test-Setup
(:
: eXist-db Open Source Native XML Database
: Copyright (C) 2001 The eXist-db Authors
:
: [email protected]
: http://www.exist-db.org
:
: This library is free software; you can redistribute it and/or
: modify it under the terms of the GNU Lesser General Public
: License as published by the Free Software Foundation; either
: version 2.1 of the License, or (at your option) any later version.
:
: This library is distributed in the hope that it will be useful,
: but WITHOUT ANY WARRANTY; without even the implied warranty of
: MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
: Lesser General Public License for more details.
:
: You should have received a copy of the GNU Lesser General Public
: License along with this library; if not, write to the Free Software
: Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
:)
(:
: stripped-down version of facets.xql with a field index configured that is only present in
: some of the matching elements (//letter/dateTime).
:)
xquery version "3.1";
declare variable $local:XML :=
<letters>
<letter>
<place>Berlin</place>
<dateTime>1972-06-08T10:00:00-05:00</dateTime>
</letter>
<letter>
<place>Berlin</place>
<dateTime>1970-07-03T00:00:00-05:00</dateTime>
</letter>
<letter>
<place>Hamburg</place>
</letter>
<letter>
<place></place>
</letter>
<letter>
<place>Wrocław</place>
</letter>
<letter>
<place>Wrocław</place>
</letter>
</letters>;
declare variable $local:XCONF1 :=
<collection xmlns="http://exist-db.org/collection-config/1.0">
<index xmlns:xs="http://www.w3.org/2001/XMLSchema">
<lucene>
<analyzer class="org.exist.indexing.lucene.analyzers.NoDiacriticsStandardAnalyzer" id="nodiacritics"/>
<text qname="letter" analyzer="nodiacritics">
<facet dimension="place" expression="place"/>
<field name="dateTime" expression="dateTime" type="xs:dateTime"/>
</text>
</lucene>
</index>
</collection>;
declare
function local:setup() {
let $testCol := xmldb:create-collection("/db", "lucenetest")
let $confCol := xmldb:create-collection("/db/system/config/db", "lucenetest")
return (
xmldb:store($confCol, "collection.xconf", $local:XCONF1),
xmldb:store($testCol, "test.xml", $local:XML),
xmldb:reindex($personsCol)
)
};
local:setup()
Context (please always complete the following information):
Additional context
conf.xml
? noneCurrently, if the server running monex runs out of memory, monex will emit an errant notification stating that the remote monitored server is out of memory, instead of the server instance running monex. For example, I received this confirmed incorrect email from my monex server saying my production server was out of memory:
Server Name: history.state.gov
Message: java:java.lang.OutOfMemoryError
Timestamp: 2015-09-30T23:55:16.946Z
As Wolfgang stated:
I assume monex reports the out of memory for hsg because it catches that exception while trying to pull the server. so we should output a different alert for locally catched exceptions.
console:log(...)
logs the function name to console,html when called inside a function in the 'source' column (before line/column).
However, when console:log(...) is called from an XQuery body, the entire XQuery source is logged to the 'source' column - which gives large output for large XQueries.
Just logging the XQuery filename in those cases would be an improvement.
According to @adamretter, XML format of JMX in 5.0.0 has changed slightly, and monex's javascript is tightly coupled to old JMX output.
Alas, I was wrong in #172 (comment) when I said:
I seem to recall that the important CI runs here ("push") are passing - and that the failing ones ("pull_request") won't matter once the PR is merged.
I'd be grateful for any insights into what is causing this pattern with master:
The integration tests do not check for the correct version to be installed.
I've run into two problems trying to use Monex to inspect Lucene indexes.
At first I thought this was an error in the way that I created the indexes but after testing with a minimal example this seems to be a bug.
To reproduce this error I created a minimal collection.xconf file defining a Lucene index and reindexed a collection that contained a document.
<collection xmlns="http://exist-db.org/collection-config/1.0">
<index xmlns:xs="http://www.w3.org/2001/XMLSchema">
<lucene>
<analyzer class="org.apache.lucene.analysis.standard.StandardAnalyzer"/>
<analyzer id="ws" class="org.apache.lucene.analysis.core.WhitespaceAnalyzer"/>
<text qname="article"/>
</lucene>
</index>
</collection>
I verified that the index is populated by using eXide to run a simple query using ft:query.
Then open Monex. Click on Indexes, then click on the collection. The Lucene index on "article" is displayed.
Click on QName. There is a message "0 keys returned in 0.409s" and the table that should show index keys is empty.
Go back.
Click on Node. An error with a stack trace is displayed. I've copied the full error message below.
Context (please always complete the following information):
Additional context
Here is the full error message:
<html><body>
<!--StartFragment--><h2>HTTP ERROR 500 javax.servlet.ServletException:
javax.servlet.ServletException: An error occurred while processing
request to /exist/apps/monex/index-keys.html: An unknown error occurred:
name is empty</h2>
URI: | /exist/apps/monex/index-keys.html
-- | --
500
javax.servlet.ServletException: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
XQueryURLRewrite
javax.servlet.ServletException: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
javax.servlet.ServletException: An unknown error occurred: name is empty
java.lang.IllegalArgumentException: name is empty
<h3>Caused by:</h3><pre>javax.servlet.ServletException: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:162)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:763)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:400)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:645)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:392)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:366)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:571)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
... 18 more
Caused by: javax.servlet.ServletException: An unknown error occurred: name is empty
at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:572)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.exist.http.servlets.EXistServlet.service(EXistServlet.java:588)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1459)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:618)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:167)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:81)
at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:50)
at org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:523)
at org.exist.http.urlrewrite.XQueryURLRewrite.applyViews(XQueryURLRewrite.java:406)
at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:347)
... 41 more
Caused by: java.lang.IllegalArgumentException: name is empty
at org.exist.dom.persistent.SymbolTable.getSymbol(SymbolTable.java:201)
at org.exist.indexing.lucene.LuceneUtil.encodeQName(LuceneUtil.java:90)
at org.exist.indexing.lucene.LuceneIndexWorker.lambda$scanIndexByQName$9(LuceneIndexWorker.java:1199)
at org.exist.indexing.lucene.LuceneIndex.withReader(LuceneIndex.java:250)
at org.exist.indexing.lucene.LuceneIndexWorker.scanIndexByQName(LuceneIndexWorker.java:1197)
at org.exist.indexing.lucene.LuceneIndexWorker.scanIndex(LuceneIndexWorker.java:1167)
at org.exist.xquery.functions.util.IndexKeys.eval(IndexKeys.java:161)
at org.exist.xquery.BasicFunction.eval(BasicFunction.java:73)
at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:62)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.SwitchExpression.eval(SwitchExpression.java:109)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.LetExpr.eval(LetExpr.java:98)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:248)
at org.exist.xquery.value.FunctionReference.evalFunction(FunctionReference.java:99)
at org.exist.xquery.functions.fn.FunHigherOrderFun.eval(FunHigherOrderFun.java:235)
at org.exist.xquery.BasicFunction.eval(BasicFunction.java:73)
at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:62)
at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:73)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:189)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:98)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.isEmpty(DeferredFunctionCall.java:200)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:83)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:98)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:98)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.isEmpty(DeferredFunctionCall.java:200)
at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:75)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:189)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:98)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.XQuery.execute(XQuery.java:373)
at org.exist.xquery.XQuery.execute(XQuery.java:295)
at org.exist.http.RESTServer.executeXQuery(RESTServer.java:1558)
at org.exist.http.RESTServer.doPost(RESTServer.java:683)
at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:538)
... 67 more
</pre>
<hr><a href="https://eclipse.org/jetty">Powered by Jetty:// 9.4.44.v20210927</a><hr>
<!--EndFragment-->
</body>
</html>HTTP ERROR 500 javax.servlet.ServletException: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
URI: /exist/apps/monex/index-keys.html
STATUS: 500
MESSAGE: javax.servlet.ServletException: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
SERVLET: XQueryURLRewrite
CAUSED BY: javax.servlet.ServletException: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
CAUSED BY: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
CAUSED BY: javax.servlet.ServletException: An unknown error occurred: name is empty
CAUSED BY: java.lang.IllegalArgumentException: name is empty
Caused by:
javax.servlet.ServletException: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:162)
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:763)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.Server.handle(Server.java:516)
at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:400)
at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:645)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:392)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:277)
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:338)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:315)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:173)
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:131)
at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:409)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:883)
at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:1034)
at java.base/java.lang.Thread.run(Thread.java:829)
Caused by: javax.servlet.ServletException: An error occurred while processing request to /exist/apps/monex/index-keys.html: An unknown error occurred: name is empty
at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:366)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1450)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
at org.eclipse.jetty.websocket.server.WebSocketUpgradeFilter.doFilter(WebSocketUpgradeFilter.java:228)
at org.eclipse.jetty.servlet.FilterHolder.doFilter(FilterHolder.java:193)
at org.eclipse.jetty.servlet.ServletHandler$Chain.doFilter(ServletHandler.java:1601)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:571)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:234)
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:146)
... 18 more
Caused by: javax.servlet.ServletException: An unknown error occurred: name is empty
at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:572)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:707)
at org.exist.http.servlets.EXistServlet.service(EXistServlet.java:588)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
at org.eclipse.jetty.servlet.ServletHolder$NotAsync.service(ServletHolder.java:1459)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:799)
at org.eclipse.jetty.servlet.ServletHandler$ChainEnd.doFilter(ServletHandler.java:1631)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:548)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:618)
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:235)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1624)
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:233)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1434)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:188)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:501)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1594)
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:186)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1349)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:167)
at org.eclipse.jetty.server.Dispatcher.forward(Dispatcher.java:81)
at org.exist.http.urlrewrite.Forward.doRewrite(Forward.java:50)
at org.exist.http.urlrewrite.XQueryURLRewrite.doRewrite(XQueryURLRewrite.java:523)
at org.exist.http.urlrewrite.XQueryURLRewrite.applyViews(XQueryURLRewrite.java:406)
at org.exist.http.urlrewrite.XQueryURLRewrite.service(XQueryURLRewrite.java:347)
... 41 more
Caused by: java.lang.IllegalArgumentException: name is empty
at org.exist.dom.persistent.SymbolTable.getSymbol(SymbolTable.java:201)
at org.exist.indexing.lucene.LuceneUtil.encodeQName(LuceneUtil.java:90)
at org.exist.indexing.lucene.LuceneIndexWorker.lambda$scanIndexByQName$9(LuceneIndexWorker.java:1199)
at org.exist.indexing.lucene.LuceneIndex.withReader(LuceneIndex.java:250)
at org.exist.indexing.lucene.LuceneIndexWorker.scanIndexByQName(LuceneIndexWorker.java:1197)
at org.exist.indexing.lucene.LuceneIndexWorker.scanIndex(LuceneIndexWorker.java:1167)
at org.exist.xquery.functions.util.IndexKeys.eval(IndexKeys.java:161)
at org.exist.xquery.BasicFunction.eval(BasicFunction.java:73)
at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:62)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.SwitchExpression.eval(SwitchExpression.java:109)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.LetExpr.eval(LetExpr.java:98)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:248)
at org.exist.xquery.value.FunctionReference.evalFunction(FunctionReference.java:99)
at org.exist.xquery.functions.fn.FunHigherOrderFun.eval(FunHigherOrderFun.java:235)
at org.exist.xquery.BasicFunction.eval(BasicFunction.java:73)
at org.exist.xquery.InternalFunctionCall.eval(InternalFunctionCall.java:62)
at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:73)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:189)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:98)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:100)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.isEmpty(DeferredFunctionCall.java:200)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:83)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.SequenceConstructor.eval(SequenceConstructor.java:82)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.EnclosedExpr.eval(EnclosedExpr.java:82)
at org.exist.xquery.ElementConstructor.eval(ElementConstructor.java:330)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:98)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:98)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.isEmpty(DeferredFunctionCall.java:200)
at org.exist.xquery.DynamicCardinalityCheck.eval(DynamicCardinalityCheck.java:75)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:189)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.ConditionalExpression.eval(ConditionalExpression.java:98)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall$DeferredFunctionCallImpl.execute(FunctionCall.java:421)
at org.exist.xquery.DeferredFunctionCall.realize(DeferredFunctionCall.java:57)
at org.exist.xquery.DeferredFunctionCall.iterate(DeferredFunctionCall.java:232)
at org.exist.xquery.value.ValueSequence.addAll(ValueSequence.java:173)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.TypeswitchExpression.eval(TypeswitchExpression.java:110)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:65)
at org.exist.xquery.ForExpr.processItem(ForExpr.java:248)
at org.exist.xquery.ForExpr.eval(ForExpr.java:187)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.UserDefinedFunction.eval(UserDefinedFunction.java:161)
at org.exist.xquery.FunctionCall.evalFunction(FunctionCall.java:289)
at org.exist.xquery.FunctionCall.eval(FunctionCall.java:207)
at org.exist.xquery.DebuggableExpression.eval(DebuggableExpression.java:58)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.LetExpr.eval(LetExpr.java:110)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.PathExpr.eval(PathExpr.java:279)
at org.exist.xquery.AbstractExpression.eval(AbstractExpression.java:71)
at org.exist.xquery.XQuery.execute(XQuery.java:373)
at org.exist.xquery.XQuery.execute(XQuery.java:295)
at org.exist.http.RESTServer.executeXQuery(RESTServer.java:1558)
at org.exist.http.RESTServer.doPost(RESTServer.java:683)
at org.exist.http.servlets.EXistServlet.doPost(EXistServlet.java:538)
... 67 more
[Powered by Jetty:// 9.4.44.v20210927](https://eclipse.org/jetty)
It just occurred to me that it is strange that we don't have a quick access to the exist log file from within monex. This could help with quick diagnosis from a distance, without having to jump through the hoop of setting up remote console, etc.
The left bar with "Monitoring local", "Profiling", "Indexes", … seems the natural place for another entry, that opens the log file in the browser/ or to download a copy.
Thoughts?
instances.xml is currently handled like any other resource. Which means that it is easy to accidentally include tokens for remote instances in pull-request, and that remote configs don't persist through updates.
It would be both more convenient and secure if the file would be handled slightly differently. But i m not yet sure how to go about it: move it to /db/system/monex?
The dry run and rollback worked fine, and the prepare worked fine, but the perform failed, at this point:
[INFO] Creating release 3.0.4
[ERROR]
org.kohsuke.github.GHFileNotFoundException: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/repos#create-a-release"}
at org.kohsuke.github.Requester.handleApiError (Requester.java:699)
at org.kohsuke.github.Requester._to (Requester.java:306)
at org.kohsuke.github.Requester.to (Requester.java:247)
at org.kohsuke.github.GHReleaseBuilder.create (GHReleaseBuilder.java:71)
at de.jutzig.github.release.plugin.UploadMojo.execute (UploadMojo.java:196)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.io.FileNotFoundException: https://api.github.com/repos/eXist-db/monex/releases
at sun.reflect.NativeConstructorAccessorImpl.newInstance0 (Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance (NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance (DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance (Constructor.java:423)
at sun.net.www.protocol.http.HttpURLConnection$10.run (HttpURLConnection.java:1952)
at sun.net.www.protocol.http.HttpURLConnection$10.run (HttpURLConnection.java:1947)
at java.security.AccessController.doPrivileged (Native Method)
at sun.net.www.protocol.http.HttpURLConnection.getChainedException (HttpURLConnection.java:1946)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0 (HttpURLConnection.java:1516)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream (HttpURLConnection.java:1500)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream (HttpsURLConnectionImpl.java:268)
at org.kohsuke.github.Requester.parse (Requester.java:625)
at org.kohsuke.github.Requester.parse (Requester.java:607)
at org.kohsuke.github.Requester._to (Requester.java:285)
at org.kohsuke.github.Requester.to (Requester.java:247)
at org.kohsuke.github.GHReleaseBuilder.create (GHReleaseBuilder.java:71)
at de.jutzig.github.release.plugin.UploadMojo.execute (UploadMojo.java:196)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
Caused by: java.io.FileNotFoundException: https://api.github.com/repos/eXist-db/monex/releases
at sun.net.www.protocol.http.HttpURLConnection.getInputStream0 (HttpURLConnection.java:1898)
at sun.net.www.protocol.http.HttpURLConnection.getInputStream (HttpURLConnection.java:1500)
at java.net.HttpURLConnection.getResponseCode (HttpURLConnection.java:480)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getResponseCode (HttpsURLConnectionImpl.java:352)
at org.kohsuke.github.Requester.parse (Requester.java:615)
at org.kohsuke.github.Requester.parse (Requester.java:607)
at org.kohsuke.github.Requester._to (Requester.java:285)
at org.kohsuke.github.Requester.to (Requester.java:247)
at org.kohsuke.github.GHReleaseBuilder.create (GHReleaseBuilder.java:71)
at de.jutzig.github.release.plugin.UploadMojo.execute (UploadMojo.java:196)
at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo (DefaultBuildPluginManager.java:137)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:210)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:156)
at org.apache.maven.lifecycle.internal.MojoExecutor.execute (MojoExecutor.java:148)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:117)
at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject (LifecycleModuleBuilder.java:81)
at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build (SingleThreadedBuilder.java:56)
at org.apache.maven.lifecycle.internal.LifecycleStarter.execute (LifecycleStarter.java:128)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:305)
at org.apache.maven.DefaultMaven.doExecute (DefaultMaven.java:192)
at org.apache.maven.DefaultMaven.execute (DefaultMaven.java:105)
at org.apache.maven.cli.MavenCli.execute (MavenCli.java:972)
at org.apache.maven.cli.MavenCli.doMain (MavenCli.java:293)
at org.apache.maven.cli.MavenCli.main (MavenCli.java:196)
at sun.reflect.NativeMethodAccessorImpl.invoke0 (Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke (NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke (DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke (Method.java:498)
at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced (Launcher.java:282)
at org.codehaus.plexus.classworlds.launcher.Launcher.launch (Launcher.java:225)
at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode (Launcher.java:406)
at org.codehaus.plexus.classworlds.launcher.Launcher.main (Launcher.java:347)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:17 min
[INFO] Finished at: 2022-01-31T22:34:33-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal de.jutzig:github-release-plugin:1.4.0:release (github-upload) on project monex: Failed to create release: {"message":"Not Found","documentation_url":"https://docs.github.com/rest/reference/repos#create-a-release"}: https://api.github.com/repos/eXist-db/monex/releases -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 02:21 min
[INFO] Finished at: 2022-01-31T22:34:33-05:00
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-release-plugin:2.5.3:perform (default-cli) on project monex: Maven execution failed, exit code: '1' -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException
As a result, I performed the final push of the prepare and perform commits, and I published the .xar to GitHub Releases manually.
Something failed with GitHub Release?
If anyone has any suggestions, it would be great to get this working.
As reported in exist-open (https://markmail.org/message/nlhzzsojc44bjvgi), eXist-5.0.0-RC* is unable to install the current version of monex (v0.9.17) because monex has a dependency on eXist, expressed as semver-min="5.0.0-SNAPSHOT"
(see https://github.com/eXist-db/monex/blob/master/pom.xml#L66). According to semver 2.0 precedence rules for pre-release metadata (see https://semver.org/#spec-item-11), 5.0.0-RC < 5.0.0-SNAPSHOT
because R comes before S, "lexically in ASCII sort order". Generally, it's bad practice to target pre-release versions, but a workaround would be for us to release a new version of monex with semver-min="5.0.0-R" (which would be <
all RC and SNAPSHOT versions).
The goal would be to push out a new release of monex out soon so users of eXist-5.0.0-RC* can install a working version of monex - and so future releases can ship with one.
How to add or change an Xml namespace in exists / Cannot use 'xmlns' in the name expression
sibling of the JAC issue eXist-db/exist#479
Describe the bug
Since updating monex's pom.xml to require eXist 5.4.0 (to prepare a version compatible with this release), CI and local runs of npm run cypress
tests fail on the monitoring page at http://localhost:8080/exist/apps/monex/console.html.
See the output below (from my local system) showing the failures.
This is strange, because in the past when the monitoring page failed, the cause was a mismatch between the version of Jackson used in monex vs. eXist. But the versions are aligned: 2.13.1.
Monex
monitoring page
✓ should load start page (2021ms)
profiling
✓ should load Query Profiling (2154ms)
indexes
✓ should load Browse Indexes (1661ms)
remote console
1) should load remote dev console
2) should show log message
remote monitoring
✓ should load remote monitoring (1501ms)
4 passing (18s)
2 failing
1) Monex
remote console
should load remote dev console:
AssertionError: Timed out retrying after 4000ms: Expected to find content: 'Connected' within the element: <label#status.label.label-info.control-label> but never did.
at Context.eval (http://localhost:8080/__cypress/tests?p=src/test/cypress/integration/monex_spec.js:125:46)
2) Monex
remote console
should show log message:
AssertionError: Timed out retrying after 4000ms: Expected to find content: 'Connected' within the element: <label#status.label.label-info.control-label> but never did.
at Context.eval (http://localhost:8080/__cypress/tests?p=src/test/cypress/integration/monex_spec.js:129:46)
Context (please always complete the following information):
Additional context
conf.xml
? nonemonex has a hipchat module at monex/src/main/xar-resources/modules/hipchat.xql
rewrite for slack, delete, keep ?
In Browse Indexes the position, documents and frequency are all perfectly correct, but under the column "term" only a question mark is displayed.
Monex WebSocket needs to handle errors
As reported by Andreas Wagner:
[Scheduler-123456789-1] WARN (JsrEvents.java [callError]:158) -
Unable to report throwable to websocket (no @OnError handler declared):
org.exist.remoteconsole.RemoteConsoleEndpoint
org.eclipse.jetty.websocket.api.CloseException:
java.util.concurrent.TimeoutException: Idle timeout expired: 14000/10000
ms
at
org.eclipse.jetty.websocket.common.io.AbstractWebSocketConection.onReadTimeout(AbstratWebSocketConnection.java:567)
2019-12-20 12:10:09,656 [Scheduler-982565180-1] WARN (JsrEvents.java [callError]:158) - Unable to report throwable to websocket (no @OnError handler declared): org.exist.remoteconsole.RemoteConsoleEndpoint
org.eclipse.jetty.websocket.api.CloseException: java.util.concurrent.TimeoutException: Idle timeout expired: 36688/10000 ms
why not simply action="index.html":question:
the login form action attribute is generated by the function app:form-action-to-current-url in app.xql. This function returns the request:get-url(). behind a proxy (in my case apache mod_proxy, that does not rewrite the request header) it guides to any localhost:port location, while a simple forward to index.html is just fine.
Describe the bug
I created a range index field for a collection, but Monex doesn’t show any keys for that index. However, a query using the range
functions confirms that the index has been populated.
Expected behavior
I expected to see the keys indexed for the given field.
To Reproduce
xquery version "3.1";
module namespace t="http://example.org/ns/test";
(: NAMESPACES :)
declare namespace range="http://exist-db.org/xquery/range";
declare namespace test="http://exist-db.org/xquery/xqsuite";
declare namespace xdb="http://exist-db.org/xquery/xmldb";
(:~
Check to make sure a named field exists in the new range index.
@author Ash Clark
2022
:)
(: VARIABLES :)
declare variable $t:pseudojson :=
<fn:map>
<fn:string key="id">apple</fn:string>
<fn:array key="related">
<fn:string>orange</fn:string>
<fn:string>pear</fn:string>
</fn:array>
</fn:map>;
declare variable $t:xconf :=
<collection xmlns="http://exist-db.org/collection-config/1.0">
<index xmlns:fn="http://www.w3.org/2005/xpath-functions"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<range>
<create qname="fn:string">
<condition attribute="key" operator="eq" value="id"/>
<field name="string-id" type="xs:string"/>
</create>
<create qname="@key" type="xs:string"/>
</range>
</index>
</collection>;
(: FUNCTIONS :)
declare %test:setUp function t:set-up() {
let $dir := xdb:create-collection('/db', 'sudoJson')
let $cDir := xdb:create-collection('/db/system/config/db', 'sudoJson')
let $storeFiles := (
xdb:store($cDir, 'collection.xconf', $t:xconf),
xdb:store($dir, 'example.xml', $t:pseudojson)
)
return xdb:reindex('/db/sudoJson')
};
(:declare %test:tearDown function t:tear-down() {
xdb:remove('/db/sudoJson'), xdb:remove('/db/system/config/db/sudoJson')
};:)
declare
%test:assertEquals('apple')
function t:id-string-field-indexed() {
collection('/db/sudoJson')/range:index-keys-for-field('string-id', '',
function ($i, $d) { $i }, 10)
};
declare
%test:assertExists
function t:query-finds-apple-id() {
collection('/db/sudoJson')//fn:string[@key eq 'id'][. eq 'apple']
};
declare
%test:assertExists
function t:range-finds-apple-id() {
collection('/db/sudoJson')/range:field-eq('string-id', 'apple')
};
declare
%test:assertEquals(2)
function t:key-attributes-indexed() {
let $instances :=
util:index-keys(collection('/db/sudoJson')//@key, '', function ($i, $d) {
$d[2]
}, 10, 'range-index')
return sum($instances)
};
The test suite above should completely pass, and return something like:
<testsuites>
<testsuite package="http://example.org/ns/test" timestamp="2022-03-25T10:06:51.3-04:00" tests="4" failures="0" errors="0" pending="0" time="PT0.017S">
<testcase name="id-string-field-indexed" class="t:id-string-field-indexed"/>
<testcase name="key-attributes-indexed" class="t:key-attributes-indexed"/>
<testcase name="query-finds-apple-id" class="t:query-finds-apple-id"/>
<testcase name="range-finds-apple-id" class="t:range-finds-apple-id"/>
</testsuite>
</testsuites>
The tear-down function is commented out, because now you can check what Monex has:
/db/sudoJson
.string-id
indexed item.There will be 0 results when there should be 1.
Context
@pwin commented on Oct 2, 2018, 12:30 PM UTC:
I had a paradoxical extremely large index file (ngram.dbx) occur in exist-db v2.1 but did not "see" this developing from the data in e.g. monex
proposal for jmx information to be extended to include actual size of the index files (in addition to the memory footprint of the index caches)
This issue was moved by duncdrum from eXist-db/exist#2184.
Problem: Requests to ws://localhost:8080/exist/rconsole
fail return a 404 with monex 1.0.0 and 1.0.1, whereas the 0.9.16 release does not exhibit this error.
Background: As reported on exist-open by @craigberry and confirmed by @simar0at:
I'm trying to debug something with eXist-db 4.7.0 which apparently comes with monex 1.0.1. Any attempt to open the remote console fails and leaves something like the following in the JavaScript console:
WebSocket connection to 'ws://localhost:8080/exist/rconsole' failed: Unexpected response code: 404
I can reproduce the exact same problem with eXist 4.7.0 running on macOS Mojave, RHEL 7.6, and Ubuntu 16.04.
@simar0at added:
I also saw that problem yesterday with our instances of exist-db 4.3.1 which offered 1.0.1 as an upgrade to Monex which I installed... I installed the 0.9.16 monex xar and things work as expected.
@craigberry confirmed:
Thanks. That trick worked for me as well with eXist 4.7.0. First I uninstalled monex, then installed the 0.9.16 monex xar, then restarted eXist. I now have a functioning remote console.
We can probable remove text like
To use this feature you need a version of eXist build after April 10th, 2014. Older versions may work in part.
and
This feature only works on eXist version 2.2RC2 or higher
Adding collation attribute-value pairs corrupts the view of the index in Monex. Consequently, some less stable people, like myself, freak out :)
Without collation, this is what my index looks like:
With collation:
<collection xmlns="http://exist-db.org/collection-config/1.0">
<index>
<range>
<create qname="orth"
type="xs:string"
collation="?lang=sr&strength=primary"/>
</range>
</index>
I get the
The index itself in eXist is ok and can be queried, so this is a Monex issue.
Just updated to exist 3.5.0 and Monex 0.9.9
and the log shows multiple variations of:
/exist/rconsole
java.lang.NullPointerException: null
at org.eclipse.jetty.websocket.servlet.WebSocketServlet.service(WebSocketServlet.java:152) ~[websocket-servlet-9.3.9.v20160517.jar:9.3.9.v20160517]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) ~[servlet-api-3.1.jar:3.1.0]
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:833) ~[jetty-servlet-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:535) ~[jetty-servlet-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:524) ~[jetty-security-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:190) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:188) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1253) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:168) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473) ~[jetty-servlet-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:166) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1155) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:219) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:126) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:521) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.Server.handle(Server.java:564) ~[jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:317) [jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:251) [jetty-server-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:279) [jetty-io-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:110) [jetty-io-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:124) [jetty-io-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.util.thread.Invocable.invokePreferred(Invocable.java:128) [jetty-util-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.util.thread.Invocable$InvocableExecutor.invoke(Invocable.java:222) [jetty-util-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:294) [jetty-util-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:199) [jetty-util-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:673) [jetty-util-9.4.6.v20170531.jar:9.4.6.v20170531]
at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:591) [jetty-util-9.4.6.v20170531.jar:9.4.6.v20170531]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_144]
so far I can't tell what's going on, will update / close here as things progress.
also i see the option to connect to history.state.gov for remote monitoring…@joewiz ??
The freshly released version v0.9.13 contains too many JAR files (from jetty to be specific).
I think these JAR files were not cleaned wit ant clean
or so. exist.xml
does not contain any references anymore to the jetty jars, which is good.
please regenerate the XAR without these jetty JAR files.
The version of monex available in the public-repo (0.9.6) contains changes that are not in the GitHub repo (still at 0.9.5). We should update the source in GitHub to the latest changes in public-repo (as discussed with @dizzzz in eXist-db/dashboard#48), update the release notes, and prepare a new release (0.9.7) to get users on the version built directly from source control.
Monex loads JavaScript resources from src/main/xar-resources/resources/scripts. This means although JQuery 3.5.x is specified in package.json it still uses JQuery 1.9.x from src/main/xar-resources/resources/scripts.
A long file path for the collection.xconf file causes the string to be cut short making it difficult to figure out what should be indexed.
The app has risen from an experimental project to improve the old admin app to an app of central importance to eXist. If being included in the list of autodeployed xars and having an entry in eXist's task bar entry is any measure of an app's importance to eXist, then monex certainly meets the bar for living in the official eXist organization.
The proportion shown should be used / total, but is total / used.
See https://github.com/wolfgangmm/monex/blob/master/index.html#L322
It is not possible to update / install Monex when clicking on the 'install' icon in the list of available packages or when updating an existing installation of Monex (say 2.x).
Expected behavior
I'd expect to install Monex when clicking on the install package icon from the package manager.
To Reproduce
Go to the package manager where there's an old version of Monex, click 'update'. Or go to the "available packages" tab, click on the install icon in the Monex box. Threre'll be a 'package installed' message, although the package will not be installed.
logs:
2021-03-11 21:48:03,567 [qtp1853015270-92] ERROR (Deploy.java [installAndDeploy]:215) - Failed to install dependency from http://exist-db.org/exist/apps/public-repo/modules/find.xql?name=http%3A%2F%2Fexist-db.org%2Fapps%2Fmonex&processor=5.3.0-SNAPSHOT&version=3.0.2: Read timed out
java.io.IOException: Failed to install dependency from http://exist-db.org/exist/apps/public-repo/modules/find.xql?name=http%3A%2F%2Fexist-db.org%2Fapps%2Fmonex&processor=5.3.0-SNAPSHOT&version=3.0.2: Read timed out
The package is installed correctly when uploading the .xar downloaded from GitHub.
For this test I used eXist-db snapshot of 10 March 2021.
I've encountered the same glitch on two machines when opening monex for the first time after starting eXist 3.1.1 on an existing database (initialized under 3.1.0) where monex 0.9.6 had been installed. I got this error when starting monex (via http://localhost:8080/exist/apps/monex/index.html):
/db/apps/monex/modules/view.xqlexerr:ERROR error found while loading module indexes: Error while loading module indexes.xqm: error found while loading module console: Cannot find module class from EXPath repository: org.exist.console.xquery.ConsoleModule
The default package manager tells me 0.9.6 is installed, and the 0.9.6 jars are on disk:
$ cd /Users/joe/Library/Application Support/org.exist/expathrepo/monex-0.9.6
$ ls content
exist-monex-0.9.6.jar websocket-api-9.3.9.v20160517.jar websocket-server-9.3.9.v20160517.jar
jetty-util-ajax-9.3.9.v20160517.jar websocket-common-9.3.9.v20160517.jar websocket-servlet-9.3.9.v20160517.jar
monex's modules/indexes.xqm imports the module here: https://github.com/wolfgangmm/monex/blob/master/modules/indexes.xqm#L15
Restarting the database doesn't help. The only thing that fixes the issue is installing monex again (I installed 0.9.7, since this update was available in the package manager).
At the same time, the following query returns true()
:
xquery version "3.1";
some $module in util:registered-modules() satisfies $module eq "http://exist-db.org/xquery/console"
I wonder why 3.1.1 would fail to recognize java modules installed under 3.1.0?
As noted by @duncdrum in the 2019-09-30 Community Call:
HEAD of monex no longer compatible with 5.0.0, exist 5.1.0 will need accompanying monex release
currently the build system requires a full local clone of exist (still pointing to wolfgangs develop clone), this seems all kinds of bad with respect to repeatable builds. There is also around 100 .jar
on the classpath for no discernible reason, other then exist/**.jar
is quick to type.
I've been able to wiggle these down to 5, but i m stomped by a build that runs on local yet throws weird java io ivy errors on ci. My attempts at mavenizing the build similarly have hit a wall. So hopefully others more deeply versed in ivy and maven for exist can help me out here.
This is the last of the default apps that doesn't sport a repeatable build, so whichever route ivy / maven we should fix this. Since monex is a showstopper for 5.0.0
we should switch the build system before or together with the required changes for the next major release.
Ideally this improved build system should:
When you try and access Monex from the dashboard of eXist 2.2 HEAD deployed as a WAR file in Tomcat 7, you get the following error when it hits http://localhost:8080/exist/apps/monex/index.html
:
<exception>
<path>/db/apps/monex/modules/view.xql</path>
<message>
exerr:ERROR error found while loading module app: Error while loading module app.xql: error found while loading module console: Cannot find module class from EXPath repository: org.exist.console.xquery.ConsoleModule
</message>
</exception>
To include improvements from https://github.com/wolfgangmm/monex/pull/41.
Hi, just tried out this nice app, thanks ; )
I came across an issue (because my controller-config.xml file is not standard : <root pattern="/app" path="xmldb:exist:///db/apps"/>
). Instead of requesting jmx status with urls like /localhost:8080/status/...
, the app was sending /localhost:8080/exist/app/index.html/status/...
.
changing the url para in (exadmin.js. line 90)
var url = location.pathname.replace(/^(.*)\/app\/.*$/, "$1");
$.ajax({
url: url + "/status?c=instances&c=processes&c=locking&c=memory&c=caches&c=system",
type: "GET",
success: function(xml) {
$("#jmx-system-info").each(function() {
to just (without the regex on the url - which is not adding much here) :
url: "/status?c=instances&c=processes&c=locking&c=memory&c=caches&c=system",
made it back to work.
This might help make the app more robust when users do not have standard configs.
Cheers,
C.
Before disabling the new dashboard we agreed to move the backup and shutdown actions from the old dashboard into monex.
A declarative, efficient, and flexible JavaScript library for building user interfaces.
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google ❤️ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.