Return-Path: X-Original-To: apmail-camel-commits-archive@www.apache.org Delivered-To: apmail-camel-commits-archive@www.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 7B08F18C28 for ; Thu, 17 Dec 2015 10:31:48 +0000 (UTC) Received: (qmail 81991 invoked by uid 500); 17 Dec 2015 10:31:48 -0000 Delivered-To: apmail-camel-commits-archive@camel.apache.org Received: (qmail 81901 invoked by uid 500); 17 Dec 2015 10:31:48 -0000 Mailing-List: contact commits-help@camel.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: dev@camel.apache.org Delivered-To: mailing list commits@camel.apache.org Received: (qmail 81788 invoked by uid 99); 17 Dec 2015 10:31:48 -0000 Received: from git1-us-west.apache.org (HELO git1-us-west.apache.org) (140.211.11.23) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 17 Dec 2015 10:31:48 +0000 Received: by git1-us-west.apache.org (ASF Mail Server at git1-us-west.apache.org, from userid 33) id 0DC5EE1083; Thu, 17 Dec 2015 10:31:48 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: davsclaus@apache.org To: commits@camel.apache.org Date: Thu, 17 Dec 2015 10:31:49 -0000 Message-Id: <417a70dbe23d476b949d2a108daac23b@git.apache.org> In-Reply-To: References: X-Mailer: ASF-Git Admin Mailer Subject: [3/3] camel git commit: camel apt compiler plugin write error log. Also fix problem for javac to scan/load hadoop/spark JARs camel apt compiler plugin write error log. Also fix problem for javac to scan/load hadoop/spark JARs Project: http://git-wip-us.apache.org/repos/asf/camel/repo Commit: http://git-wip-us.apache.org/repos/asf/camel/commit/0535e482 Tree: http://git-wip-us.apache.org/repos/asf/camel/tree/0535e482 Diff: http://git-wip-us.apache.org/repos/asf/camel/diff/0535e482 Branch: refs/heads/camel-2.16.x Commit: 0535e48294008db473354eda9f401634c31ef9af Parents: 670363f Author: Claus Ibsen Authored: Thu Dec 17 08:33:13 2015 +0100 Committer: Claus Ibsen Committed: Thu Dec 17 11:31:28 2015 +0100 ---------------------------------------------------------------------- .../tools/apt/AbstractAnnotationProcessor.java | 31 +++++++++++++++++++- .../camel/tools/apt/EipAnnotationProcessor.java | 2 +- .../tools/apt/EndpointAnnotationProcessor.java | 2 +- 3 files changed, 32 insertions(+), 3 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/camel/blob/0535e482/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractAnnotationProcessor.java index 9a49110..c5af901 100644 --- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractAnnotationProcessor.java +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/AbstractAnnotationProcessor.java @@ -17,6 +17,7 @@ package org.apache.camel.tools.apt; import java.io.File; +import java.io.FileOutputStream; import java.io.FileWriter; import java.io.IOException; import java.io.InputStream; @@ -24,6 +25,7 @@ import java.io.PrintWriter; import java.io.StringWriter; import java.io.Writer; import java.net.URI; +import java.util.Collections; import java.util.List; import java.util.Set; import javax.annotation.processing.AbstractProcessor; @@ -208,7 +210,7 @@ public abstract class AbstractAnnotationProcessor extends AbstractProcessor { String packageName = className.substring(0, idx); PackageElement pe = elementUtils.getPackageElement(packageName); if (pe != null) { - List enclosedElements = pe.getEnclosedElements(); + List enclosedElements = getEnclosedElements(pe); for (Element rootElement : enclosedElements) { if (rootElement instanceof TypeElement) { TypeElement typeElement = (TypeElement) rootElement; @@ -224,6 +226,17 @@ public abstract class AbstractAnnotationProcessor extends AbstractProcessor { return null; } + @SuppressWarnings("unchecked") + private List getEnclosedElements(PackageElement pe) { + // some components like hadoop/spark has bad classes that causes javac scanning issues + try { + return pe.getEnclosedElements(); + } catch (Throwable e) { + // ignore + } + return Collections.EMPTY_LIST; + } + protected void findTypeElementChildren(RoundEnvironment roundEnv, Set found, String superClassName) { Elements elementUtils = processingEnv.getElementUtils(); @@ -350,4 +363,20 @@ public abstract class AbstractAnnotationProcessor extends AbstractProcessor { return null; } + + protected void dumpExceptionToErrorFile(String fileName, String message, Throwable e) { + File file = new File(fileName); + try { + FileOutputStream fos = new FileOutputStream(file); + StringWriter sw = new StringWriter(); + PrintWriter pw = new PrintWriter(sw); + e.printStackTrace(pw); + fos.write(sw.toString().getBytes()); + pw.close(); + sw.close(); + fos.close(); + } catch (Throwable t) { + // ignore + } + } } http://git-wip-us.apache.org/repos/asf/camel/blob/0535e482/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java index d124e39..e817d64 100644 --- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EipAnnotationProcessor.java @@ -102,7 +102,7 @@ public class EipAnnotationProcessor extends AbstractAnnotationProcessor { } } } catch (Throwable e) { - // ignore + dumpExceptionToErrorFile("camel-apt-error.log", "Error processing EIP model", e); } return true; } http://git-wip-us.apache.org/repos/asf/camel/blob/0535e482/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java ---------------------------------------------------------------------- diff --git a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java index d7c6249..e662217 100644 --- a/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java +++ b/tooling/apt/src/main/java/org/apache/camel/tools/apt/EndpointAnnotationProcessor.java @@ -79,7 +79,7 @@ public class EndpointAnnotationProcessor extends AbstractAnnotationProcessor { } } } catch (Throwable e) { - // ignore + dumpExceptionToErrorFile("camel-apt-error.log", "Error processing @UriEndpoint", e); } return true; }