final PropertyChangeEvent event = new PropertyChangeEvent(this,
changeId, oldValue, newValue);
Runnable notifier = new Runnable() {
public void run() {
for (int i = 0; i < listeners.length; i++) {
final IPropertyChangeListener listener = (IPropertyChangeListener) listeners[i];
ISafeRunnable safetyWrapper = new ISafeRunnable() {
public void run() throws Exception {
listener.propertyChange(event);
}
public void handleException(Throwable exception) {
// logged by the runner
}