// Register listening
node.support.manager.addNodeListener(node.node, this);
synchronized(this) {
- if(wasRun) {
- procedure.execute(value);
- } else {
+ if(!wasRun) {
Variant result = (Variant)node.support.valueCache.get(node.node);
if(result != null) {
procedure.execute(result);
LOGGER.error("Error while computing node value", e);
// Invoke the exception method of the listener
Listener<Variant> listener = this.listener;
- if (listener != null) listener.exception(new DatabaseException("External data access error", e));
- wasRun = true;
+ if (listener != null) {
+ listener.exception(new DatabaseException("External data access error", e));
+ wasRun = true;
+ }
return;
}
// Must always invoke an existing listener, regardless of earlier errors.
if (listener != null) {
//System.out.println("LISTENER " + listener + " invoked with value " + value);
listener.execute(value);
+ wasRun = true;
}
- wasRun = true;
}
@Override