Unexpected server error when retrieving an Entity with name="1"
Summary
When retrieving an entity with the name of a low integer number, e.g., "1", "2", an unexpected server error occurs.
Expected Behavior
The retrieve should return an entity if one exists, and throw an error otherwise.
Actual Behavior
An unexpected Server Error
Steps to Reproduce the Problem
With the Python client, simply do
import caosdb as db
db.Record(name="1").retrieve() # or db.RecordType or db.Property or db.Entity
which will result in the following error
HTTPServerError: An unexpected server error has occurred.
SRID = 3b427e0e-5ec9-4c24-bdd8-7ab197fbf556
Please report this server error to and include the SRID into your report.
In the server logs, we see a NoSuchRoleException
linkahead | org.caosdb.server.entity.NoSuchRoleException: No such role 'ROLE'.
linkahead | at org.caosdb.server.entity.Role.parse(Role.java:62)
linkahead | at org.caosdb.server.entity.Entity.setRole(Entity.java:348)
linkahead | at org.caosdb.server.entity.Entity.parseSparseEntity(Entity.java:975)
linkahead | at org.caosdb.server.database.DatabaseUtils.parseFromSparseEntities(DatabaseUtils.java:140)
linkahead | at org.caosdb.server.database.backend.transaction.RetrieveSparseEntity.process(RetrieveSparseEntity.java:78)
linkahead | at org.caosdb.server.database.backend.transaction.RetrieveSparseEntity.process(RetrieveSparseEntity.java:38)
linkahead | at org.caosdb.server.database.CacheableBackendTransaction.execute(CacheableBackendTransaction.java:47)
linkahead | at org.caosdb.server.database.BackendTransaction.execute(BackendTransaction.java:239)
linkahead | at org.caosdb.server.database.backend.transaction.RetrieveFullEntityTransaction.retrieveFullEntity(RetrieveFullEntityTransaction.java:107)
linkahead | at org.caosdb.server.database.backend.transaction.RetrieveFullEntityTransaction.retrieveFullEntitiesInContainer(RetrieveFullEntityTransaction.java:87)
linkahead | at org.caosdb.server.database.backend.transaction.RetrieveFullEntityTransaction.execute(RetrieveFullEntityTransaction.java:76)
linkahead | at org.caosdb.server.database.BackendTransaction.executeTransaction(BackendTransaction.java:152)
linkahead | at org.caosdb.server.transaction.TransactionInterface.execute(TransactionInterface.java:49)
linkahead | at org.caosdb.server.transaction.Retrieve.retrieveFullEntities(Retrieve.java:145)
linkahead | at org.caosdb.server.transaction.Retrieve.transaction(Retrieve.java:140)
linkahead | at org.caosdb.server.transaction.Transaction.execute(Transaction.java:197)
linkahead | at org.caosdb.server.resource.transaction.RetrieveEntityResource.httpGetInChildClass(RetrieveEntityResource.java:86)
linkahead | at org.caosdb.server.resource.AbstractCaosDBServerResource.httpGet(AbstractCaosDBServerResource.java:239)
linkahead | at jdk.internal.reflect.GeneratedMethodAccessor4.invoke(Unknown Source)
linkahead | at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
linkahead | at java.base/java.lang.reflect.Method.invoke(Method.java:566)
linkahead | at org.restlet.resource.ServerResource.doHandle(ServerResource.java:511)
linkahead | at org.restlet.resource.ServerResource.get(ServerResource.java:723)
linkahead | at org.restlet.resource.ServerResource.doHandle(ServerResource.java:603)
linkahead | at org.restlet.resource.ServerResource.doNegotiatedHandle(ServerResource.java:662)
linkahead | at org.restlet.resource.ServerResource.doConditionalHandle(ServerResource.java:348)
linkahead | at org.restlet.resource.ServerResource.handle(ServerResource.java:1020)
linkahead | at org.restlet.resource.Finder.handle(Finder.java:236)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Router.doHandle(Router.java:422)
linkahead | at org.restlet.routing.Router.handle(Router.java:641)
linkahead | at org.caosdb.server.CaosDBServer$1.handle(CaosDBServer.java:560)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Router.doHandle(Router.java:422)
linkahead | at org.restlet.routing.Router.handle(Router.java:641)
linkahead | at org.caosdb.server.CaosDBServer$2.handle(CaosDBServer.java:578)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)
linkahead | at org.restlet.engine.application.ApplicationHelper.handle(ApplicationHelper.java:77)
linkahead | at org.restlet.Application.handle(Application.java:385)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Router.doHandle(Router.java:422)
linkahead | at org.restlet.routing.Router.handle(Router.java:641)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Router.doHandle(Router.java:422)
linkahead | at org.restlet.routing.Router.handle(Router.java:641)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.engine.application.StatusFilter.doHandle(StatusFilter.java:140)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.routing.Filter.doHandle(Filter.java:150)
linkahead | at org.restlet.routing.Filter.handle(Filter.java:197)
linkahead | at org.restlet.engine.CompositeHelper.handle(CompositeHelper.java:202)
linkahead | at org.restlet.Component.handle(Component.java:408)
linkahead | at org.caosdb.server.CaosDBComponent.handle(CaosDBServer.java:894)
linkahead | at org.restlet.Server.handle(Server.java:507)
linkahead | at org.restlet.engine.connector.ServerHelper.handle(ServerHelper.java:63)
linkahead | at org.restlet.engine.adapter.HttpServerHelper.handle(HttpServerHelper.java:143)
linkahead | at org.restlet.ext.jetty.JettyServerHelper$WrappedServer.handle(JettyServerHelper.java:237)
linkahead | at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:352)
linkahead | at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
linkahead | at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:281)
linkahead | at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
linkahead | at org.eclipse.jetty.io.ssl.SslConnection.onFillable(SslConnection.java:291)
linkahead | at org.eclipse.jetty.io.ssl.SslConnection$3.succeeded(SslConnection.java:151)
linkahead | at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:102)
linkahead | at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
linkahead | at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
linkahead | at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
linkahead | at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
linkahead | at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
linkahead | at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
linkahead | at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:762)
linkahead | at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:680)
linkahead | at java.base/java.lang.Thread.run(Thread.java:829)
linkahead | UNKNOWN ERROR
Specifications
- Version:
- Server: dev
- PyLib: dev
- Platform: any