diff options
Diffstat (limited to 'src/utils')
-rw-r--r-- | src/utils/lombok/core/SpiLoadUtil.java | 10 | ||||
-rw-r--r-- | src/utils/lombok/javac/Javac.java | 8 |
2 files changed, 13 insertions, 5 deletions
diff --git a/src/utils/lombok/core/SpiLoadUtil.java b/src/utils/lombok/core/SpiLoadUtil.java index 02c02496..e685acd6 100644 --- a/src/utils/lombok/core/SpiLoadUtil.java +++ b/src/utils/lombok/core/SpiLoadUtil.java @@ -26,6 +26,7 @@ import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.lang.annotation.Annotation; +import java.lang.reflect.InvocationTargetException; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; import java.net.URL; @@ -108,10 +109,13 @@ public class SpiLoadUtil { @Override public C next() { try { - return target.cast(Class.forName(names.next(), true, fLoader).newInstance()); + return target.cast(Class.forName(names.next(), true, fLoader).getConstructor().newInstance()); } catch (Exception e) { - if (e instanceof RuntimeException) throw (RuntimeException)e; - throw new RuntimeException(e); + Throwable t = e; + if (t instanceof InvocationTargetException) t = t.getCause(); + if (t instanceof RuntimeException) throw (RuntimeException) t; + if (t instanceof Error) throw (Error) t; + throw new RuntimeException(t); } } diff --git a/src/utils/lombok/javac/Javac.java b/src/utils/lombok/javac/Javac.java index 7a264e39..3cc72f4e 100644 --- a/src/utils/lombok/javac/Javac.java +++ b/src/utils/lombok/javac/Javac.java @@ -409,10 +409,14 @@ public class Javac { } else { try { if (CTC_VOID.equals(tag)) { - return (Type) JC_VOID_TYPE.newInstance(); + return (Type) JC_VOID_TYPE.getConstructor().newInstance(); } else { - return (Type) JC_NO_TYPE.newInstance(); + return (Type) JC_NO_TYPE.getConstructor().newInstance(); } + } catch (InvocationTargetException e) { + throw sneakyThrow(e.getCause()); + } catch (NoSuchMethodException e) { + throw sneakyThrow(e); } catch (IllegalAccessException e) { throw sneakyThrow(e); } catch (InstantiationException e) { |