[537609] Use CoreException rather than MdaException
diff --git a/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtBuilderLaunchConfigurationDelegate.java b/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtBuilderLaunchConfigurationDelegate.java
index 76861e1..17e0cd7 100644
--- a/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtBuilderLaunchConfigurationDelegate.java
+++ b/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtBuilderLaunchConfigurationDelegate.java
@@ -66,18 +66,12 @@
 
 			@Override
 			public IStatus runInWorkspace(IProgressMonitor jobMonitor) throws CoreException {
-				try {
-					if(BUILD_TYPE_CLEAN.equals(buildType)) {
-						clean(project, configuration);
-					}
-					else {
-						build(project, configuration, printWriter, jobMonitor);
-					}
+				if(BUILD_TYPE_CLEAN.equals(buildType)) {
+					clean(project, configuration);
 				}
-				catch (MdaException e) {
-					throw new CoreException(e.getStatus());
+				else {
+					build(project, configuration, printWriter, jobMonitor);
 				}
-
 				return Status.OK_STATUS;
 			}
 		};
@@ -88,7 +82,7 @@
 	}
 
 	private void build(final IProject project, final ILaunchConfiguration configuration, final PrintWriter printWriter,
-			final IProgressMonitor monitor) throws CoreException, MdaException {
+			final IProgressMonitor monitor) throws CoreException {
 
 		String moduleUri = QvtLaunchUtil.getTransformationURI(configuration);
 		final QvtInterpretedTransformation transformation;
@@ -116,7 +110,7 @@
 		}
 	}
 
