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);
}