[93290] JS Linux class cast exceptions with DataModel Combos
diff --git a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
index c4c6ab3..54c5704 100644
--- a/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
+++ b/plugins/org.eclipse.wst.common.frameworks.ui/wtp_ui/org/eclipse/wst/common/frameworks/internal/datamodel/ui/DataModelSynchHelper.java
@@ -49,6 +49,8 @@
  * This class is EXPERIMENTAL and is subject to substantial changes.
  */
 public class DataModelSynchHelper implements IDataModelListener {
+	protected static final boolean isLinux = System.getProperty ("os.name").equals("Linux");
+	
 	protected IDataModel dataModel;
 	protected Map widgetToPropertyHash;
 	protected Map propertyToWidgetHash;
@@ -76,17 +78,25 @@
 	private TimedModifyListener timedModifyListener;
 
 	private class ComboListener implements SelectionListener, ModifyListener {
+		
 		public void modifyText(ModifyEvent e) {
 			if (ignoreModifyEvent)
 				return;
 			Combo combo = (Combo) e.getSource();
 			if (currentWidget == combo)
 				return;
+			
 			try {
 				currentWidgetFromEvent = combo;
 				String propertyName = (String) widgetToPropertyHash.get(combo);
 				DataModelPropertyDescriptor[] descriptors = dataModel.getValidPropertyDescriptors(propertyName);
 				String description = combo.getText();
+				//On a combo selection linux fires 2 events;
+				//the first clears the value which needs to be ignored when the type is not String
+				//the second sets the new value
+				if(isLinux && description.length()==0 && descriptors.length != 0 && !(descriptors[0].getPropertyValue() instanceof String)){
+					return;
+				}
 				for (int i = 0; i < descriptors.length; i++) {
 					if (description.equals(descriptors[i].getPropertyDescription())) {
 						setProperty(propertyName, descriptors[i].getPropertyValue());