JDK-8191948 : jdb error: InvalidTypeException: Can't assign double[][][] to double[][][]
  • Type: Bug
  • Component: core-svc
  • Sub-Component: debugger
  • Affected Version: 8,10,11
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2017-11-28
  • Updated: 2019-09-04
  • Resolved: 2018-07-13
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 11 JDK 12 JDK 8
11 b23Fixed 12Fixed 8u202Fixed
Related Reports
Relates :  
Description
Watch can't assign multi-dimensional array. Watch fails when trying to 
evaluate a method taking a multi-dimensional array (more than 2 dimensions) 
as parameter. 

Code 
public class Test { 
    private static double foo(double[][][] d) { 
        return 0.0; 
    } 

    public static void main(String[] args) { 
        double[][][] test = new double[2][2][2]; 
        double x = foo(test); 
        System.out.println(x); 
    } 
} 
Place a breakpoint at line 8 (double x = foo(test);) and Debug. Add a Watch 
for foo(test).  Expression fails to evaluate with message "Type mismatch Can't assign 

Comments
This issue is reproducible in 11 also (11 ea b19) -sh-4.2$ /scratch/fairoz/JAVA/jdk11/jdk-11-ea+19/bin/jdb MultiArray Initializing jdb ... > stop at MultiArray:8 Deferring breakpoint MultiArray:8. It will be set after the class is loaded. > run run MultiArray Set uncaught java.lang.Throwable Set deferred uncaught java.lang.Throwable > VM Started: Set deferred breakpoint MultiArray:8 Breakpoint hit: "thread=main", MultiArray.main(), line=8 bci=8 8 double x = foo(test); // set a breakpoint here main[1] eval MultiArray.foo(test) com.sun.jdi.InvalidTypeException: Can't assign double[][][] to double[][][] MultiArray.foo(test) = null main[1]
05-07-2018