I built a minimal graph with Georgia's OSM extract the MARTA and GRTA as well as a private Emory GTFS feed and tested against OTP 1.5.x. It also throws an exception there. The process doesn't exit and appears to handle further incomng requests unlike my experience with the extra-large instance we use in production. Here's the Stack Trace from 1.5:
2:49:35.380 ERROR (PlannerError.java:48) exception planning trip:
java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 2
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[na:na]
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[na:na]
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[na:na]
at java.base/java.util.Objects.checkIndex(Objects.java:372) ~[na:na]
at java.base/java.util.ArrayList.get(ArrayList.java:459) ~[na:na]
at org.opentripplanner.routing.edgetype.Timetable.getTripTimes(Timetable.java:437) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.edgetype.TripPattern.getResolvedTripTimes(TripPattern.java:277) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.edgetype.TripPattern.getResolvedTripTimes(TripPattern.java:270) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.edgetype.PatternInterlineDwell.traverse(PatternInterlineDwell.java:142) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.algorithm.AStar.iterate(AStar.java:172) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.algorithm.AStar.runSearch(AStar.java:249) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.algorithm.AStar.getShortestPathTree(AStar.java:297) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.algorithm.AStar.getShortestPathTree(AStar.java:84) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.impl.GraphPathFinder.getPaths(GraphPathFinder.java:169) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.impl.GraphPathFinder.getGraphPathsConsideringIntermediates(GraphPathFinder.java:468) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.impl.GraphPathFinder.graphPathFinderEntryPoint(GraphPathFinder.java:370) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.api.resource.PlannerResource.plan(PlannerResource.java:68) ~[otp-1.5.0-shaded.jar:1.1]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:308) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:291) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1140) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:375) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) ~[otp-1.5.0-shaded.jar:1.1]
at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]
12:49:35.383 WARN (PlannerResource.java:77) Error while planning path:
java.lang.IndexOutOfBoundsException: Index 2 out of bounds for length 2
at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64) ~[na:na]
at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70) ~[na:na]
at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248) ~[na:na]
at java.base/java.util.Objects.checkIndex(Objects.java:372) ~[na:na]
at java.base/java.util.ArrayList.get(ArrayList.java:459) ~[na:na]
at org.opentripplanner.routing.edgetype.Timetable.getTripTimes(Timetable.java:437) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.edgetype.TripPattern.getResolvedTripTimes(TripPattern.java:277) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.edgetype.TripPattern.getResolvedTripTimes(TripPattern.java:270) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.edgetype.PatternInterlineDwell.traverse(PatternInterlineDwell.java:142) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.algorithm.AStar.iterate(AStar.java:172) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.algorithm.AStar.runSearch(AStar.java:249) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.algorithm.AStar.getShortestPathTree(AStar.java:297) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.algorithm.AStar.getShortestPathTree(AStar.java:84) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.impl.GraphPathFinder.getPaths(GraphPathFinder.java:169) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.impl.GraphPathFinder.getGraphPathsConsideringIntermediates(GraphPathFinder.java:468) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.routing.impl.GraphPathFinder.graphPathFinderEntryPoint(GraphPathFinder.java:370) ~[otp-1.5.0-shaded.jar:1.1]
at org.opentripplanner.api.resource.PlannerResource.plan(PlannerResource.java:68) ~[otp-1.5.0-shaded.jar:1.1]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[na:na]
at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[na:na]
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:na]
at java.base/java.lang.reflect.Method.invoke(Method.java:566) ~[na:na]
at org.glassfish.jersey.server.model.internal.ResourceMethodInvocationHandlerFactory$1.invoke(ResourceMethodInvocationHandlerFactory.java:81) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher$1.run(AbstractJavaResourceMethodDispatcher.java:144) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.invoke(AbstractJavaResourceMethodDispatcher.java:161) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.internal.JavaResourceMethodDispatcherProvider$TypeOutInvoker.doDispatch(JavaResourceMethodDispatcherProvider.java:205) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.internal.AbstractJavaResourceMethodDispatcher.dispatch(AbstractJavaResourceMethodDispatcher.java:99) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.invoke(ResourceMethodInvoker.java:389) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:347) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.model.ResourceMethodInvoker.apply(ResourceMethodInvoker.java:102) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.ServerRuntime$2.run(ServerRuntime.java:308) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:271) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors$1.call(Errors.java:267) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors.process(Errors.java:315) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors.process(Errors.java:297) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.internal.Errors.process(Errors.java:267) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.process.internal.RequestScope.runInScope(RequestScope.java:317) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.ServerRuntime.process(ServerRuntime.java:291) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.server.ApplicationHandler.handle(ApplicationHandler.java:1140) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.jersey.grizzly2.httpserver.GrizzlyHttpContainer.service(GrizzlyHttpContainer.java:375) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.grizzly.http.server.HttpHandler$1.run(HttpHandler.java:224) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565) ~[otp-1.5.0-shaded.jar:1.1]
at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545) ~[otp-1.5.0-shaded.jar:1.1]
at java.base/java.lang.Thread.run(Thread.java:829) ~[na:na]