Description
When calling DevicesAPI.create_device() with the following body:
{
"uri": "",
"rdf_type": "vocabulary:Actuator",
"name": "Conveyor_NPECGreenhouse_compartment_1",
"brand": "SMO",
"constructor_model": "",
"serial_number": "",
"person_in_charge": "os-usr:rick.van-de-zedde",
"start_up": "2021-05-01",
"removal": "",
"relations": [
{
"property": "",
"value": ""
}
],
"description": "Conveyor in NPEC Greenhouse, compartment 1",
"metadata": {}
},
An error occurs like this:
"result" : {
"title" : "Unexpected internal error - java.lang.NullPointerException",
"message" : null,
"stack" : [ "org.opensilex.core.device.api.DeviceAPI.check(DeviceAPI.java:353)",
"org.opensilex.core.device.api.DeviceAPI.createDevice(DeviceAPI.java:154)" ],
"fullstack" : [ "org.opensilex.core.device.api.DeviceAPI.check(DeviceAPI.java:353)",
"org.opensilex.core.device.api.DeviceAPI.createDevice(DeviceAPI.java:154)",
"java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)",
"java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)",
"java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)",
"java.base/java.lang.reflect.Method.invoke(Method.java:566)",
"org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory.lambda$static$0(ResourceMethodInvocationHandlerFactory.java:52)",
"org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:124)",
"org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:167)",
"org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$ResponseOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:176)",
"org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:79)",
"org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:469)",
"org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:391)",
"org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:80)",
"org.glassfish.jersey.server.ServerRuntime$1.run(ServerRuntime.java:255)",
"org.glassfish.jersey.internal.Errors$1.call(Errors.java:248)",
"org.glassfish.jersey.internal.Errors$1.call(Errors.java:244)",
"org.glassfish.jersey.internal.Errors.process(Errors.java:292)",
"org.glassfish.jersey.internal.Errors.process(Errors.java:274)",
"org.glassfish.jersey.internal.Errors.process(Errors.java:244)",
"org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:265)",
"org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:234)",
"org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:680)",
"org.glassfish.jersey.servlet.WebComponent.serviceImpl(WebComponent.java:394)",
"org.glassfish.jersey.servlet.WebComponent.service(WebComponent.java:346)",
"org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:366)",
"org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:319)",
"org.glassfish.jersey.servlet.ServletContainer.service(ServletContainer.java:205)",
"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)",
"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)",
"org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)",
"org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)",
"org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)",
"org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)",
"org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:97)",
"org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:542)",
"org.apache.catalina.valves.StuckThreadDetectionValve.invoke(StuckThreadDetectionValve.java:206)",
"org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:295)",
"org.apapache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)",
"org.apache.catalina.valves.rewrite.RewriteValve.invoke(RewriteValve.java:552)",
"org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:143)",
"org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)",
"org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:78)",
"org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)",
"org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:374)",
"org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)",
"org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:868)",
"org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1590)",
"org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)",
"java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)",
"java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)",
"org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)",
"java.base/java.lang.Thread.run(Thread.java:829)" ]
}
}
Cause is the empty entry in the relations, so user-input error, but the error-handling could be enhanced.