changeset 1098:2471ea5c679c

Emit output if NoClassDefFoundError is thrown reviewed-by: omajid review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-May/006637.html
author Jon VanAlten <jon.vanalten@redhat.com>
date Thu, 16 May 2013 11:40:43 -0600
parents e31208c2d0c8
children 07dca767d55d
files launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java
diffstat 1 files changed, 7 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- a/launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java	Fri May 17 16:18:36 2013 -0400
+++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/LauncherImpl.java	Thu May 16 11:40:43 2013 -0600
@@ -131,6 +131,13 @@
             } else {
                 runCommandFromArguments(args, listeners, inShell);
             }
+        } catch (NoClassDefFoundError e) {
+            // This could mean pom is missing <Private-Package> or <Export-Package> lines.
+            // Should be resolved during development, but if we don't catch and print
+            // something the error is swallowed and the cause is non-obvious.
+            System.err.println("Caught NoClassDefFoundError! Check pom for the missing class: \""
+                    + e.getMessage() + "\".  Its package may not be listed.");
+            throw e;
         } finally {
             args = null;
             boolean isLastLaunch = (usageCount.decrementAndGet() == 0);