property.value = value;
    public void propertyChange(PropertyChangeEvent evt) {	if (evt.getSource() instanceof SPropertyEditor) {	    SPropertyEditor editor = (SPropertyEditor)evt.getSource();	    Iterator iterator = properties.values().iterator();	    while (iterator.hasNext()) {		Property property = (Property)iterator.next();		if (editor == property.propertyEditor) {		    Object value = editor.getValue();		    Method setter = property.propertyDescriptor.getWriteMethod();		    try {			if (setter != null)			    setter.invoke(bean, new Object[] { value });			property.value = value;		    }		    catch (InvocationTargetException ex) {			if (ex.getTargetException() instanceof PropertyVetoException) {			    System.err.println("WARNING: Vetoed; reason is: " 					       + ex.getTargetException().getMessage());			}			else {			    System.err.println("ERROR: " + ex.getTargetException().getMessage());			}			ex.printStackTrace(System.err);		    }		    catch (Exception ex) {		        System.err.println("Unexpected exception while updating " 			      + property.propertyDescriptor.getName() + ": " + ex);			ex.printStackTrace(System.err);	            }		    break;		}	    }	}		readBean();    }