IVCTool / IVCT_Framework

For IVCT Framework Developers. Core System for the IVCT (Integration, Verification and Certification Tool) for HLA Federates
Apache License 2.0
16 stars 4 forks source link

Stacktrace in IVCT GUI #213

Closed bergtwvd closed 4 years ago

bergtwvd commented 5 years ago

When I start the VTMaK composition under https://github.com/IVCTool/IVCT_Compositions/tree/master/ivct-vtmak I cannot change the connection string to (setqb RTI_tcpPort 4000) (setqb RTI_tcpForwarderAddr \"localhost\") for the SUT vrf. The value remains unchanged after save. When I look in the console I see the following stacktrace:

gui_1                     | 04-Jul-2019 20:57:00.255 INFO [main] org.apache.catalina.startup.Catalina.start Server startup in 49288 ms
gui_1                     | java.lang.NullPointerException
gui_1                     |     at nato.ivct.commander.CmdUpdateSUT.getBadgeUrls(CmdUpdateSUT.java:243)
gui_1                     |     at nato.ivct.commander.CmdUpdateSUT.extractResource(CmdUpdateSUT.java:289)
gui_1                     |     at nato.ivct.commander.CmdUpdateSUT.execute(CmdUpdateSUT.java:438)
gui_1                     |     at nato.ivct.gui.server.sut.SuTService.store(SuTService.java:261)
gui_1                     |     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
gui_1                     |     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
gui_1                     |     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
gui_1                     |     at java.lang.reflect.Method.invoke(Method.java:498)
gui_1                     |     at org.eclipse.scout.rt.shared.servicetunnel.ServiceUtility.invoke(ServiceUtility.java:55)
gui_1                     |     at org.eclipse.scout.rt.server.ServiceOperationInvoker.invokeInternal(ServiceOperationInvoker.java:97)
gui_1                     |     at org.eclipse.scout.rt.server.ServiceOperationInvoker.lambda$0(ServiceOperationInvoker.java:60)
gui_1                     |     at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:227)
gui_1                     |     at org.eclipse.scout.rt.platform.transaction.TransactionProcessor.runTxRequiresNew(TransactionProcessor.java:100)
gui_1                     |     at org.eclipse.scout.rt.platform.transaction.TransactionProcessor.intercept(TransactionProcessor.java:69)
gui_1                     |     at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:222)
gui_1                     |     at org.eclipse.scout.rt.platform.chain.callable.CallableChain.call(CallableChain.java:170)
gui_1                     |     at org.eclipse.scout.rt.platform.context.RunContext.call(RunContext.java:156)
gui_1                     |     at org.eclipse.scout.rt.server.ServiceOperationInvoker.invoke(ServiceOperationInvoker.java:60)
gui_1                     |     at org.eclipse.scout.rt.server.ServiceTunnelServlet.invokeService(ServiceTunnelServlet.java:194)
gui_1                     |     at org.eclipse.scout.rt.server.ServiceTunnelServlet.doPost(ServiceTunnelServlet.java:153)
gui_1                     |     at org.eclipse.scout.rt.server.ServiceTunnelServlet.lambda$1(ServiceTunnelServlet.java:114)
gui_1                     |     at org.eclipse.scout.rt.platform.util.concurrent.Callables.lambda$0(Callables.java:31)
gui_1                     |     at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:227)
gui_1                     |     at org.eclipse.scout.rt.platform.transaction.TransactionProcessor.runTxRequiresNew(TransactionProcessor.java:100)
gui_1                     |     at org.eclipse.scout.rt.platform.transaction.TransactionProcessor.intercept(TransactionProcessor.java:69)
gui_1                     |     at org.eclipse.scout.rt.platform.chain.callable.CallableChain$Chain.continueChain(CallableChain.java:222)
gui_1                     |     at org.eclipse.scout.rt.platform.chain.callable.CallableChain.call(CallableChain.java:170)
gui_1                     |     at org.eclipse.scout.rt.platform.context.RunContext.call(RunContext.java:156)
gui_1                     |     at org.eclipse.scout.rt.platform.context.RunContext.run(RunContext.java:123)
gui_1                     |     at org.eclipse.scout.rt.server.ServiceTunnelServlet.doPost(ServiceTunnelServlet.java:112)
gui_1                     |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:661)
gui_1                     |     at org.eclipse.scout.rt.server.commons.servlet.AbstractHttpServlet.access$0(AbstractHttpServlet.java:1)
gui_1                     |     at org.eclipse.scout.rt.server.commons.servlet.AbstractHttpServlet.wrap(AbstractHttpServlet.java:49)
gui_1                     |     at org.eclipse.scout.rt.server.commons.servlet.AbstractHttpServlet.service(AbstractHttpServlet.java:38)
gui_1                     |     at javax.servlet.http.HttpServlet.service(HttpServlet.java:742)
gui_1                     |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
gui_1                     |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
gui_1                     |     at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
gui_1                     |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
gui_1                     |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
gui_1                     |     at org.eclipse.scout.rt.server.commons.authentication.ServletFilterHelper.lambda$0(ServletFilterHelper.java:159)
gui_1                     |     at java.security.AccessController.doPrivileged(Native Method)
gui_1                     |     at javax.security.auth.Subject.doAs(Subject.java:422)
gui_1                     |     at org.eclipse.scout.rt.server.commons.authentication.ServletFilterHelper.continueChainAsSubject(ServletFilterHelper.java:155)
gui_1                     |     at org.eclipse.scout.rt.server.commons.authentication.ServiceTunnelAccessTokenAccessController.handle(ServiceTunnelAccessTokenAccessController.java:90)
gui_1                     |     at nato.ivct.gui.server.ServerServletFilter.doFilter(ServerServletFilter.java:50)
gui_1                     |     at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
gui_1                     |     at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
gui_1                     |     at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:199)
gui_1                     |     at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
gui_1                     |     at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:493)
gui_1                     |     at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)
gui_1                     |     at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:81)
gui_1                     |     at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:660)
gui_1                     |     at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:87)
gui_1                     |     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
gui_1                     |     at org.apache.coyote.http11.Http11Processor.service(Http11Processor.java:798)
gui_1                     |     at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:66)
gui_1                     |     at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:808)
gui_1                     |     at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1498)
gui_1                     |     at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
gui_1                     |     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
gui_1                     |     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
gui_1                     |     at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
gui_1                     |     at java.lang.Thread.run(Thread.java:748)
ducana commented 5 years ago

The problem seems to be that the call dir.listFiles(); returns a null pointer because the dir object did not point to a valid directory name. The null pointer is used without being tested causing the null pointer exception. The directory is determined by the value of IVCT_TS_HOME_ID + tsLibTimeFolder from the badge. The IVCT_TS_HOME_ID either contains a wrong value or it is overwritten due to the changes in SUT common parameter logic.

rhzg commented 4 years ago

cannot reproduce