# HG changeset patch # User Mick Jordan # Date 1364575183 25200 # Node ID 916a1f1a96f04d2290e9cb9fbc58cfcd9a90d7cc # Parent ea3ae49a7fa375f65ae2471e92a6ef3350089305# Parent b82ffd0c4ed25a47591a8e72dc0bf436a6f551c7 Merge diff -r ea3ae49a7fa3 -r 916a1f1a96f0 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 Thu Mar 28 21:01:48 2013 -0700 +++ b/graal/com.oracle.graal.api.runtime/src/com/oracle/graal/api/runtime/Graal.java Fri Mar 29 09:39:43 2013 -0700 @@ -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 ea3ae49a7fa3 -r 916a1f1a96f0 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 Thu Mar 28 21:01:48 2013 -0700 +++ b/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/ConvertJTT.java Fri Mar 29 09:39:43 2013 -0700 @@ -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 ea3ae49a7fa3 -r 916a1f1a96f0 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 Thu Mar 28 21:01:48 2013 -0700 +++ b/graal/com.oracle.graal.jtt/src/com/oracle/graal/jtt/reflect/Field_get03.java Fri Mar 29 09:39:43 2013 -0700 @@ -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 ea3ae49a7fa3 -r 916a1f1a96f0 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 Thu Mar 28 21:01:48 2013 -0700 +++ b/graal/com.oracle.graal.virtual/src/com/oracle/graal/virtual/phases/ea/EffectList.java Fri Mar 29 09:39:43 2013 -0700 @@ -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); } } }