Code-House / bacnet4j-wrapper

Simple facade for bacnet4j api.
GNU General Public License v3.0
48 stars 20 forks source link

Request for detailed exception root cause message for BacNetClientException trace #37

Open saransh14 opened 5 months ago

saransh14 commented 5 months ago

I'm using YABE simulator, and for Heater.status, I'm sometimes getting the BacNetClientException, but while looking at the exception payload I'm unable to identify the root cause of the failure for fetching the present value for the defined bacnet object. Is there any way by which I can identify the root cause of the problem for the failure for fetching the present value.

I'm attaching the snapshot of the captures stack trace for BacNetClientException but I'm unable to understand the reason of failure.

image
splatch commented 5 months ago

I've had a look on client code (BacNetClientBase) and all places there propagate exceptions. Even the Could not get property value message comes from such place: https://github.com/Code-House/bacnet4j-wrapper/blob/bacnet4j-wrapper-1.3.0-beta1/api/src/main/java/org/code_house/bacnet4j/wrapper/api/BacNetClientBase.java#L186

It is likely that you get timeout errors, have a look on BacNetClientException#getCause.

saransh14 commented 5 months ago

Still unable to track the root cause of the problem by looking onto the BacNetClientException#getCause I tracked down the stack trace and found the following:

image
splatch commented 5 months ago

Your cause is at the end - the ArrayIndexOutOfBoundsException. For some reason bacnet4j is loosing its mind reading BinaryPV value. Can you reproduce it in all cases?

saransh14 commented 5 months ago

I've observed this issue intermittently while reading value from YABE Simluator, for State.Heater object binaryValue:0 Can we look into these scenarios, and add the appropriate messages under DetailMessage so that it would enable user to easily identify the issue while looking at exception, and would also help in logging details for the exception caused.