Bacnet stopped reading
-
Hey hey, I have three devices on a site which stopped reading over Bacnet, all on the same day. I pulled some logs off of one device and this what happened on that day.
ERROR 2018-05-02 20:00:51,787 (com.serotonin.bacnet4j.event.DefaultExceptionListener.receivedException:48) -
com.serotonin.bacnet4j.exception.ReflectionException: java.lang.reflect.InvocationTargetException
at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:214)
at com.serotonin.bacnet4j.service.unconfirmed.IAmRequest.<init>(IAmRequest.java:108)
at com.serotonin.bacnet4j.service.unconfirmed.UnconfirmedRequestService.createUnconfirmedRequestService(UnconfirmedRequestService.java:74)
at com.serotonin.bacnet4j.apdu.UnconfirmedRequest.parseServiceData(UnconfirmedRequest.java:91)
at com.serotonin.bacnet4j.transport.DefaultTransport.receiveAPDU(DefaultTransport.java:538)
at com.serotonin.bacnet4j.transport.DefaultTransport.receiveImpl(DefaultTransport.java:463)
at com.serotonin.bacnet4j.transport.DefaultTransport.run(DefaultTransport.java:404)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedConstructorAccessor11.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:202)
... 7 more
Caused by: java.lang.ArrayIndexOutOfBoundsException
ERROR 2018-05-02 20:26:55,329 (com.serotonin.bacnet4j.event.DefaultExceptionListener.receivedException:48) -
com.serotonin.bacnet4j.exception.ReflectionException: java.lang.reflect.InvocationTargetException
at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:214)
at com.serotonin.bacnet4j.service.unconfirmed.IAmRequest.<init>(IAmRequest.java:108)
at com.serotonin.bacnet4j.service.unconfirmed.UnconfirmedRequestService.createUnconfirmedRequestService(UnconfirmedRequestService.java:74)
at com.serotonin.bacnet4j.apdu.UnconfirmedRequest.parseServiceData(UnconfirmedRequest.java:91)
at com.serotonin.bacnet4j.transport.DefaultTransport.receiveAPDU(DefaultTransport.java:538)
at com.serotonin.bacnet4j.transport.DefaultTransport.receiveImpl(DefaultTransport.java:463)
at com.serotonin.bacnet4j.transport.DefaultTransport.run(DefaultTransport.java:404)
at java.lang.Thread.run(Thread.java:745)
Caused by: java.lang.reflect.InvocationTargetException
at sun.reflect.GeneratedConstructorAccessor11.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:202)
... 7 more
Caused by: java.lang.ArrayIndexOutOfBoundsExceptionAny ideas what that might be? Array index is interesting. The solution is just to restart the data source.
-
Just to add, all of the devices started talking to their Bacnet slaves as soon as the data source was restarted. I would really like to get to a point where this could recover on its own.
-
@psysak I'll be working in the BACnet4J library later this week or early next. This looks like a potential bug so I'll see if I can fix it up for you while I'm in there.
-
@psysak It looks like you are using an older version of the BACnet4J library, I would suggest using the latest version 4.1.6 and see if you still have the problem. If you do then re-post the new stack trace so I can see how it fits in the latest code. I'm working on the library this week so if you can get the me the info before I move on then I'll make a fix if something is broken.