synchronized (this) {
this.message = message;
this.state = state;
newStatus = new Status(command, action, state, message);
toNotify = (ProgressListener[]) listeners.toArray(new ProgressListener[listeners.size()]);
event = new ProgressEvent(this, null, newStatus);
}
for (int i = 0; i < toNotify.length; i++) {
toNotify[i].handleProgressEvent(event);
}