-	private void clean(IProject project, ILaunchConfiguration configuration) throws CoreException, MdaException {
+	private void clean(IProject project, ILaunchConfiguration configuration) throws CoreException {
 		String moduleUri = QvtLaunchUtil.getTransformationURI(configuration);
 		final QvtInterpretedTransformation transformation;
 		try {
@@ -126,7 +120,12 @@
 			return;
 		}
 
-		List<TransformationParameter> transfParams = transformation.getParameters();
+		List<TransformationParameter> transfParams;
+		try {
+			transfParams = transformation.getParameters();
+		} catch (MdaException e) {
+			throw new CoreException(e.getStatus());
+		}
 		List<TargetUriData> targetUris = QvtLaunchUtil.getTargetUris(configuration);
 		for (int i = 0, n = targetUris.size(); i < n; ++i) {
 			if (transfParams.size() > i && transfParams.get(i).getDirectionKind() == DirectionKind.OUT) {
diff --git a/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtLaunchUtil.java b/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtLaunchUtil.java
index c6eb045..553434b 100644
--- a/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtLaunchUtil.java
+++ b/plugins/org.eclipse.m2m.qvt.oml.runtime/src/org/eclipse/m2m/internal/qvt/oml/runtime/launch/QvtLaunchUtil.java
@@ -1,11 +1,11 @@
 /*******************************************************************************
  * Copyright (c) 2007, 2018 Borland Software Corporation and others.
- * 
+ *
  * All rights reserved. This program and the accompanying materials
  * are made available under the terms of the Eclipse Public License v2.0
  * which accompanies this distribution, and is available at
  * http://www.eclipse.org/legal/epl-v20.html
- * 
+ *
  * Contributors:
  *     Borland Software Corporation - initial API and implementation
  *******************************************************************************/
@@ -23,6 +23,7 @@
 import org.eclipse.core.runtime.IProgressMonitor;
 import org.eclipse.core.runtime.IStatus;
 import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Status;
 import org.eclipse.debug.core.DebugPlugin;
 import org.eclipse.debug.core.ILaunchConfiguration;
 import org.eclipse.debug.core.ILaunchConfigurationType;
@@ -53,78 +54,78 @@
 
 
 public class QvtLaunchUtil {
-	
+
 	private QvtLaunchUtil() {}
 
 	public static ILaunchConfigurationType getInMemoryLaunchConfigurationType() {
 		ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager();
-        ILaunchConfigurationType type = manager.getLaunchConfigurationType(InMemoryQvtLaunchConfigurationDelegate.LAUNCH_CONFIGURATION_TYPE_ID);
-        if (type == null) {
-            throw new RuntimeException("No launch configuration for id " + InMemoryQvtLaunchConfigurationDelegate.LAUNCH_CONFIGURATION_TYPE_ID); //$NON-NLS-1$
-        }
+		ILaunchConfigurationType type = manager.getLaunchConfigurationType(InMemoryQvtLaunchConfigurationDelegate.LAUNCH_CONFIGURATION_TYPE_ID);
+		if (type == null) {
+			throw new RuntimeException("No launch configuration for id " + InMemoryQvtLaunchConfigurationDelegate.LAUNCH_CONFIGURATION_TYPE_ID); //$NON-NLS-1$
+		}
 		return type;
 	}
-	
+
 	public static List<TargetUriData> getTargetUris(ILaunchConfiguration configuration) throws CoreException {
-    	int elemCount = configuration.getAttribute(IQvtLaunchConstants.ELEM_COUNT, 0);
+		int elemCount = configuration.getAttribute(IQvtLaunchConstants.ELEM_COUNT, 0);
 		List<TargetUriData> targetUris = new ArrayList<TargetUriData>(elemCount);
-    	for (int i = 0; i < elemCount; ++i) {
-    		TargetUriData targetData = QvtLaunchUtil.getTargetUriData(configuration, i+1);
-    		targetUris.add(targetData);
-    	}
-    	return targetUris;
+		for (int i = 0; i < elemCount; ++i) {
+			TargetUriData targetData = QvtLaunchUtil.getTargetUriData(configuration, i+1);
+			targetUris.add(targetData);
+		}
+		return targetUris;
 	}
-		
+
 	public static String getTransformationURI(ILaunchConfiguration configuration) throws CoreException {
 		return configuration.getAttribute(IQvtLaunchConstants.MODULE, (String) null);
 	}
-	
+
 	public static String getTraceFileURI(ILaunchConfiguration configuration) throws CoreException {
 		return configuration.getAttribute(IQvtLaunchConstants.TRACE_FILE, (String) null);
-	}	
-	
+	}
+
 	public static boolean shouldGenerateTraceFile(ILaunchConfiguration configuration) throws CoreException {
 		return configuration.getAttribute(IQvtLaunchConstants.USE_TRACE_FILE, false);
 	}
-	
+
 	public static boolean isIncrementalUpdate(ILaunchConfiguration configuration) throws CoreException {
 		return configuration.getAttribute(IQvtLaunchConstants.IS_INCREMENTAL_UPDATE, false);
 	}
-	
-    public static TargetUriData getTargetUriData(ILaunchConfiguration configuration, int index) throws CoreException {
-    	TargetUriData.TargetType targetType = TargetUriData.TargetType.NEW_MODEL;
-    	try {
-   	        targetType = TargetType.valueOf(configuration.getAttribute(getIndexedName(IQvtLaunchConstants.TARGET_TYPE, index), "NEW_MODEL")); //$NON-NLS-1$
-    	}
-    	catch (Exception e) {
-    		targetType = TargetUriData.TargetType.NEW_MODEL;
-    	}
-    	
-        String uri = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.TARGET_MODEL, index), ""); //$NON-NLS-1$
-    	String feature = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.FEATURE_NAME, index), ""); //$NON-NLS-1$
-    	boolean clearContents = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.CLEAR_CONTENTS, index), true);
-    	
-    	TargetUriData.ContentProvider contentProvider = null;
+
+	public static TargetUriData getTargetUriData(ILaunchConfiguration configuration, int index) throws CoreException {
+		TargetUriData.TargetType targetType = TargetUriData.TargetType.NEW_MODEL;
+		try {
+			targetType = TargetType.valueOf(configuration.getAttribute(getIndexedName(IQvtLaunchConstants.TARGET_TYPE, index), "NEW_MODEL")); //$NON-NLS-1$
+		}
+		catch (Exception e) {
+			targetType = TargetUriData.TargetType.NEW_MODEL;
+		}
+
+		String uri = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.TARGET_MODEL, index), ""); //$NON-NLS-1$
+		String feature = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.FEATURE_NAME, index), ""); //$NON-NLS-1$
+		boolean clearContents = configuration.getAttribute(getIndexedName(IQvtLaunchConstants.CLEAR_CONTENTS, index), true);
+
+		TargetUriData.ContentProvider contentProvider = null;
 		if (configuration.getAttributes() != null) {
 			contentProvider = (TargetUriData.ContentProvider) configuration.getAttributes().get(getIndexedName(IQvtLaunchConstants.CONTENT_PROVIDER, index));
 		}
