diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java index 775704b457f8..db0ec415b8c1 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/DebugProcessImpl.java @@ -1555,14 +1555,8 @@ public abstract class DebugProcessImpl extends UserDataHolderBase implements Deb evaluationContext.getClassLoader()); // reserve one extra element for the return value - ArrayReference arrayArgs = DebuggerUtilsEx.mirrorOfArray(objectArrayClass, boxedArgs.size() + 1, evaluationContext); - try { - DebuggerUtilsEx.setArrayValues(arrayArgs, boxedArgs, false); - } - catch (Exception e) { - throw new EvaluateException(e.getMessage(), e); - } - invokerArgs.add(arrayArgs); + boxedArgs.add(null); + invokerArgs.add(DebuggerUtilsEx.mirrorOfArray(objectArrayClass, boxedArgs, evaluationContext)); // args invokerArgs.add(method.declaringType().classLoader()); // method's declaring type class loader to be able to resolve parameter types return DebuggerUtilsImpl.invokeHelperMethod(evaluationContext, MethodInvoker.class, "invoke", invokerArgs, false); } diff --git a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.java b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.java index 99f3417184de..04780b6eb8a5 100644 --- a/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.java +++ b/java/debugger/impl/src/com/intellij/debugger/ui/tree/render/BatchEvaluator.java @@ -130,8 +130,8 @@ public final class BatchEvaluator { } // reserve one extra element for the return value to avoid gc collection of the result - ArrayReference argArray = DebuggerUtilsEx.mirrorOfArray(objectArrayClass, values.size() + 1, evaluationContext); - DebuggerUtilsEx.setArrayValues(argArray, values, false); + ArrayReference argArray = + DebuggerUtilsEx.mirrorOfArray(objectArrayClass, ContainerUtil.append(values, (Value)null), evaluationContext); Value result = ((DebugProcessImpl)debugProcess).invokeMethod( evaluationContext, myBatchEvaluatorClass, myBatchEvaluatorMethod, Collections.singletonList(argArray), @@ -165,7 +165,7 @@ public final class BatchEvaluator { return true; } } - catch (EvaluateException | ClassNotLoadedException | InvalidTypeException e) { + catch (EvaluateException e) { LOG.error(e); } return false;