Skip to content

Commit 8a448eb

Browse files
authored
Class cast exception fix (#735)
This commit processes a java.lang.Object class for JavaPrimitiveRuntimeContext.getReceivingType() when a valid IJavaReferenceType is required for primitive detail formatter calculation fixes : #734
1 parent 3cc1183 commit 8a448eb

File tree

1 file changed

+12
-1
lines changed

1 file changed

+12
-1
lines changed

org.eclipse.jdt.debug/eval/org/eclipse/jdt/internal/debug/eval/ast/engine/JavaPrimitiveRuntimeContext.java

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,8 @@
1313
*******************************************************************************/
1414
package org.eclipse.jdt.internal.debug.eval.ast.engine;
1515

16+
import java.util.List;
17+
1618
import org.eclipse.core.runtime.CoreException;
1719
import org.eclipse.jdt.core.IJavaProject;
1820
import org.eclipse.jdt.debug.core.IJavaDebugTarget;
@@ -21,6 +23,11 @@
2123
import org.eclipse.jdt.debug.core.IJavaReferenceType;
2224
import org.eclipse.jdt.debug.core.IJavaThread;
2325
import org.eclipse.jdt.debug.core.IJavaVariable;
26+
import org.eclipse.jdt.internal.debug.core.model.JDIClassType;
27+
import org.eclipse.jdt.internal.debug.core.model.JDIDebugTarget;
28+
29+
import com.sun.jdi.ClassType;
30+
import com.sun.jdi.ReferenceType;
2431

2532
public class JavaPrimitiveRuntimeContext extends AbstractRuntimeContext {
2633
/**
@@ -70,7 +77,11 @@ public IJavaPrimitiveValue getThisPrimitive() {
7077
*/
7178
@Override
7279
public IJavaReferenceType getReceivingType() throws CoreException {
73-
return (IJavaReferenceType) getThisPrimitive().getJavaType();
80+
JDIDebugTarget target = (JDIDebugTarget) getThisPrimitive().getJavaType().getDebugTarget();
81+
List<ReferenceType> ref = target.getVM().classesByName("java.lang.Object"); //$NON-NLS-1$
82+
ClassType classType = (ClassType) ref.get(0);
83+
JDIClassType jdiClassType = new JDIClassType(target, classType);
84+
return jdiClassType;
7485
}
7586

7687
/**

0 commit comments

Comments
 (0)