faq 89260060 - matsim-org/matsim-code-examples GitHub Wiki
by Theresa Thunig on 2016-10-20 13:59:00
Camila Feliciano asked on Okt 20, 2016:
I was running a simulation with signals and got another error. Can you help me again?
2016-10-19 16:43:45,694 ERROR MatsimRuntimeModifications:60 ERROR --- This is an unexpected shutdown!
2016-10-19 16:43:45,694 ERROR MatsimRuntimeModifications:63 Shutdown possibly caused by the following Exception:
com.google.inject.ProvisionException: Unable to provision, see the following errors:
1) Error in custom provider, java.lang.NullPointerException
at
org.matsim.contrib.signals.controler.SignalsModule.provideSignalSystemsManager(SignalsModule.java:47)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.matsim.core.controler.AbstractModule$4 ->
com.google.inject.util.Modules$OverrideModule ->
org.matsim.core.controler.AbstractModule$4 ->
com.google.inject.util.Modules$OverrideModule ->
org.matsim.contrib.signals.controler.SignalsModule)
while locating org.matsim.contrib.signals.model.SignalSystemsManager
for parameter 0 at org.matsim.contrib.signals.controler.SignalsModule.provideQSimSignalEngine(SignalsModule.java:54)
at
org.matsim.contrib.signals.controler.SignalsModule.provideQSimSignalEngine(SignalsModule.java:54)
(via modules: com.google.inject.util.Modules$CombinedModule ->
com.google.inject.util.Modules$CombinedModule ->
org.matsim.core.controler.AbstractModule$4 ->
com.google.inject.util.Modules$OverrideModule ->
org.matsim.core.controler.AbstractModule$4 ->
com.google.inject.util.Modules$OverrideModule ->
org.matsim.contrib.signals.controler.SignalsModule)
while locating org.matsim.contrib.signals.mobsim.QSimSignalEngine
while locating
org.matsim.core.mobsim.framework.listeners.MobsimListener annotated with
@com.google.inject.multibindings.Element(setName=,uniqueId=65,
type=MULTIBINDER, keyType=)
1 error
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1025)
at org.matsim.core.controler.NewControler.runMobSim(NewControler.java:117)
at org.matsim.core.controler.AbstractController$7.run(AbstractController.java:203)
at org.matsim.core.controler.AbstractController.iterationStep(AbstractController.java:235)
at org.matsim.core.controler.AbstractController.mobsim(AbstractController.java:199)
at org.matsim.core.controler.AbstractController.iteration(AbstractController.java:158)
at org.matsim.core.controler.AbstractController.doIterations(AbstractController.java:125)
at org.matsim.core.controler.AbstractController.access$000(AbstractController.java:30)
at org.matsim.core.controler.AbstractController$1.run(AbstractController.java:95)
at org.matsim.core.controler.MatsimRuntimeModifications.run(MatsimRuntimeModifications.java:48)
at org.matsim.core.controler.MatsimRuntimeModifications.run(MatsimRuntimeModifications.java:31)
at org.matsim.core.controler.AbstractController.run(AbstractController.java:103)
at org.matsim.core.controler.NewControler.run(NewControler.java:79)
at org.matsim.core.controler.Controler.run(Controler.java:190)
at signals.RunJveSignals.main(RunJveSignals.java:60)
Caused by: java.lang.NullPointerException
at org.matsim.contrib.signals.builder.FromDataBuilder.createAndAddSignalSystemControllerFromData(FromDataBuilder.java:104)
at org.matsim.contrib.signals.builder.FromDataBuilder.createAndInitializeSignalSystemsManager(FromDataBuilder.java:147)
at org.matsim.contrib.signals.controler.SignalsModule.provideSignalSystemsManager(SignalsModule.java:48)
at org.matsim.contrib.signals.controler.SignalsModule$$FastClassByGuice$$5c4c9e2e.invoke(<generated>)
at com.google.inject.internal.ProviderMethod$FastClassProviderMethod.doProvision(ProviderMethod.java:272)
at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:172)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1103)
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:104)
at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:104)
at com.google.inject.spi.ProviderLookup$1.get(ProviderLookup.java:104)
at com.google.inject.internal.ProviderMethod.get(ProviderMethod.java:167)
at com.google.inject.internal.ProviderInternalFactory.provision(ProviderInternalFactory.java:81)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.provision(InternalFactoryToInitializableAdapter.java:53)
at com.google.inject.internal.ProviderInternalFactory.circularGet(ProviderInternalFactory.java:61)
at com.google.inject.internal.InternalFactoryToInitializableAdapter.get(InternalFactoryToInitializableAdapter.java:45)
at com.google.inject.internal.FactoryProxy.get(FactoryProxy.java:56)
at com.google.inject.internal.InjectorImpl$2$1.call(InjectorImpl.java:1016)
at com.google.inject.internal.InjectorImpl.callInContext(InjectorImpl.java:1092)
at com.google.inject.internal.InjectorImpl$2.get(InjectorImpl.java:1012)
... 14 more
by Theresa Thunig on 2016-10-20 14:03:36
I guess you forgot the line scenario.addScenarioElement(...) in your controler.
Or, if you have the line there, you do not use the scenario where you add the element: Do you create your controler by new Controler(scenario) as it is shown e.g. in RunSignalSystemsExample?
Please let me know if it works.
Theresa
by Theresa Thunig on 2016-10-20 20:52:46
Dear Camila,
could it be that you define a signal system ID in your signal system file for which you do not give a signal control in your signal control file?
Can you please attach (per drag and drop) your signal input files if this does not solve the problem?
Cheers,
Theresa