NullPointerException when accessing db.Info() due to missing read permissions in DropOffBox
Created by: Henrik tom Wörden
The following error
2019-09-30 10:24:34 10.218.100.146 - 10.3.128.3 10443 GET /Info - 401 - 0 1 https://dumiatis01 - -
2019-09-30 10:24:34 10.218.100.146 - 10.3.128.3 10443 POST /login - 200 - 41 35 https://dumiatis01 - -
UNKNOWN ERROR
java.lang.NullPointerException
at caosdb.server.utils.Info.getFlatList(Info.java:101)
at caosdb.server.utils.Info.toElement(Info.java:181)
at caosdb.server.utils.Info.toElement(Info.java:158)
at caosdb.server.resource.InfoResource.httpGetInChildClass(InfoResource.java:41)
at caosdb.server.resource.AbstractCaosDBServerResource.httpGet(AbstractCaosDBServerResource.java:250)
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:511)
at org.restlet.resource.ServerResource.get(ServerResource.java:723)
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:603)
at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:662)
at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:348)
at org.restlet.resource.ServerResource.handle(ServerResource.java:1020)
at org.restlet.resource.Finder.handle(Finder.java:236)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:641)
at caosdb.server.CaosDBServer$2.handle(CaosDBServer.java:524)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:641)
at caosdb.server.CaosDBServer$3.handle(CaosDBServer.java:542)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)
at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:77)
at org.restlet.Application.handle(Application.java:385)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:641)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Router.doHandle(Router.java:422)
at org.restlet.routing.Router.handle(Router.java:641)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.routing.Filter.doHandle(Filter.java:150)
at org.restlet.routing.Filter.handle(Filter.java:197)
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)
at org.restlet.Component.handle(Component.java:408)
at caosdb.server.CaosDBComponent.handle(CaosDBServer.java:880)
at org.restlet.Server.handle(Server.java:507)
at org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63)
at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:143)
at org.restlet.ext.jetty.JettyServerHelper$WrappedServer.handle(JettyServerHelper.java:256)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311)
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257)
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544)
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635)
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555)
at java.lang.Thread.run(Thread.java:748)
2019-09-30 10:24:34 10.218.100.146 - 10.3.128.3 10443 GET /Info - 500 - 0 12 https://dumiatis01 - -
10:24:34.408 [qtp1232373427-213] ERROR REQUEST_ERRORS_LOGGER - SRID: bfb5eb86b5bc7d4690815c9b12b22ffc
REQUEST: GET https://dumiatis01/Info HTTPS/1.1
REQUEST HEADERS: [Cookie: SessionToken=["PAM","henrik",1569839074364,43200000,"1bba9185-022d-4fa5-96b3-1ea8471d398c","20f664369157f2111cd932add088625de52a9fa8228d7878b07d3a2779118861da59f79693aa17481b390d1144c2dafccbccfb8e8e6670e5aa90cf5636618f40"];][Host: dumiatis01][Accept-Encoding: identity]
RESPONSE: HTTPS/1.1 - Internal Server Error (500) - The server encountered an unexpected condition which prevented it from fulfilling the request
RESPONSE ENTITY:<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="https://dumiatis01/webinterface/webcaosdb.xsl" ?>
<Response username="henrik" realm="PAM" srid="bfb5eb86b5bc7d4690815c9b12b22ffc" timestamp="1569839074395" baseuri="https://dumiatis01">
<UserInfo username="henrik" realm="PAM">
<Roles>
<Role>administration</Role>
</Roles>
</UserInfo>
<Error code="500" description="An unexpected server error has occurred.">SRID = bfb5eb86b5bc7d4690815c9b12b22ffc
Please report this server error to and include the SRID into your report.</Error>
</Response>
java.lang.NullPointerException: null
at caosdb.server.utils.Info.getFlatList(Info.java:101) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at caosdb.server.utils.Info.toElement(Info.java:181) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at caosdb.server.utils.Info.toElement(Info.java:158) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at caosdb.server.resource.InfoResource.httpGetInChildClass(InfoResource.java:41) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at caosdb.server.resource.AbstractCaosDBServerResource.httpGet(AbstractCaosDBServerResource.java:250) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at sun.reflect.GeneratedMethodAccessor4.invoke(Unknown Source) ~[?:?]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_222]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_222]
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:511) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.resource.ServerResource.get(ServerResource.java:723) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.resource.ServerResource.doHandle(ServerResource.java:603) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:662) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:348) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.resource.ServerResource.handle(ServerResource.java:1020) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.resource.Finder.handle(Finder.java:236) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Router.doHandle(Router.java:422) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Router.handle(Router.java:641) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at caosdb.server.CaosDBServer$2.handle(CaosDBServer.java:524) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Router.doHandle(Router.java:422) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Router.handle(Router.java:641) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at caosdb.server.CaosDBServer$3.handle(CaosDBServer.java:542) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:77) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.Application.handle(Application.java:385) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Router.doHandle(Router.java:422) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Router.handle(Router.java:641) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Router.doHandle(Router.java:422) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Router.handle(Router.java:641) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.Component.handle(Component.java:408) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at caosdb.server.CaosDBComponent.handle(CaosDBServer.java:880) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.Server.handle(Server.java:507) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:143) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.restlet.ext.jetty.JettyServerHelper$WrappedServer.handle(JettyServerHelper.java:256) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:311) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:544) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) [caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_222]
occured when db.Info() was called in a python client. The problem was resolved after adding missing read permissions to the DropOffBox Folder.
Imported comments:
By Alexander Schlemmer on 2020-06-12T15:11:21.060Z
Server-version: acc6fbde
By Alexander Schlemmer on 2020-06-12T15:11:01.273Z
We think it might be related to inconsistencies in the file system, e.g. broken symlinks, but couldn't reproduce it with a clean container (unfortunately).
By Alexander Schlemmer on 2020-06-12T15:08:05.931Z
We are currently having problems with a similar issue: db.Info()
leads to an unknown server error, but the dropoffbox exists and seems to have the correct permissions.
However, the exception on the server looks different:
linkahead | RESPONSE: HTTPS/1.1 - Internal Server Error (500) - The server encountered an unexpected condition which prevented it from fulfilling the request
linkahead | RESPONSE ENTITY:<?xml version="1.0" encoding="UTF-8"?>
linkahead | <?xml-stylesheet type="text/xsl" href="(...)" ?>
linkahead | <Response username="(...)" realm="PAM" srid="(...)" timestamp="(...)" baseuri="(...)">
linkahead | <UserInfo username="admin" realm="PAM">
linkahead | <Roles>
linkahead | <Role>administration</Role>
linkahead | </Roles>
linkahead | </UserInfo>
linkahead | <Error code="500" description="An unexpected server error has occurred.">SRID = 2429317594ce4a6bb989c4fd29963176
linkahead |
linkahead | Please report this server error to and include the SRID into your report.</Error>
linkahead | </Response>
linkahead |
linkahead | java.lang.NullPointerException: null
linkahead | at caosdb.server.database.misc.TransactionBenchmark.called_from(TransactionBenchmark.java:431) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at caosdb.server.database.misc.JdomConverter.convert(TransactionBenchmark.java:239) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at caosdb.server.database.misc.JdomConverter.convert(TransactionBenchmark.java:256) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at caosdb.server.database.misc.TransactionBenchmark.toElement(TransactionBenchmark.java:366) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at caosdb.server.resource.InfoResource.httpGetInChildClass(InfoResource.java:51) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at caosdb.server.resource.AbstractCaosDBServerResource.httpGet(AbstractCaosDBServerResource.java:258) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at jdk.internal.reflect.GeneratedMethodAccessor5.invoke(Unknown Source) ~[?:?]
linkahead | at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
linkahead | at java.lang.reflect.Method.invoke(Method.java:566) ~[?:?]
linkahead | at org.restlet.resource.ServerResource.doHandle(ServerResource.java:511) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.resource.ServerResource.get(ServerResource.java:723) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.resource.ServerResource.doHandle(ServerResource.java:603) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:662) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:348) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.resource.ServerResource.handle(ServerResource.java:1020) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.resource.Finder.handle(Finder.java:236) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.routing.Router.doHandle(Router.java:422) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at org.restlet.routing.Router.handle(Router.java:641) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
linkahead | at caosdb.server.CaosDBServer$2.handle(CaosDBServer.java:530) ~[caosdb-server-0.1-SNAPSHOT-jar-with-dependencies.jar:?]
(...)
(Some information left out intentionally with "(...)".)
Is this a new bug?