You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
If the firmware is created with one model and later on model is changed, a firmware path doesn't reflect this change and firmware can not be deleted anymore.
For example:
Create FW with manufacturer=LAGY and model=Landis_and_Gyr-T_E360_CDMA_SMR5.1_energy_meter
new path should be: /var/www/html/firmware/LAGY/E360_CD2D_GPRS_SMR5/test-firmware.fw
Stacktrace:
2020-06-29 10:28:34.506] [dev-box] [ajp-nio-8009-exec-15] INFO o.o.a.w.e.WebServiceMonitorInterceptor@printSoapMessage:338 - soap message: <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/"><SOAP-ENV:Header><OrganisationIdentification xmlns="http://www.op
ensmartgridplatform.org/schemas/common">test-org</OrganisationIdentification><ApplicationName xmlns="http://www.opensmartgridplatform.org/schemas/common">client-application</ApplicationName><UserName xmlns="http://www.opensmartgridplatform.org/schemas/common">client-application-use
r</UserName></SOAP-ENV:Header><SOAP-ENV:Body><ns2:RemoveFirmwareRequest xmlns:ns2="http://www.opensmartgridplatform.org/schemas/common/firmwaremanagement/2014/10" xmlns:ns3="http://www.opensmartgridplatform.org/schemas/common/2014/10" xmlns:ns4="http://www.opensmartgridplatform.org
/schemas/devicemanagement/2014/10"><ns2:Id>4</ns2:Id></ns2:RemoveFirmwareRequest></SOAP-ENV:Body></SOAP-ENV:Envelope>
2020-06-29 10:28:34.507] [dev-box] [ajp-nio-8009-exec-15] INFO o.o.a.w.c.e.FirmwareManagementEndpoint@removedFirmware:814 - Removing firmware with id:4.
2020-06-29 10:28:34.509] [dev-box] [ajp-nio-8009-exec-15] INFO o.o.d.core.services.SecurityService@checkAuthorization:84 - Organisation test-org is allowed function REMOVE_FIRMWARE
2020-06-29 10:28:34.514] [dev-box] [ajp-nio-8009-exec-15] INFO o.o.a.w.c.a.s.DeviceManagementService@supplyfirmwareFileNotFoundException:715 - FirmwareFile not found for id 4.
2020-06-29 10:28:34.518] [dev-box] [ajp-nio-8009-exec-15] ERROR o.o.a.w.c.e.FirmwareManagementEndpoint@removedFirmware:832 - Exception: [null, 4, test-org] while removing firmware: {} for organisation {}
java.lang.NullPointerException: null
at org.opensmartgridplatform.adapter.ws.core.application.services.FirmwareManagementService.removePhysicalFirmwareFile(FirmwareManagementService.java:802)
at org.opensmartgridplatform.adapter.ws.core.application.services.FirmwareManagementService.removeFirmware(FirmwareManagementService.java:702)
at org.opensmartgridplatform.adapter.ws.core.application.services.FirmwareManagementService$$FastClassBySpringCGLIB$$b1a2241.invoke(<generated>)
at org.springframework.cglib.proxy.MethodProxy.invoke(MethodProxy.java:218)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.invokeJoinpoint(CglibAopProxy.java:771)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:163)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.validation.beanvalidation.MethodValidationInterceptor.invoke(MethodValidationInterceptor.java:120)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction(TransactionAspectSupport.java:366)
at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:118)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:186)
at org.springframework.aop.framework.CglibAopProxy$CglibMethodInvocation.proceed(CglibAopProxy.java:749)
at org.springframework.aop.framework.CglibAopProxy$DynamicAdvisedInterceptor.intercept(CglibAopProxy.java:691)
at org.opensmartgridplatform.adapter.ws.core.application.services.FirmwareManagementService$$EnhancerBySpringCGLIB$$410b0d99.removeFirmware(<generated>)
at org.opensmartgridplatform.adapter.ws.core.endpoints.FirmwareManagementEndpoint.removedFirmware(FirmwareManagementEndpoint.java:818)
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.ws.server.endpoint.MethodEndpoint.invoke(MethodEndpoint.java:134)
at org.springframework.ws.server.endpoint.adapter.DefaultMethodEndpointAdapter.invokeInternal(DefaultMethodEndpointAdapter.java:291)
at org.springframework.ws.server.endpoint.adapter.AbstractMethodEndpointAdapter.invoke(AbstractMethodEndpointAdapter.java:55)
at org.springframework.ws.server.MessageDispatcher.dispatch(MessageDispatcher.java:236)
at org.springframework.ws.server.MessageDispatcher.receive(MessageDispatcher.java:176)
at org.springframework.ws.transport.support.WebServiceMessageReceiverObjectSupport.handleConnection(WebServiceMessageReceiverObjectSupport.java:89)
at org.springframework.ws.transport.http.WebServiceMessageReceiverHandlerAdapter.handle(WebServiceMessageReceiverHandlerAdapter.java:61)
at org.springframework.ws.transport.http.MessageDispatcherServlet.doService(MessageDispatcherServlet.java:293)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:1006)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:909)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:660)
at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:883)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:741)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:231)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:53)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:193)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:166)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:202)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:96)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:541)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:139)
at psiprobe.Tomcat90AgentValve.invoke(Tomcat90AgentValve.java:35)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:92)
at org.apache.catalina.valves.AbstractAccessLogValve.invoke(AbstractAccessLogValve.java:678)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:74)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:343)
at org.apache.coyote.ajp.AjpProcessor.service(AjpProcessor.java:399)
at org.apache.coyote.AbstractProcessorLight.process(AbstractProcessorLight.java:65)
at org.apache.coyote.AbstractProtocol$ConnectionHandler.process(AbstractProtocol.java:860)
at org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun(NioEndpoint.java:1598)
at org.apache.tomcat.util.net.SocketProcessorBase.run(SocketProcessorBase.java:49)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:748)
The text was updated successfully, but these errors were encountered:
Thank you for reporting this issue.
I found that updating the device model can lead to the problem you describe.
There are 2 solutions I can think of:
prevent changing the device model when firmware files are present for the device model
(which could be similar to the implementation of the checks in the function org.opensmartgridplatform.adapter.ws.core.application.services.FirmwareManagementService#removeDeviceModel(String, String, String))
updating the folder on the file system
The first option is the best fit for the behavior of our client application which manages manufacturers, device models and firmware files. I will discuss this issue with the team.
If the firmware is created with one model and later on model is changed, a firmware path doesn't reflect this change and firmware can not be deleted anymore.
For example:
Create FW with manufacturer=LAGY and model=Landis_and_Gyr-T_E360_CDMA_SMR5.1_energy_meter
Update FW with model=E360 CD2D GPRS SMR5
Stacktrace:
The text was updated successfully, but these errors were encountered: