diff options
author | Jayaprakash Arthanareeswaran | 2018-11-11 12:01:07 +0000 |
---|---|---|
committer | Jayaprakash Arthanareeswaran | 2018-11-11 12:01:07 +0000 |
commit | e3b679968a49a9bb4b0c122ae739c6d7c8fb295c (patch) | |
tree | b27d3f6c80cac7c5a3f131965bd10cb977072579 /org.eclipse.jdt.compiler.tool | |
parent | 6df57f8151cac394edc37cf05418cb56c411449d (diff) | |
parent | d7dab33b1df21a757b4a698338d9f4cf4e29b52c (diff) | |
download | eclipse.jdt.core-e3b679968a49a9bb4b0c122ae739c6d7c8fb295c.tar.gz eclipse.jdt.core-e3b679968a49a9bb4b0c122ae739c6d7c8fb295c.tar.xz eclipse.jdt.core-e3b679968a49a9bb4b0c122ae739c6d7c8fb295c.zip |
Merge remote-tracking branch 'origin/master' into BETA_JAVA_12
Diffstat (limited to 'org.eclipse.jdt.compiler.tool')
3 files changed, 79 insertions, 0 deletions
diff --git a/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompiler.java b/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompiler.java index bb96be7f31..a8033daa7f 100644 --- a/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompiler.java +++ b/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompiler.java @@ -10,6 +10,7 @@ * * Contributors: * IBM Corporation - initial API and implementation + * Frits Jalvingh - fix for bug 533830. *******************************************************************************/ package org.eclipse.jdt.internal.compiler.tool; @@ -169,6 +170,8 @@ public class EclipseCompiler implements JavaCompiler { try { eclipseCompiler2.configure(optionsToProcess); } catch (IllegalArgumentException e) { + if(null != someDiagnosticListener) + someDiagnosticListener.report(new ExceptionDiagnostic(e)); throw e; } diff --git a/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompilerImpl.java b/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompilerImpl.java index 1d27e54358..d1f50cac62 100644 --- a/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompilerImpl.java +++ b/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/EclipseCompilerImpl.java @@ -13,6 +13,7 @@ * IBM Corporation - fix for 342936 * Kenneth Olson - Contribution for bug 188796 - [jsr199] Using JSR199 to extend ECJ * Dennis Hendriks - Contribution for bug 188796 - [jsr199] Using JSR199 to extend ECJ + * Frits Jalvingh - fix for bug 533830. *******************************************************************************/ package org.eclipse.jdt.internal.compiler.tool; @@ -93,6 +94,7 @@ public class EclipseCompilerImpl extends Main { performCompilation(); } } catch(IllegalArgumentException e) { + diagnosticListener.report(new ExceptionDiagnostic(e)); this.logger.logException(e); if (this.systemExitWhenFinished) { cleanup(); @@ -100,6 +102,7 @@ public class EclipseCompilerImpl extends Main { } return false; } catch (RuntimeException e) { // internal compiler failure + diagnosticListener.report(new ExceptionDiagnostic(e)); e.printStackTrace(); this.logger.logException(e); return false; diff --git a/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/ExceptionDiagnostic.java b/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/ExceptionDiagnostic.java new file mode 100644 index 0000000000..8822b364fc --- /dev/null +++ b/org.eclipse.jdt.compiler.tool/src/org/eclipse/jdt/internal/compiler/tool/ExceptionDiagnostic.java @@ -0,0 +1,73 @@ +/******************************************************************************* + * Copyright (c) 2007, 2018 IBM Corporation and others. + * + * This program and the accompanying materials + * are made available under the terms of the Eclipse Public License 2.0 + * which accompanies this distribution, and is available at + * https://www.eclipse.org/legal/epl-2.0/ + * + * SPDX-License-Identifier: EPL-2.0 + * + * Contributors: + * Frits Jalvingh - fix for bug 533830. + *******************************************************************************/ +package org.eclipse.jdt.internal.compiler.tool; + +import java.util.Locale; + +import javax.tools.Diagnostic; +import javax.tools.JavaFileObject; +import javax.tools.Diagnostic.Kind; + +final class ExceptionDiagnostic implements Diagnostic<JavaFileObject> { + private final Exception exception; + + ExceptionDiagnostic(Exception e) { + this.exception = e; + } + + @Override + public String getCode() { + return "exception"; + } + + @Override + public long getColumnNumber() { + return 0; + } + + @Override + public long getEndPosition() { + return 0; + } + + @Override + public Kind getKind() { + return Kind.ERROR; + } + + @Override + public long getLineNumber() { + return 0; + } + + @Override + public String getMessage(Locale arg0) { + return exception.toString(); + } + + @Override + public long getPosition() { + return 0; + } + + @Override + public JavaFileObject getSource() { + return null; + } + + @Override + public long getStartPosition() { + return 0; + } +}
\ No newline at end of file |