# HG changeset patch # User Matthias Grimmer # Date 1364575317 -3600 # Node ID dd3c52b31c3db3810d73a72000bc8203fef7ce4e # Parent 4bd7971c0630474242cc5d369ac0d7847f68b908# Parent b82ffd0c4ed25a47591a8e72dc0bf436a6f551c7 Merge diff -r 4bd7971c0630 -r dd3c52b31c3d graal/com.oracle.graal.api.runtime/src/com/oracle/graal/api/runtime/Graal.java --- a/graal/com.oracle.graal.api.runtime/src/com/oracle/graal/api/runtime/Graal.java Fri Mar 29 17:41:47 2013 +0100 +++ b/graal/com.oracle.graal.api.runtime/src/com/oracle/graal/api/runtime/Graal.java Fri Mar 29 17:41:57 2013 +0100 @@ -36,26 +36,38 @@ try { runtime = initializeRuntime(); } catch (UnsatisfiedLinkError e) { - runtime = new GraalRuntime() { - - @Override - public String getName() { - return ""; - } - - @Override - public T getCapability(Class clazz) { - return null; - } - }; + runtime = new InvalidGraalRuntime(); } } public static T getRequiredCapability(Class clazz) { T t = getRuntime().getCapability(clazz); if (t == null) { - throw new IllegalAccessError("Runtime does not expose required capability " + clazz.getName()); + String javaHome = System.getProperty("java.home"); + String vmName = System.getProperty("java.vm.name"); + StringBuilder errorMessage = new StringBuilder(); + if (runtime.getClass() == InvalidGraalRuntime.class) { + errorMessage.append(String.format("The VM does not support the Graal API.\n")); + } else { + errorMessage.append(String.format("The VM does not expose required Graal capability %s.\n", clazz.getName())); + } + errorMessage.append(String.format("Currently used Java home directory is %s.\n", javaHome)); + errorMessage.append(String.format("Currently used VM configuration is: %s", vmName)); + throw new UnsupportedOperationException(errorMessage.toString()); } return t; } + + private static final class InvalidGraalRuntime implements GraalRuntime { + + @Override + public String getName() { + return ""; + } + + @Override + public T getCapability(Class clazz) { + return null; + } + } } diff -r 4bd7971c0630 -r dd3c52b31c3d graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/ConvertJTT.java --- a/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/ConvertJTT.java Fri Mar 29 17:41:47 2013 +0100 +++ b/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/ConvertJTT.java Fri Mar 29 17:41:57 2013 +0100 @@ -52,8 +52,7 @@ try { processFile(file.toPath(), new File(targetDir, file.getName()).toPath(), packageName); } catch (RuntimeException e) { - e.printStackTrace(); - System.out.println("in file " + file.getAbsolutePath()); + throw new RuntimeException(String.format("Exception while processing file %s", file.getAbsolutePath()), e); } } } diff -r 4bd7971c0630 -r dd3c52b31c3d graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/reflect/Field_get03.java --- a/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/reflect/Field_get03.java Fri Mar 29 17:41:47 2013 +0100 +++ b/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/reflect/Field_get03.java Fri Mar 29 17:41:57 2013 +0100 @@ -50,10 +50,8 @@ FloatField = Field_get03.class.getField("floatField"); DoubleField = Field_get03.class.getField("doubleField"); BooleanField = Field_get03.class.getField("booleanField"); - } catch (SecurityException e) { - e.printStackTrace(); - } catch (NoSuchFieldException e) { - e.printStackTrace(); + } catch (SecurityException | NoSuchFieldException e) { + throw new RuntimeException(e); } } diff -r 4bd7971c0630 -r dd3c52b31c3d graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectList.java --- a/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectList.java Fri Mar 29 17:41:47 2013 +0100 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectList.java Fri Mar 29 17:41:57 2013 +0100 @@ -53,8 +53,8 @@ try { field.setAccessible(true); str.append(str.length() > 0 ? ", " : "").append(name).append("=").append(format(field.get(this))); - } catch (Exception e) { - e.printStackTrace(); + } catch (SecurityException | IllegalAccessException e) { + throw new RuntimeException(e); } } }