- input: GET http://localhost:5009/walk/swh:1:cnt:000070db8360fe14a0291021bc53e59b1fd0282d/snp
- expected output: empty path (note that i've requested an impossible path, from an existing cnt to a snapshot node, but i have not specified ?direction=backward; adding that makes the request works fine)
- actual output: internal server error with the traceback below on the server's stderr:
[qtp1648001170-13] WARN io.javalin.Javalin - Uncaught exception java.lang.NullPointerException at org.softwareheritage.graph.Endpoint.convertNodesToSwhPath(Endpoint.java:59) at org.softwareheritage.graph.Endpoint.walk(Endpoint.java:135) at org.softwareheritage.graph.App.lambda$main$10(App.java:115) at io.javalin.core.security.SecurityUtil.noopAccessManager(SecurityUtil.kt:22) at io.javalin.http.JavalinServlet$addHandler$protectedHandler$1.handle(JavalinServlet.kt:139) at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:45) at io.javalin.http.JavalinServlet$service$2$1.invoke(JavalinServlet.kt:25) at io.javalin.http.JavalinServlet$service$1.invoke(JavalinServlet.kt:146) at io.javalin.http.JavalinServlet$service$2.invoke(JavalinServlet.kt:40) at io.javalin.http.JavalinServlet.service(JavalinServlet.kt:98) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:873) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:542) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1700) at org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255) at io.javalin.core.JavalinServer$start$httpHandler$1.doHandle(JavalinServer.kt:47) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:480) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1667) at org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1247) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144) at org.eclipse.jetty.server.handler.HandlerList.handle(HandlerList.java:61) at org.eclipse.jetty.server.handler.StatisticsHandler.handle(StatisticsHandler.java:174) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132) at org.eclipse.jetty.server.Server.handle(Server.java:505) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:370) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:267) at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305) at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103) at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:117) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168) at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126) at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:786) at org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:743) at java.base/java.lang.Thread.run(Thread.java:835)