diff --git a/compiler/rt/libcore/libdvm/src/main/java/java/lang/Class.java b/compiler/rt/libcore/libdvm/src/main/java/java/lang/Class.java index e4bf95a66..83182ab1c 100755 --- a/compiler/rt/libcore/libdvm/src/main/java/java/lang/Class.java +++ b/compiler/rt/libcore/libdvm/src/main/java/java/lang/Class.java @@ -1006,7 +1006,9 @@ public T newInstance() throws InstantiationException, IllegalAccessException { } catch (NoSuchMethodException e) { throw new InstantiationException(e.getMessage()); } catch (InvocationTargetException e) { - throw new InstantiationException(e.getMessage()); + InstantiationException instantiationException = new InstantiationException(e.getMessage()); + instantiationException.initCause(e.getTargetException()); + throw instantiationException; } }