diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/EvaluatorBuilderImpl.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/EvaluatorBuilderImpl.java index 8115aac74c79..9375f197ca11 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/EvaluatorBuilderImpl.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/EvaluatorBuilderImpl.java @@ -1249,7 +1249,7 @@ public class EvaluatorBuilderImpl implements EvaluatorBuilder { } } myResult = new ArrayInitializerEvaluator(evaluators); - if (!(expression.getParent() instanceof PsiNewExpression)) { + if (type != null && !(expression.getParent() instanceof PsiNewExpression)) { myResult = new NewArrayInstanceEvaluator(new TypeEvaluator(JVMNameUtil.getJVMQualifiedName(type)), null, myResult); diff --git a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/NewArrayInstanceEvaluator.java b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/NewArrayInstanceEvaluator.java index a0f9033725a0..ebcdf443c6be 100644 --- a/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/NewArrayInstanceEvaluator.java +++ b/java/debugger/impl/src/com/intellij/debugger/engine/evaluation/expression/NewArrayInstanceEvaluator.java @@ -95,12 +95,18 @@ class NewArrayInstanceEvaluator implements Evaluator { int length = arrayReference.length(); for (int idx = 0; idx < length; idx++) { ArrayReference componentArray = (ArrayReference)arrayReference.getValue(idx); - Object[] componentArrayValues = (Object[])values[idx]; - if (componentArray == null) { - componentArray = debugProcess.newInstance(componentType, componentArrayValues.length); - arrayReference.setValue(idx, componentArray); + Object value = values[idx]; + if (value instanceof Value) { + arrayReference.setValue(idx, (Value)value); + } + else { + Object[] componentArrayValues = (Object[])value; + if (componentArray == null) { + componentArray = debugProcess.newInstance(componentType, componentArrayValues.length); + arrayReference.setValue(idx, componentArray); + } + setInitialValues(componentArray, componentArrayValues, context); } - setInitialValues(componentArray, componentArrayValues, context); } } else {