481972 : fix ClassCastException in EarProjectConfiguratorDelegate.updateLibDir

Change-Id: I97ddbf2e144cdea087ba5274dc8e330b10ec4ebe
Signed-off-by: Fred Bricon <fbricon@gmail.com>
diff --git a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarProjectConfiguratorDelegate.java b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarProjectConfiguratorDelegate.java
index ab0d3c7..9218d5b 100644
--- a/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarProjectConfiguratorDelegate.java
+++ b/org.eclipse.m2e.wtp/src/org/eclipse/m2e/wtp/EarProjectConfiguratorDelegate.java
@@ -32,6 +32,7 @@
 import org.eclipse.jst.j2ee.internal.earcreation.EarFacetInstallDataModelProvider;
 import org.eclipse.jst.j2ee.internal.project.J2EEProjectUtilities;
 import org.eclipse.jst.j2ee.model.IEARModelProvider;
+import org.eclipse.jst.j2ee.model.IModelProvider;
 import org.eclipse.jst.j2ee.model.ModelProviderManager;
 import org.eclipse.jst.javaee.application.Application;
 import org.eclipse.m2e.core.MavenPlugin;
@@ -239,28 +240,30 @@
     }
     
     //if the ear project Java EE level was < 5.0, the following would throw a ClassCastException  
-    final IEARModelProvider earModel = (IEARModelProvider)ModelProviderManager.getModelProvider(project);
-    if (earModel == null) {
-      return;
+    IModelProvider modelProvider =  ModelProviderManager.getModelProvider(project);
+    if (!(modelProvider instanceof IEARModelProvider)) {
+    	return;
+    }
+    final IEARModelProvider earModel = (IEARModelProvider)modelProvider;
+    if (!(earModel.getModelObject() instanceof Application)){
+    	return;
     }
     final Application app = (Application)earModel.getModelObject();
-    if (app != null) {
-      if (newLibDir == null || "/".equals(newLibDir)) { //$NON-NLS-1$
-        newLibDir = "lib"; //$NON-NLS-1$
-      } 
-      //MECLIPSEWTP-167 : lib directory mustn't start with a slash
-      else if (newLibDir.startsWith("/")) { //$NON-NLS-1$
-        newLibDir = newLibDir.substring(1);
-      }
-      String oldLibDir = app.getLibraryDirectory();
-      if (newLibDir.equals(oldLibDir)) return;
-      final String libDir = newLibDir;
-      earModel.modify(new Runnable() {
-        @Override
-		public void run() {     
-        app.setLibraryDirectory(libDir);
-      }}, null);
-    }
+	if (newLibDir == null || "/".equals(newLibDir)) { //$NON-NLS-1$
+	  newLibDir = "lib"; //$NON-NLS-1$
+	} 
+    //MECLIPSEWTP-167 : lib directory mustn't start with a slash
+	else if (newLibDir.startsWith("/")) { //$NON-NLS-1$
+	  newLibDir = newLibDir.substring(1);
+	}
+	String oldLibDir = app.getLibraryDirectory();
+	if (newLibDir.equals(oldLibDir)) return;
+	final String libDir = newLibDir;
+	earModel.modify(new Runnable() {
+	  @Override
+      public void run() {     
+	    app.setLibraryDirectory(libDir);
+	  }}, null);
   }