Exception while using Custom Hard Constraints

I am running VRP for 5 vehicles with following constraints and logic

    VehicleRoutingAlgorithmBuilder algoBuilder = new VehicleRoutingAlgorithmBuilder(problem, algoConfig);
            algoBuilder.addCoreConstraints();
            algoBuilder.addDefaultCostCalculators();

            StateManager stateManager = new StateManager(problem);
            stateManager.updateSkillStates();
            stateManager.updateTimeWindowStates();
            stateManager.updateLoadStates();

            stateManager.addStateUpdater(new UpdateLocationsRouteActivity(stateManager));          

            ConstraintManager constraintManager = new ConstraintManager(problem, stateManager);
            constraintManager.addSkillsConstraint();
            constraintManager.addTimeWindowConstraint();
            constraintManager.addLoadConstraint();
            constraintManager.addConstraint(new RouteLocationConstraints(stateManager), Priority.CRITICAL);
           
            algoBuilder.setStateAndConstraintManager(stateManager, constraintManager);         

            VehicleRoutingAlgorithm algorithm = algoBuilder.build();
            algorithm.setPrematureAlgorithmTermination(new IterationWithoutImprovementTermination(100));

            Collection<VehicleRoutingProblemSolution> solutions = algorithm.searchSolutions();

-----------

    public class RouteLocationConstraints implements HardActivityConstraint {
    	private StateManager stateManager;

	public RouteLocationConstraints(StateManager stateManager) {
		this.stateManager = stateManager;
	}

	@Override
	public ConstraintsStatus fulfilled(JobInsertionContext insertionContext, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime) {
		VehicleRoute routeVisitingLocation = stateManager.getProblemState(stateManager.createStateId(newAct.getLocation().getId()), VehicleRoute.class);
		if (routeVisitingLocation == null) {
			return ConstraintsStatus.FULFILLED;
		} else {
			return routeVisitingLocation == insertionContext.getRoute() ? ConstraintsStatus.FULFILLED : ConstraintsStatus.NOT_FULFILLED_BREAK;
    		}
    	}
    }


    public class UpdateLocationsRouteActivity implements StateUpdater, ActivityVisitor {
    	private StateManager stateManager;
    	private VehicleRoute route;

    	public UpdateLocationsRouteActivity(StateManager stateManager) {
    		this.stateManager = stateManager;
    	}

    	@Override
    	public void begin(VehicleRoute inRoute) {
    		this.route = inRoute;
    	}

    	@Override
    	public void visit(TourActivity activity) {
    		stateManager.putProblemState(stateManager.createStateId(activity.getLocation().getId()), VehicleRoute.class, route);
    	}

    	@Override
    	public void finish() {
    	}

    }

I am stuck at following exception. Can anyone help me here?

    java.lang.NullPointerException  
   at jsprit.core.algorithm.VariablePlusFixedSolutionCostCalculatorFactory$1.getCosts(VariablePlusFixedSolutionCostCalculatorFactory.java:51)
    at jsprit.core.algorithm.InsertionInitialSolutionFactory.createSolution(InsertionInitialSolutionFactory.java:58)
    at jsprit.core.algorithm.PrettyAlgorithmBuilder$2.informAlgorithmStarts(PrettyAlgorithmBuilder.java:144)
    at sprit.core.algorithm.listener.VehicleRoutingAlgorithmListeners.algorithmStarts(VehicleRoutingAlgorithmListeners.java:127)
    at jsprit.core.algorithm.VehicleRoutingAlgorithm.algorithmStarts(VehicleRoutingAlgorithm.java:296)
    at jsprit.core.algorithm.VehicleRoutingAlgorithm.searchSolutions(VehicleRoutingAlgorithm.java:196)
    at com.loginext.algorithm.engine.VRPEngine.execute(VRPEngine.java:125)
    at com.loginext.algorithm.processor.AlgoInputProcessor.execute(AlgoInputProcessor.java:151)
    at com.loginext.algorithm.controller.DeliveryPlanningController.deliveryPlanner(DeliveryPlanningController.java:100)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:498)
    at org.springframework.web.method.support.InvocableHandlerMethod.doInvoke(InvocableHandlerMethod.java:221)
    at org.springframework.web.method.support.InvocableHandlerMethod.invokeForRequest(InvocableHandlerMethod.java:136)
    at org.springframework.web.servlet.mvc.method.annotation.ServletInvocableHandlerMethod.invokeAndHandle(ServletInvocableHandlerMethod.java:110)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.invokeHandlerMethod(RequestMappingHandlerAdapter.java:817)
    at org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter.handleInternal(RequestMappingHandlerAdapter.java:731)
    at org.springframework.web.servlet.mvc.method.AbstractHandlerMethodAdapter.handle(AbstractHandlerMethodAdapter.java:85)
    at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:959)
    at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:893)
    at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:968)
    at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:870)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:648)
    at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:844)
    at javax.servlet.http.HttpServlet.service(HttpServlet.java:729)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:292)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:240)
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:207)
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:212)
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:106)
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:141)
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:79)
    at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:616)
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:88)
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:522)
    at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1095)
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:672)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1502)
    at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run(NioEndpoint.java:1458)
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
    at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
    at java.lang.Thread.run(Thread.java:745)