Buggy code:
public class GenericElementParameter extends ElementParameter { private ComponentProperties componentProperties ; private Form form ; private Widget widget ; private ComponentService componentService ; private List < ? > possibleValues ; private boolean supportContext ; private final PropertyChangeSupport pcs = new PropertyChangeSupport ( this ) ; private boolean isFirstCall ; private boolean drivedByForm ; public GenericElementParameter ( IElement element , ComponentProperties componentProperties , Form form , Widget widget , ComponentService componentService ) { } public void addPropertyChangeListener ( PropertyChangeListener listener ) { } public void removePropertyChangeListener ( PropertyChangeListener listener ) { } @ Override public void setValue ( Object o ) { } private void updateProperty ( Object newValue ) { if ( ( componentProperties ) == null ) { return ; } NamedThing widgetProperty = widget . getContent ( ) ; if ( widgetProperty instanceof Property ) { Property se = ( ( Property ) ( widgetProperty ) ) ; Object oldValue = se . getValue ( ) ; if ( ( newValue != null ) && ( ! ( newValue . equals ( oldValue ) ) ) ) { se = ( ( Property ) ( componentProperties . getProperty ( se . getName ( ) ) ) ) ; if ( isDrivedByForm ( ) ) { form . setValue ( se . getName ( ) , newValue ) ; } else { <START_BUG> if ( newValue instanceof List ) { <END_BUG> setTableValues ( se , ( ( List < Map < String , Object > > ) ( newValue ) ) ) ; } else { se . setValue ( newValue ) ; } } fireConnectionPropertyChangedEvent ( newValue ) ; } } else if ( widgetProperty instanceof PresentationItem ) { PresentationItem pi = ( ( PresentationItem ) ( widgetProperty ) ) ; Form formtoShow = pi . getFormtoShow ( ) ; if ( formtoShow != null ) { fireShowDialogEvent ( componentProperties . getForm ( formtoShow . getName ( ) ) ) ; } } } private void setTableValues ( Property prop , List < Map < String , Object > > value ) { } private boolean hasPropertyChangeListener ( ) { } private void fireValidateStatusEvent ( ) { } private void fireValueChangedEvent ( ) { } private void fireConnectionPropertyChangedEvent ( Object newPropertyName ) { } private void fireShowDialogEvent ( Form formToDisplay ) { } public boolean callBeforePresent ( ) { } public boolean callBeforeActivate ( ) { } private void update ( ) { } private boolean callValidate ( ) { } private boolean callAfter ( ) { } private void updateSchema ( ) { } private String getParameterName ( ) { } abstract class ComponentServiceCaller { private String title ; private boolean isLongRuning ; public ComponentServiceCaller ( String title , boolean isLongRuning ) { } public boolean call ( ) { } protected abstract void doWork ( ) throws Throwable { } } abstract class RunWithProgress { private String taskName ; public RunWithProgress ( String taskName ) { } public boolean run ( ) { } protected abstract void toDo ( ) throws Throwable { } } public List < ? > getPossibleValues ( ) { } public void setPossibleValues ( List < ? > possibleValues ) { } public Widget getWidget ( ) { } public ComponentProperties getComponentProperties ( ) { } public void setComponentProperties ( ComponentProperties componentProperties ) { } public boolean isSupportContext ( ) { } public void setSupportContext ( boolean supportContext ) { } public ComponentService getComponentService ( ) { } public void setComponentService ( ComponentService componentService ) { } public boolean isDrivedByForm ( ) { } public void setDrivedByForm ( boolean drivedByForm ) { } }

Fix:
if ( ( newValue instanceof List ) && ( TABLE . equals ( widget . getWidgetType ( ) ) ) ) {