Please Note This forum exists for community support for the Mango product family and the Radix IoT Platform. Although Radix IoT employees participate in this forum from time to time, there is no guarantee of a response to anything posted here, nor can Radix IoT, LLC guarantee the accuracy of any information expressed or conveyed. Specific project questions from customers with active support contracts are asked to send requests to support@radixiot.com.

Radix IoT Website Mango 3 Documentation Website Mango 4 Documentation Website

InvocationTargetException with eventenrolment, averaging, lifesafetyzone objects


  • Hi
    Sorry for my english. I am testing BACnet4J with BACnet Device Simulator 2.0 from http://www.scadaengine.com/software6.html.
    I have a problem with ReadAllAvailableProperties test. (I modified few lines of code to test it with remote device.)
    During the test when BACnet Device Simulator has one off these objects:
    EventEnrolment,
    Averaging,
    LifeSafetyZone;
    InvocationTargetException exception occure, for others objects it works fine.

    for object
    EventEnrolment

    exception:

    Send Broadcast WhoIsRequest() 
    DiscoveryTest iAmReceived
     waited for iAmReceived: 94 ms
    Start read properties
    Cleanup loopDevice
    Exception in thread "main" com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:168)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:55)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:213)
    	at com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyMultipleAck.<init>(ReadPropertyMultipleAck.java:50)
    	at com.serotonin.bacnet4j.service.acknowledgement.AcknowledgementService.createAcknowledgementService(AcknowledgementService.java:48)
    	at com.serotonin.bacnet4j.apdu.ComplexACK.parseServiceData(ComplexACK.java:191)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.waitForAck(IpMessageControl.java:671)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:300)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:280)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:237)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:425)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:415)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:408)
    	at com.serotonin.bacnet4j.LocalDevice.readProperties(LocalDevice.java:864)
    	at com.serotonin.bacnet4j.test.ReadAllAvailableProperties.printDevices(ReadAllAvailableProperties.java:180)
    	at com.serotonin.bacnet4j.test.ReadAllAvailableProperties.main(ReadAllAvailableProperties.java:220)
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:165)
    	... 15 more
    Caused by: com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:168)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:67)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:224)
    	at com.serotonin.bacnet4j.type.Encodable.readOptionalSequenceOf(Encodable.java:258)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult.<init>(ReadAccessResult.java:64)
    	... 20 more
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.GeneratedConstructorAccessor2.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:165)
    	... 24 more
    Caused by: com.serotonin.bacnet4j.exception.BACnetException: java.lang.NoSuchMethodException: com.serotonin.bacnet4j.type.eventParameter.EventParameter.<init>(com.serotonin.util.queue.ByteQueue)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:168)
    	at com.serotonin.bacnet4j.type.Encodable.readWrapped(Encodable.java:343)
    	at com.serotonin.bacnet4j.type.Encodable.readEncodable(Encodable.java:305)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult$Result.<init>(ReadAccessResult.java:124)
    	... 28 more
    Caused by: java.lang.NoSuchMethodException: com.serotonin.bacnet4j.type.eventParameter.EventParameter.<init>(com.serotonin.util.queue.ByteQueue)
    	at java.lang.Class.getConstructor0(Class.java:2678)
    	at java.lang.Class.getConstructor(Class.java:1629)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:165)
    	... 31 more
    

    last frame send from remote device (from wireshark):

    02004c4f4f500003ff393dbc080045000477142400008011d0b1a9fee4
    22a9fe1981bac0bac004635435810a045b010800140600000000000030030e
    0c020000001e294d4e7513004e6577205669727475616c204465766963654f
    291c4e71004f293a4e750a006c6f63616c686f73744f290c4e7400312e304f29
    0a4e220bb84f290b4e220bb84f29494e21014f294b4ec4020000004f294f4e9
    1084f29704e91004f29794e750d00534341444120456e67696e654f29784e2
    17b4f29464e752500534341444120456e67696e652053657276657220666f7
    22057696e646f77732056312e304f292c4e750700322e302e32324f29624e2
    1014f298b4e21044f29614e850600fffbb83fff4f29604e850501ffffffde4f294c4
    ec402000000c4024000004f293e4e2204004f29a74e21014f296b4e91004f29
    394eb40a3919604f29384ea46e0518014f29774e3201e04f29184e114f29744
    e4f291e4ec40200000021146506000000000000c4023fffff21016506a9fee42
    2bac0c4023fffff211461004f299b4e21004f299a4e4f299d4e2ea4ffffffffb4ffffff
    ff2f4f29994e213c4f29984e4f2a02004e114f2a02084e7536005363616e6e69
    6e672044657669636573203a204c6f77204c696d6974203d20302048696768
    204c696d6974203d20343139343330324f2a02014e233fffff4f29a84e750800
    3132332d4445564f2a03ed4e4f294d4e7513004e6577205669727475616c20
    4465766963654f291c4e71004f293a4e750a006c6f63616c686f73744f290c4e
    7400312e304f290a4e220bb84f290b4e220bb84f29494e21014f294b4ec4020
    000004f294f4e91084f29704e91004f29794e750d00534341444120456e6769
    6e654f29784e217b4f29464e752500534341444120456e67696e6520536572
    76657220666f722057696e646f77732056312e304f292c4e750700322e302e
    32324f29624e21014f298b4e21044f29614e850600fffbb83fff4f29604e85050
    1ffffffde4f294c4ec402000000c4024000004f293e4e2204004f29a74e21014f2
    96b4e91004f29394eb40a391a0f4f29384ea46e0518014f29774e3201e04f29
    184e114f29744e4f291e4ec40200000021146506000000000000c4023fffff21
    016506a9fee422bac0c4023fffff211461004f299b4e21004f299a4e4f299d4e2
    ea4ffffffffb4ffffffff2f4f29994e213c4f29984e4f2a02004e114f2a02084e75360
    05363616e6e696e672044657669636573203a204c6f77204c696d6974203d2
    0302048696768204c696d6974203d20343139343330324f2a02014e233fffff4
    f29a84e7508003132332d4445564f2a03ed4e4f1f0c024000001e294d4e7510
    004d79204e6577204f626a65637420304f291c4e71004f29254e91014f29484
    e91004f29534e1e090a1e1f1f4f294e4e0c00000000190029003c000000004f
    29234e8205004f29004e8205e04f29114e21004f294b4ec4024000004f294f4
    e91094f29244e91004f29824e2ea4ffffffffb4ffffffff2f2ea4ffffffffb4ffffffff2f2ea
    4ffffffffb4ffffffff2f4f29a84e7507003132332d45454f2a03e94e104f2a03ee4e
    71004f1f
    

    value from queue in Encodable.java (line 165) when exception occured:

    [1e,9,a,1e,1f,1f,4f,29,4e,4e,c,0,0,0,0,19,0,29,0,3c,0,0,0,0,4f,29,23,
    4e,82,5,0,4f,29,0,4e,82,5,e0,4f,29,11,4e,21,0,4f,29,4b,4e,c4,2,40,0,0,4f,2
    9,4f,4e,91,9,4f,29,24,4e,91,0,4f,29,82,4e,2e,a4,ff,ff,ff,ff,b4,ff,ff,ff,ff,2f,2e,
    a4,ff,ff,ff,ff,b4,ff,ff,ff,ff,2f,2e,a4,ff,ff,ff,ff,b4,ff,ff,ff,ff,2f,4f,29,a8,4e,75,7,0,3
    1,32,33,2d,45,45,4f,2a,3,e9,4e,10,4f,2a,3,ee,4e,71,0,4f,1f]
    

    for object
    Averaging

    exception:

    Send Broadcast WhoIsRequest() 
    DiscoveryTest iAmReceived
     waited for iAmReceived: 94 ms
    Start read properties
    Cleanup loopDevice
    Exception in thread "main" com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:168)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:55)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:213)
    	at com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyMultipleAck.<init>(ReadPropertyMultipleAck.java:50)
    	at com.serotonin.bacnet4j.service.acknowledgement.AcknowledgementService.createAcknowledgementService(AcknowledgementService.java:48)
    	at com.serotonin.bacnet4j.apdu.ComplexACK.parseServiceData(ComplexACK.java:191)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.waitForAck(IpMessageControl.java:671)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:300)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:280)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:237)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:425)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:415)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:408)
    	at com.serotonin.bacnet4j.LocalDevice.readProperties(LocalDevice.java:864)
    	at com.serotonin.bacnet4j.test.ReadAllAvailableProperties.printDevices(ReadAllAvailableProperties.java:180)
    	at com.serotonin.bacnet4j.test.ReadAllAvailableProperties.main(ReadAllAvailableProperties.java:220)
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:165)
    	... 15 more
    Caused by: com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:168)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:67)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:224)
    	at com.serotonin.bacnet4j.type.Encodable.readOptionalSequenceOf(Encodable.java:258)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult.<init>(ReadAccessResult.java:64)
    	... 20 more
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.GeneratedConstructorAccessor2.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:165)
    	... 24 more
    Caused by: com.serotonin.bacnet4j.exception.BACnetErrorException: Property: Missing required parameter
    	at com.serotonin.bacnet4j.type.Encodable.popEnd(Encodable.java:131)
    	at com.serotonin.bacnet4j.type.Encodable.readWrapped(Encodable.java:344)
    	at com.serotonin.bacnet4j.type.Encodable.readEncodable(Encodable.java:305)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult$Result.<init>(ReadAccessResult.java:124)
    	... 28 more
    
    

    last frame send from remote device (from wireshark):

    02004c4f4f500003ff393dbc080045000468143d00008011d0a7a9fee4
    22a9fe1981bac0bac004546bc2810a044c010800140600000000000030030e
    0c020000001e294d4e7513004e6577205669727475616c204465766963654f
    291c4e71004f293a4e750a006c6f63616c686f73744f290c4e7400312e304f29
    0a4e220bb84f290b4e220bb84f29494e21014f294b4ec4020000004f294f4e9
    1084f29704e91004f29794e750d00534341444120456e67696e654f29784e2
    17b4f29464e752500534341444120456e67696e652053657276657220666f7
    22057696e646f77732056312e304f292c4e750700322e302e32324f29624e2
    1014f298b4e21044f29614e850600fffbb83fff4f29604e850501ffffffde4f294c4
    ec402000000c4048000004f293e4e2204004f29a74e21014f296b4e91004f29
    394eb40b0521134f29384ea46e0518014f29774e3201e04f29184e114f29744
    e4f291e4ec40200000021146506000000000000c4023fffff21016506a9fee42
    2bac0c4023fffff211461004f299b4e21004f299a4e4f299d4e2ea4ffffffffb4ffffff
    ff2f4f29994e213c4f29984e4f2a02004e114f2a02084e7536005363616e6e69
    6e672044657669636573203a204c6f77204c696d6974203d20302048696768
    204c696d6974203d20343139343330324f2a02014e233fffff4f29a84e750800
    3132332d4445564f2a03ed4e4f294d4e7513004e6577205669727475616c20
    4465766963654f291c4e71004f293a4e750a006c6f63616c686f73744f290c4e
    7400312e304f290a4e220bb84f290b4e220bb84f29494e21014f294b4ec4020
    000004f294f4e91084f29704e91004f29794e750d00534341444120456e6769
    6e654f29784e217b4f29464e752500534341444120456e67696e6520536572
    76657220666f722057696e646f77732056312e304f292c4e750700322e302e
    32324f29624e21014f298b4e21044f29614e850600fffbb83fff4f29604e85050
    1ffffffde4f294c4ec402000000c4048000004f293e4e2204004f29a74e21014f2
    96b4e91004f29394eb40b0521134f29384ea46e0518014f29774e3201e04f29
    184e114f29744e4f291e4ec40200000021146506000000000000c4023fffff21
    016506a9fee422bac0c4023fffff211461004f299b4e21004f299a4e4f299d4e2
    ea4ffffffffb4ffffffff2f4f29994e213c4f29984e4f2a02004e114f2a02084e75360
    05363616e6e696e672044657669636573203a204c6f77204c696d6974203d2
    0302048696768204c696d6974203d20343139343330324f2a02014e233fffff4
    f29a84e7508003132332d4445564f2a03ed4e4f1f0c048000001e294d4e7510
    004d79204e6577204f626a65637420304f291c4e71004f297c4e21004f294e4
    e0c0080000119553c020000004f29934e21004f29944e21004f294b4ec40480
    00004f294f4e91124f29884e44000000004f29964ea4ffffffffb4ffffffff4f297d4e
    44000000004f29974e44000000004f29874e44000000004f29954ea4ffffffffb4
    ffffffff4f29924e21004f29a84e7507003132332d41564f1f
    

    value from queue in Encodable.java (line 165) when exception occured:

    [3c,2,0,0,0,4f,29,93,4e,21,0,4f,29,94,4e,21,0,4f,29,4b,4e,c4,4,80,0,
    0,4f,29,4f,4e,91,12,4f,29,88,4e,44,0,0,0,0,4f,29,96,4e,a4,ff,ff,ff,ff,b4,ff,ff,ff
    ,ff,4f,29,7d,4e,44,0,0,0,0,4f,29,97,4e,44,0,0,0,0,4f,29,87,4e,44,0,0,0,0,4f,
    29,95,4e,a4,ff,ff,ff,ff,b4,ff,ff,ff,ff,4f,29,92,4e,21,0,4f,29,a8,4e,75,7,0,31,32,
    33,2d,41,56,4f,1f]
    

    for object
    LifeSafetyZone

    exception:

    Send Broadcast WhoIsRequest() 
    DiscoveryTest iAmReceived
     waited for iAmReceived: 78 ms
    Start read properties
    Cleanup loopDevice
    Exception in thread "main" com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:168)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:55)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:213)
    	at com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyMultipleAck.<init>(ReadPropertyMultipleAck.java:50)
    	at com.serotonin.bacnet4j.service.acknowledgement.AcknowledgementService.createAcknowledgementService(AcknowledgementService.java:48)
    	at com.serotonin.bacnet4j.apdu.ComplexACK.parseServiceData(ComplexACK.java:191)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.waitForAck(IpMessageControl.java:671)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:300)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:280)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:237)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:425)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:415)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:408)
    	at com.serotonin.bacnet4j.LocalDevice.readProperties(LocalDevice.java:864)
    	at com.serotonin.bacnet4j.test.ReadAllAvailableProperties.printDevices(ReadAllAvailableProperties.java:180)
    	at com.serotonin.bacnet4j.test.ReadAllAvailableProperties.main(ReadAllAvailableProperties.java:220)
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:165)
    	... 15 more
    Caused by: com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:168)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:67)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:224)
    	at com.serotonin.bacnet4j.type.Encodable.readOptionalSequenceOf(Encodable.java:258)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult.<init>(ReadAccessResult.java:64)
    	... 20 more
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.GeneratedConstructorAccessor2.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:165)
    	... 24 more
    Caused by: com.serotonin.bacnet4j.exception.BACnetErrorException: Property: Missing required parameter
    	at com.serotonin.bacnet4j.type.Encodable.popEnd(Encodable.java:131)
    	at com.serotonin.bacnet4j.type.Encodable.readWrapped(Encodable.java:344)
    	at com.serotonin.bacnet4j.type.Encodable.readEncodable(Encodable.java:305)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult$Result.<init>(ReadAccessResult.java:124)
    	... 28 more
    
    

    last frame send from remote device (from wireshark):

    02004c4f4f500003ff393dbc0800450004b6145300008011d043a9fee4
    22a9fe1981bac0bac004a286fb810a049a010800140600000000000030030e
    0c058000001e294b4ec4058000004f294d4e7510004d79204e6577204f626a
    65637420304f294f4e91164f29554e91004f29a44e91004f291c4e71004f291f
    4e71004f296f4e8204004f29244e91004f29674e91004f29514e104f2a03ef4e
    104f29a04e91004f29af4e4f29a34e91004f29a14e91004f299e4e91004f29a5
    4e4f299f4e4f29714e21004f29114e21004f29a64e4f29074e4f29274e4f2923
    4e8205004f29004e8205e04f29484e91014f29824e2ea4ffffffffb4ffffffff2f2ea
    4ffffffffb4ffffffff2f2ea4ffffffffb4ffffffff2f4f29a84e7508003132332d4c535a4f2
    a03e94e104f2a03ee4e71004f1f0c020000001e294d4e7513004e657720566
    9727475616c204465766963654f291c4e71004f293a4e750a006c6f63616c68
    6f73744f290c4e7400312e304f290a4e220bb84f290b4e220bb84f29494e210
    14f294b4ec4020000004f294f4e91084f29704e91004f29794e750d00534341
    444120456e67696e654f29784e217b4f29464e752500534341444120456e67
    696e652053657276657220666f722057696e646f77732056312e304f292c4e
    750700322e302e32324f29624e21014f298b4e21044f29614e850600fffbb83f
    ff4f29604e850501ffffffde4f294c4ec402000000c4058000004f293e4e220400
    4f29a74e21014f296b4e91004f29394eb40b0803254f29384ea46e0518014f2
    9774e3201e04f29184e114f29744e4f291e4ec402000000211465060000000
    00000c4023fffff21016506a9fee422bac0c4023fffff211461004f299b4e21004f
    299a4e4f299d4e2ea4ffffffffb4ffffffff2f4f29994e213c4f29984e4f2a02004e11
    4f2a02084e7536005363616e6e696e672044657669636573203a204c6f7720
    4c696d6974203d20302048696768204c696d6974203d20343139343330324f
    2a02014e233fffff4f29a84e7508003132332d4445564f2a03ed4e4f294d4e75
    13004e6577205669727475616c204465766963654f291c4e71004f293a4e75
    0a006c6f63616c686f73744f290c4e7400312e304f290a4e220bb84f290b4e2
    20bb84f29494e21014f294b4ec4020000004f294f4e91084f29704e91004f297
    94e750d00534341444120456e67696e654f29784e217b4f29464e752500534
    341444120456e67696e652053657276657220666f722057696e646f7773205
    6312e304f292c4e750700322e302e32324f29624e21014f298b4e21044f2961
    4e850600fffbb83fff4f29604e850501ffffffde4f294c4ec402000000c40580000
    04f293e4e2204004f29a74e21014f296b4e91004f29394eb40b0803384f2938
    4ea46e0518014f29774e3201e04f29184e114f29744e4f291e4ec4020000002
    1146506000000000000c4023fffff21016506a9fee422bac0c4023fffff2114610
    04f299b4e21004f299a4e4f299d4e2ea4ffffffffb4ffffffff2f4f29994e213c4f299
    84e4f2a02004e114f2a02084e7536005363616e6e696e67204465766963657
    3203a204c6f77204c696d6974203d20302048696768204c696d6974203d203
    43139343330324f2a02014e233fffff4f29a84e7508003132332d4445564f2a0
    3ed4e4f1f
    

    value from queue in Encodable.java (line 165) when exception occured:

    [0,4f,29,a5,4e,4f,29,9f,4e,4f,29,71,4e,21,0,4f,29,11,4e,21,0,4f,29,a
    6,4e,4f,29,7,4e,4f,29,27,4e,4f,29,23,4e,82,5,0,4f,29,0,4e,82,5,e0,4f,29,48,
    4e,91,1,4f,29,82,4e,2e,a4,ff,ff,ff,ff,b4,ff,ff,ff,ff,2f,2e,a4,ff,ff,ff,ff,b4,ff,ff,ff,ff
    ,2f,2e,a4,ff,ff,ff,ff,b4,ff,ff,ff,ff,2f,4f,29,a8,4e,75,8,0,31,32,33,2d,4c,53,5a,4f
    ,2a,3,e9,4e,10,4f,2a,3,ee,4e,71,0,4f,1f,c,2,0,0,0,1e,29,4d,4e,75,13,0,4e,6
    5,77,20,56,69,72,74,75,61,6c,20,44,65,76,69,63,65,4f,29,1c,4e,71,0,4f,29,
    3a,4e,75,a,0,6c,6f,63,61,6c,68,6f,73,74,4f,29,c,4e,74,0,31,2e,30,4f,29,a,4
    e,22,b,b8,4f,29,b,4e,22,b,b8,4f,29,49,4e,21,1,4f,29,4b,4e,c4,2,0,0,0,4f,29,
    4f,4e,91,8,4f,29,70,4e,91,0,4f,29,79,4e,75,d,0,53,43,41,44,41,20,45,6e,67
    ,69,6e,65,4f,29,78,4e,21,7b,4f,29,46,4e,75,25,0,53,43,41,44,41,20,45,6e,
    67,69,6e,65,20,53,65,72,76,65,72,20,66,6f,72,20,57,69,6e,64,6f,77,73,20,
    56,31,2e,30,4f,29,2c,4e,75,7,0,32,2e,30,2e,32,32,4f,29,62,4e,21,1,4f,29,8
    b,4e,21,4,4f,29,61,4e,85,6,0,ff,fb,b8,3f,ff,4f,29,60,4e,85,5,1,ff,ff,ff,de,4f,2
    9,4c,4e,c4,2,0,0,0,c4,5,80,0,0,4f,29,3e,4e,22,4,0,4f,29,a7,4e,21,1,4f,29,6b
    ,4e,91,0,4f,29,39,4e,b4,b,8,3,25,4f,29,38,4e,a4,6e,5,18,1,4f,29,77,4e,32,1
    ,e0,4f,29,18,4e,11,4f,29,74,4e,4f,29,1e,4e,c4,2,0,0,0,21,14,65,6,0,0,0,0,0,
    0,c4,2,3f,ff,ff,21,1,65,6,a9,fe,e4,22,ba,c0,c4,2,3f,ff,ff,21,14,61,0,4f,29,9b,
    4e,21,0,4f,29,9a,4e,4f,29,9d,4e,2e,a4,ff,ff,ff,ff,b4,ff,ff,ff,ff,2f,4f,29,99,4e,2
    1,3c,4f,29,98,4e,4f,2a,2,0,4e,11,4f,2a,2,8,4e,75,36,0,53,63,61,6e,6e,69,6
    e,67,20,44,65,76,69,63,65,73,20,3a,20,4c,6f,77,20,4c,69,6d,69,74,20,3d,2
    0,30,20,48,69,67,68,20,4c,69,6d,69,74,20,3d,20,34,31,39,34,33,30,32,4f,2
    a,2,1,4e,23,3f,ff,ff,4f,29,a8,4e,75,8,0,31,32,33,2d,44,45,56,4f,2a,3,ed,4e,
    4f,29,4d,4e,75,13,0,4e,65,77,20,56,69,72,74,75,61,6c,20,44,65,76,69,63,6
    5,4f,29,1c,4e,71,0,4f,29,3a,4e,75,a,0,6c,6f,63,61,6c,68,6f,73,74,4f,29,c,4e
    ,74,0,31,2e,30,4f,29,a,4e,22,b,b8,4f,29,b,4e,22,b,b8,4f,29,49,4e,21,1,4f,2
    9,4b,4e,c4,2,0,0,0,4f,29,4f,4e,91,8,4f,29,70,4e,91,0,4f,29,79,4e,75,d,0,53,
    43,41,44,41,20,45,6e,67,69,6e,65,4f,29,78,4e,21,7b,4f,29,46,4e,75,25,0,5
    3,43,41,44,41,20,45,6e,67,69,6e,65,20,53,65,72,76,65,72,20,66,6f,72,20,5
    7,69,6e,64,6f,77,73,20,56,31,2e,30,4f,29,2c,4e,75,7,0,32,2e,30,2e,32,32,4
    f,29,62,4e,21,1,4f,29,8b,4e,21,4,4f,29,61,4e,85,6,0,ff,fb,b8,3f,ff,4f,29,60,4
    e,85,5,1,ff,ff,ff,de,4f,29,4c,4e,c4,2,0,0,0,c4,5,80,0,0,4f,29,3e,4e,22,4,0,4f,
    29,a7,4e,21,1,4f,29,6b,4e,91,0,4f,29,39,4e,b4,b,8,3,38,4f,29,38,4e,a4,6e,
    5,18,1,4f,29,77,4e,32,1,e0,4f,29,18,4e,11,4f,29,74,4e,4f,29,1e,4e,c4,2,0,0
    ,0,21,14,65,6,0,0,0,0,0,0,c4,2,3f,ff,ff,21,1,65,6,a9,fe,e4,22,ba,c0,c4,2,3f,ff
    ,ff,21,14,61,0,4f,29,9b,4e,21,0,4f,29,9a,4e,4f,29,9d,4e,2e,a4,ff,ff,ff,ff,b4,ff
    ,ff,ff,ff,2f,4f,29,99,4e,21,3c,4f,29,98,4e,4f,2a,2,0,4e,11,4f,2a,2,8,4e,75,36,
    0,53,63,61,6e,6e,69,6e,67,20,44,65,76,69,63,65,73,20,3a,20,4c,6f,77,20,4
    c,69,6d,69,74,20,3d,20,30,20,48,69,67,68,20,4c,69,6d,69,74,20,3d,20,34,
    31,39,34,33,30,32,4f,2a,2,1,4e,23,3f,ff,ff,4f,29,a8,4e,75,8,0,31,32,33,2d,4
    4,45,56,4f,2a,3,ed,4e,4f,1f]
    

    I am testig it with latest version from cvs (2010.05.21).

    Attachment: download link


  • Thanks for reporting this. These problems should be fixed now. The new code has been checked into CVS.


  • thank you for this fix, but I find another problem, when I create Calendar object with not empty dateList InvocationTargetException occure, could you check this
    I am testing with this dat file, only need to open that file in BACnet Device Simulator and all config will be load.

    
    Send Broadcast WhoIsRequest() 
    DiscoveryTest iAmReceived
     waited for iAmReceived: 110 ms
    Start read properties
    Cleanup loopDevice
    Exception in thread "main" com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:175)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:56)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:220)
    	at com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyMultipleAck.<init>(ReadPropertyMultipleAck.java:52)
    	at com.serotonin.bacnet4j.service.acknowledgement.AcknowledgementService.createAcknowledgementService(AcknowledgementService.java:50)
    	at com.serotonin.bacnet4j.apdu.ComplexACK.parseServiceData(ComplexACK.java:191)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.waitForAck(IpMessageControl.java:682)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:294)
    	at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:238)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:425)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:415)
    	at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:408)
    	at com.serotonin.bacnet4j.LocalDevice.readProperties(LocalDevice.java:864)
    	at com.serotonin.bacnet4j.test.ReadAllAvailableProperties.printDevices(ReadAllAvailableProperties.java:179)
    	at com.serotonin.bacnet4j.test.ReadAllAvailableProperties.main(ReadAllAvailableProperties.java:219)
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:169)
    	... 14 more
    Caused by: com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:175)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:68)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:231)
    	at com.serotonin.bacnet4j.type.Encodable.readOptionalSequenceOf(Encodable.java:265)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult.<init>(ReadAccessResult.java:65)
    	... 19 more
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.GeneratedConstructorAccessor3.newInstance(Unknown Source)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:169)
    	... 23 more
    Caused by: com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:175)
    	at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:68)
    	at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:231)
    	at com.serotonin.bacnet4j.type.Encodable.readEncodable(Encodable.java:313)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult$Result.<init>(ReadAccessResult.java:124)
    	... 27 more
    Caused by: java.lang.reflect.InvocationTargetException
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    	at java.lang.reflect.Constructor.newInstance(Constructor.java:501)
    	at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:169)
    	... 31 more
    Caused by: java.lang.IllegalStateException: Stomping on another object type: old=Group, new=Analog Input
    	at com.serotonin.bacnet4j.type.ThreadLocalObjectType.set(ThreadLocalObjectType.java:10)
    	at com.serotonin.bacnet4j.type.constructed.ReadAccessResult.<init>(ReadAccessResult.java:64)
    	... 36 more
    
    
    

    this is queue value in Encodable.java 169

    
    [1e,29,4d,4e,75,13,0,4e,65,77,20,56,69,72,74,75,61,6c,20,44,65,76,69,63,65,4f,29,62,4e,21,1,4f,29,8b,4e,21,4,4f,1f]
    
    

    last frame from wireshark

    
    02004c4f4f500003ff393dbc08004500005a004e00008011e8a4a9fee422a9fe1981bac0bac000466c8d810a003e010800140600000000000030010e0c020000001e294d4e7513004e6577205669727475616c204465766963654f29624e21014f298b4e21044f1f
    
    

    also after this another attempts to read fails with the BACnetException in Encodable.java 175 invoked from
    BacnetLocalDevice.java from method getExtendedDeviceInformation(BacnetRemoteDevice);

    this is queue value in Encodable.java 169

    
    [1e,29,4d,4e,75,13,0,4e,65,77,20,56,69,72,74,75,61,6c,20,44,65,76,69,63,65,4f,29,62,4e,21,1,4f,29,8b,4e,21,4,4f,1f]
    
    

    Same problem with Group object when list of group members is not empty

    
    com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:175)
    at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:56)
    at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:220)
    at com.serotonin.bacnet4j.service.acknowledgement.ReadPropertyMultipleAck.<init>(ReadPropertyMultipleAck.java:52)
    at com.serotonin.bacnet4j.service.acknowledgement.AcknowledgementService.createAcknowledgementService(AcknowledgementService.java:50)
    at com.serotonin.bacnet4j.apdu.ComplexACK.parseServiceData(ComplexACK.java:191)
    at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.waitForAck(IpMessageControl.java:682)
    at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:294)
    at com.serotonin.bacnet4j.npdu.ip.IpMessageControl.send(IpMessageControl.java:238)
    at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:425)
    at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:415)
    at com.serotonin.bacnet4j.LocalDevice.send(LocalDevice.java:408)
    at com.serotonin.bacnet4j.LocalDevice.readProperties(LocalDevice.java:864)
    2010-06-16 09:41:20,694 ERROR [STDERR] Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:169)
    ... 24 more
    2010-06-16 09:41:20,694 ERROR [STDERR] Caused by: com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:175)
    at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:68)
    at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:231)
    at com.serotonin.bacnet4j.type.Encodable.readOptionalSequenceOf(Encodable.java:265)
    at com.serotonin.bacnet4j.type.constructed.ReadAccessResult.<init>(ReadAccessResult.java:65)
    ... 29 more
    2010-06-16 09:41:20,710 ERROR [STDERR] Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.GeneratedConstructorAccessor66.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:169)
    ... 33 more
    2010-06-16 09:41:20,710 ERROR [STDERR] Caused by: com.serotonin.bacnet4j.exception.BACnetException: java.lang.reflect.InvocationTargetException
    at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:175)
    at com.serotonin.bacnet4j.type.constructed.SequenceOf.<init>(SequenceOf.java:68)
    at com.serotonin.bacnet4j.type.Encodable.readSequenceOf(Encodable.java:231)
    at com.serotonin.bacnet4j.type.Encodable.readEncodable(Encodable.java:313)
    at com.serotonin.bacnet4j.type.constructed.ReadAccessResult$Result.<init>(ReadAccessResult.java:124)
    ... 37 more
    2010-06-16 09:41:20,710 ERROR [STDERR] Caused by: java.lang.reflect.InvocationTargetException
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
    at java.lang.reflect.Constructor.newInstance(Unknown Source)
    at com.serotonin.bacnet4j.type.Encodable.read(Encodable.java:169)
    ... 41 more
    2010-06-16 09:41:20,710 ERROR [STDERR] Caused by: java.lang.IllegalStateException: Stomping on another object type: old=Group, new=Analog Input
    at com.serotonin.bacnet4j.type.ThreadLocalObjectType.set(ThreadLocalObjectType.java:10)
    at com.serotonin.bacnet4j.type.constructed.ReadAccessResult.<init>(ReadAccessResult.java:64)
    ... 46 more
    
    

    Attachment: download link


  • The nesting of read access specs meant that the thread local object type needed to be a stack of object types rather than just a single object type.

    But, it seems like whatever is sending that response is non-compliant to the spec. It provides calendar entries with, for example, month values of 0, which is incorrect. I changed the code to be more lenient so that it would not throw exceptions.

    Changes have been checked in.


  • thanks it works :) I only have to comment line 545 in IpMessageControl because of ClassCast


  • Oops. That was test code that wasn't supposed to be there. It's been removed now.