Как правильно работать с атрибутами устройства?
Есть вот такой код:
Код:
Map<Integer, EntityAttr> deviceAttr = inetDevice.getEntityAttributes();
EntityAttrText eSVLAN = (EntityAttrText) deviceAttr.get(4);
if (eSVLAN == null){
eSVLAN = new EntityAttrText();
}
eSVLAN.setValue(String.valueOf(SVLAN));
deviceAttr.put(4, eSVLAN);
EntityAttrText eCVLAN = (EntityAttrText) deviceAttr.get(5);
if (eCVLAN == null){
eCVLAN = new EntityAttrText();
}
eCVLAN.setValue(String.valueOf(CVLAN_START + "-" + CVLAN_END));
deviceAttr.put(5, eCVLAN);
inetDevice.setEntityAttributes(deviceAttr);
дальше вызываем:
Код:
wsDevice.inetDeviceUpdate(inetDevice, true);
и получаем:
Код:
java.lang.NullPointerException
at ru.bitel.oss.kernel.entity.server.bean.AbstractEntityAttrDao.updateEntityAttributes(AbstractEntityAttrDao.java:454)
at ru.bitel.oss.kernel.entity.server.bean.AbstractEntityDao.update(AbstractEntityDao.java:155)
at ru.bitel.oss.systems.inventory.resource.server.bean.DeviceDao.update(DeviceDao.java:148)
at ru.bitel.bgbilling.modules.inet.api.server.bean.InvDeviceDao.update(InvDeviceDao.java:72)
at ru.bitel.bgbilling.modules.inet.api.server.bean.InvDeviceDao.update(InvDeviceDao.java:14)
at ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.deviceUpdate(InetDeviceServiceImpl.java:251)
at ru.bitel.bgbilling.modules.inet.api.server.service.InetDeviceServiceImpl.inetDeviceUpdate(InetDeviceServiceImpl.java:495)
at ru.gigacom.inet.dyn.convert.FromMiscToIPoE.updateDevice(FromMiscToIPoE.java:620) at ru.gigacom.inet.dyn.convert.FromMiscToIPoE.execute(FromMiscToIPoE.java:197)
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:497)
at ru.bitel.bgbilling.kernel.dynamic.server.DynamicCodeServiceImpl.run(DynamicCodeServiceImpl.java:330)
at sun.reflect.GeneratedMethodAccessor420.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:497)
at ru.bitel.bgbilling.kernel.container.service.server.ServiceInfo.invoke(ServiceInfo.java:101)
at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke0(AbstractJaxWsHandler.java:220)
at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.access$000(AbstractJaxWsHandler.java:47)
at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$1.run(AbstractJaxWsHandler.java:267)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.Subject.doAs(Subject.java:422)
at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler.invoke(AbstractJaxWsHandler.java:261)
at ru.bitel.bgbilling.kernel.container.ws.server.JaxWsHandler.invoke(JaxWsHandler.java:315)
at ru.bitel.bgbilling.kernel.container.ws.server.AbstractJaxWsHandler$ServiceInstanceResolver$1.invoke(AbstractJaxWsHandler.java:366)
at com.sun.xml.ws.server.InvokerTube$2.invoke(InvokerTube.java:150)
at com.sun.xml.ws.server.sei.EndpointMethodHandler.invoke(EndpointMethodHandler.java:261)
at com.sun.xml.ws.server.sei.SEIInvokerTube.processRequest(SEIInvokerTube.java:100)
at com.sun.xml.ws.api.pipe.Fiber.__doRun(Fiber.java:641)
at com.sun.xml.ws.api.pipe.Fiber._doRun(Fiber.java:600)
at com.sun.xml.ws.api.pipe.Fiber.doRun(Fiber.java:585)
at com.sun.xml.ws.api.pipe.Fiber.runSync(Fiber.java:482)
at com.sun.xml.ws.server.WSEndpointImpl$2.process(WSEndpointImpl.java:314)
at com.sun.xml.ws.transport.http.HttpAdapter$HttpToolkit.handle(HttpAdapter.java:608)
at com.sun.xml.ws.transport.http.HttpAdapter.handle(HttpAdapter.java:259)
at com.sun.xml.ws.transport.http.servlet.ServletAdapter.handle(ServletAdapter.java:162)
at ru.bitel.bgbilling.kernel.container.ws.server.JaxWSAdapter.handle(JaxWSAdapter.java:290)
at bitel.billing.server.Executer.doPost(SourceFile:163)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:646)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:220)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:504)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:950)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:170)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:421)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1074)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:611)
at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:314)
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)