-    	
-    	return new TargetUriData(targetType, uri, feature, clearContents, contentProvider);
-    }
-    
-    public static void saveTargetUriData(ILaunchConfigurationWorkingCopy configuration, List<TargetUriData> targetData) {
-        int index = 1;
-        for (TargetUriData targetUri : targetData) {
-    		QvtLaunchUtil.saveTargetUriData(configuration, targetUri, index);
-    		++index;
-        }
-    }
-    
-    public static void saveTargetUriData(ILaunchConfigurationWorkingCopy configuration, TargetUriData targetData, int index) {
-    	configuration.setAttribute(getIndexedName(IQvtLaunchConstants.TARGET_TYPE, index), targetData.getTargetType().toString()); 
-		configuration.setAttribute(getIndexedName(IQvtLaunchConstants.TARGET_MODEL, index), targetData.getUriString()); 
-    	configuration.setAttribute(getIndexedName(IQvtLaunchConstants.FEATURE_NAME, index), targetData.getFeature()); 
-    	configuration.setAttribute(getIndexedName(IQvtLaunchConstants.CLEAR_CONTENTS, index), targetData.isClearContents()); 
+
+		return new TargetUriData(targetType, uri, feature, clearContents, contentProvider);
+	}
+
+	public static void saveTargetUriData(ILaunchConfigurationWorkingCopy configuration, List<TargetUriData> targetData) {
+		int index = 1;
+		for (TargetUriData targetUri : targetData) {
+			QvtLaunchUtil.saveTargetUriData(configuration, targetUri, index);
+			++index;
+		}
+	}
+
+	public static void saveTargetUriData(ILaunchConfigurationWorkingCopy configuration, TargetUriData targetData, int index) {
+		configuration.setAttribute(getIndexedName(IQvtLaunchConstants.TARGET_TYPE, index), targetData.getTargetType().toString());
+		configuration.setAttribute(getIndexedName(IQvtLaunchConstants.TARGET_MODEL, index), targetData.getUriString());
+		configuration.setAttribute(getIndexedName(IQvtLaunchConstants.FEATURE_NAME, index), targetData.getFeature());
+		configuration.setAttribute(getIndexedName(IQvtLaunchConstants.CLEAR_CONTENTS, index), targetData.isClearContents());
 
 		if (targetData.getContentProvider() != null) {
 			try {
@@ -134,55 +135,55 @@
 			} catch (CoreException e) {
 			}
 		}
-    }
-    
-    public static Map<String, Object> getConfigurationProperty(ILaunchConfiguration configuration) {
-        return loadConfigurationProperties(configuration);
-    }
-    
-    public static ExecutionContext createContext(ILaunchConfiguration configuration) {
-    	return createContext(configuration, Log.NULL_LOG, new NullProgressMonitor());
-    }
-    
-    public static ExecutionContext createContext(ILaunchConfiguration configuration, Log log, IProgressMonitor monitor) {
-    	return createContext(getConfigurationProperty(configuration), log, monitor);
-    }
-    
+	}
+
+	public static Map<String, Object> getConfigurationProperty(ILaunchConfiguration configuration) {
+		return loadConfigurationProperties(configuration);
+	}
+
+	public static ExecutionContext createContext(ILaunchConfiguration configuration) {
+		return createContext(configuration, Log.NULL_LOG, new NullProgressMonitor());
+	}
+
+	public static ExecutionContext createContext(ILaunchConfiguration configuration, Log log, IProgressMonitor monitor) {
+		return createContext(getConfigurationProperty(configuration), log, monitor);
+	}
+
 	public static ExecutionContext createContext(Map<String, Object> configProps) {
 		return createContext(configProps, Log.NULL_LOG);
 	}
-	
+
 	public static ExecutionContext createContext(Map<String, Object> configProps, Log log) {
 		return createContext(configProps, log, new NullProgressMonitor());
 	}
