I have a similar problem like you had in BacnetTest. In my project I get an exception when I call "new LocalDevice(1234, transport);". I stepped in up to this point.
private void setPropertyImpl(PropertyIdentifier pid, Encodable value) {
Encodable oldValue = properties.get(pid);
properties.put(pid, value);
if (!ObjectUtils.equals(value, oldValue)) {
// Check for subscriptions.
if (ObjectCovSubscription.sendCovNotification(id.getObjectType(), pid, this.getCovIncrement())) {
synchronized (covSubscriptions) {
long now = System.currentTimeMillis();
ObjectCovSubscription sub;
for (int i = covSubscriptions.size() - 1; i >= 0; i--) {
sub = covSubscriptions.get(i);
if (sub.hasExpired(now))
covSubscriptions.remove(i);
else if (sub.isNotificationRequired(pid, value))
sendCovNotification(sub, now);
}
}
}
}
}
The error occurs in the if-statement "ObjectUtils.equals(value, oldValue)". Bizarrely the error doesn't occur in my BacnetTest :-/ Has anybody solved this problem by now?