-	
+
 	public static ExecutionContext createContext(Map<String, Object> configProps, Log log, IProgressMonitor monitor) {
 		ExecutionContextImpl context = new ExecutionContextImpl();
 		if (configProps != null) {
-	    	for (String name : configProps.keySet()) {
+			for (String name : configProps.keySet()) {
 				context.setConfigProperty(name, configProps.get(name));
 			}
 		}
-		
+
 		context.setLog(log);
 		context.setProgressMonitor(monitor);
-		
-        return context;
+
+		return context;
 	}
-    
-    public static Map<String, Object> loadConfigurationProperties(ILaunchConfiguration configuration) {
-        Map<String, Object> map;
-        try {
+
+	public static Map<String, Object> loadConfigurationProperties(ILaunchConfiguration configuration) {
+		Map<String, Object> map;
+		try {
 			Map<String, String> configProps = configuration.getAttribute(IQvtLaunchConstants.CONFIGURATION_PROPERTIES, Collections.<String, String>emptyMap());
-            map = new LinkedHashMap<String, Object>(configProps);
-        } catch (CoreException e) {
-            map = Collections.<String, Object>emptyMap();
-            QvtRuntimePlugin.getDefault().getLog().log(MiscUtil.makeErrorStatus(e)); 
-        }
-        return map;
-    }
-    
-    public static Map<String, Object> getConfigProperties(ExecutionContext context) {
+			map = new LinkedHashMap<String, Object>(configProps);
+		} catch (CoreException e) {
+			map = Collections.<String, Object>emptyMap();
+			QvtRuntimePlugin.getDefault().getLog().log(MiscUtil.makeErrorStatus(e));
+		}
+		return map;
+	}
+
+	public static Map<String, Object> getConfigProperties(ExecutionContext context) {
 		Map<String, Object> props = new HashMap<String, Object>();
 		for(String name : context.getConfigPropertyNames()) {
 			props.put(name, context.getConfigProperty(name));
@@ -191,100 +192,100 @@
 	}
 
 
-    
-    private static String getIndexedName(String name, int index){
-    	if (index == 0) {
-    		return name;
-    	}
-    	return name + index;
-    }
 
-	public static void doLaunch(QvtTransformation transformation, ILaunchConfiguration configuration, ExecutionContext context) throws CoreException, MdaException {
-			List<TargetUriData> targetUris = getTargetUris(configuration);
-						
-			List<URI> paramUris = new ArrayList<URI>(targetUris.size());
-			for(TargetUriData data : targetUris) {
-				paramUris.add(data.getUri());
-			}
-	
-	        String traceFile = getTraceFileURI(configuration);        
-	        doLaunch(transformation, paramUris, toUri(traceFile), context, shouldGenerateTraceFile(configuration), isIncrementalUpdate(configuration));
-	    }
+	private static String getIndexedName(String name, int index){
+		if (index == 0) {
+			return name;
+		}
+		return name + index;
+	}
+
+	public static void doLaunch(QvtTransformation transformation, ILaunchConfiguration configuration, ExecutionContext context) throws CoreException {
+		List<TargetUriData> targetUris = getTargetUris(configuration);
+
+		List<URI> paramUris = new ArrayList<URI>(targetUris.size());
+		for(TargetUriData data : targetUris) {
+			paramUris.add(data.getUri());
+		}
+
+		String traceFile = getTraceFileURI(configuration);
+		doLaunch(transformation, paramUris, toUri(traceFile), context, shouldGenerateTraceFile(configuration), isIncrementalUpdate(configuration));
+	}
 
 	@Deprecated
 	public static void doLaunch(QvtTransformation transformation, List<ModelContent> inObjs, Map<String, Object> configProps,
 			List<ModelExtentContents> outExtents, List<EObject> outMainParams, List<Trace> outTraces, List<String> outConsole) throws MdaException {
-	
-	    IStatus status = QvtValidator.validateTransformation(transformation, inObjs, null);                    
-	    if (status.getSeverity() > IStatus.WARNING) {
-	    	throw new MdaException(status);
-	    }      	
-	    
-	    final StringWriter consoleLogger = new StringWriter();
-	    
-	    ExecutionContext context = createContext(configProps, new WriterLog(consoleLogger));
-			
-		org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.In in = 
-			new org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.In(
-					inObjs.toArray(new ModelContent[inObjs.size()]), context);
+
+		IStatus status = QvtValidator.validateTransformation(transformation, inObjs, null);
+		if (status.getSeverity() > IStatus.WARNING) {
+			throw new MdaException(status);
+		}
+
+		final StringWriter consoleLogger = new StringWriter();
+
+		ExecutionContext context = createContext(configProps, new WriterLog(consoleLogger));
+
+		org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.In in =
+				new org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.In(
+						inObjs.toArray(new ModelContent[inObjs.size()]), context);
 		org.eclipse.m2m.internal.qvt.oml.runtime.generator.TransformationRunner.Out out = transformation.run(in);
-	
-	    outExtents.addAll(out.getExtents());
-	
-	    for (Object outValue : out.getOutParamValues()) {
-	    	if (outValue instanceof EObject) {
-	    		outMainParams.add((EObject) outValue);
-	    	}
-	    	else {
-	    		outMainParams.add(null);
-	    	}
-	    }
-	    
-	    if (out.getTrace() != null) {
-	    	outTraces.add(out.getTrace());
-	    }
-	    outConsole.add(consoleLogger.getBuffer().toString());
+
+		outExtents.addAll(out.getExtents());
+
+		for (Object outValue : out.getOutParamValues()) {
+			if (outValue instanceof EObject) {
+				outMainParams.add((EObject) outValue);
+			}
+			else {
+				outMainParams.add(null);
+			}
+		}
+
+		if (out.getTrace() != null) {
+			outTraces.add(out.getTrace());
+		}
+		outConsole.add(consoleLogger.getBuffer().toString());
 	}
-	
+
 	public static void doLaunch(final QvtTransformation transf, List<URI> paramUris, URI traceUri, ExecutionContext context,
-			boolean isSaveTrace, boolean isIncrementalUpdate) throws MdaException {
-	    		    	
-    	TransformationRunner runner = new QvtTransformationRunner(transf, paramUris);
-    	    	
-    	runner.setTraceFile(traceUri);
-    	runner.setSaveTrace(isSaveTrace && traceUri != null);
-    	runner.setIncrementalUpdate(isIncrementalUpdate && traceUri != null);
-    		    	
-    	Diagnostic diag = runner.execute(context);
-    	    	
-    	IStatus status = BasicDiagnostic.toIStatus(diag);
-    	
-    	if (!status.isOK()) {
-    		
-    		Throwable e = diag.getException();
-    		
-    		// ensure stack trace access by propagating QvtRuntimeException
-    		if (e instanceof QvtRuntimeException) {
-    			throw (QvtRuntimeException) e;
-    		}
-    		
-    		throw new MdaException(status); 		
-    	}
+			boolean isSaveTrace, boolean isIncrementalUpdate) throws CoreException {
+
+		TransformationRunner runner = new QvtTransformationRunner(transf, paramUris);
+
+		runner.setTraceFile(traceUri);
+		runner.setSaveTrace(isSaveTrace && traceUri != null);
+		runner.setIncrementalUpdate(isIncrementalUpdate && traceUri != null);
+
+		Diagnostic diag = runner.execute(context);
+
+		IStatus status = BasicDiagnostic.toIStatus(diag);
+
+		if (!status.isOK()) {
+
+			Throwable e = diag.getException();
+
+			// ensure stack trace access by propagating QvtRuntimeException
+			if (e instanceof QvtRuntimeException) {
+				throw (QvtRuntimeException) e;
+			}
+
+			throw new CoreException(status);
+		}
 	}
 
-	private static URI toUri(String uriString) throws MdaException {
-        if(uriString == null || uriString.length() == 0) {
-            return null;
-        }
+	private static URI toUri(String uriString) throws CoreException {
+		if(uriString == null || uriString.length() == 0) {
+			return null;
+		}
 
-        URI uri = EmfUtil.makeUri(uriString);  
-	    if(uri == null) {
-	        throw new MdaException(NLS.bind(Messages.QvtValidator_InvalidUri, uriString));
-	    }
-	    
-	    return uri;
+		URI uri = EmfUtil.makeUri(uriString);
+		if(uri == null) {
+			throw new CoreException(new Status(IStatus.ERROR, QvtRuntimePlugin.ID, NLS.bind(Messages.QvtValidator_InvalidUri, uriString)));
+		}
+
+		return uri;
 	}
-	
+
 	private static class QvtTransformationRunner extends TransformationRunner {
 		public QvtTransformationRunner(QvtTransformation transf, List<URI> paramUris) {
 			super(transf, paramUris);