[ 
https://issues.apache.org/jira/browse/GROOVY-1092?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Eric Milles updated GROOVY-1092:
--------------------------------
    Labels: ClassFormatError  (was: )

> Multidimensional arrays are broken
> ----------------------------------
>
>                 Key: GROOVY-1092
>                 URL: https://issues.apache.org/jira/browse/GROOVY-1092
>             Project: Groovy
>          Issue Type: Bug
>    Affects Versions: 1.0-JSR-3
>         Environment: Java 1.4.2, Windows XP
>            Reporter: Peter Eastman
>            Assignee: Jochen Theodorou
>            Priority: Critical
>              Labels: ClassFormatError
>
> Multidimensional arrays are completely broken.  If I try to create one using 
> the standard syntax
> a = new Object[2][2];
> I get an error
> Script1.groovy: 1: Unknown type: ARRAY_DECLARATOR at line: 1 column: 15. 
> File: Script1.groovy @ line 1, column 15.
> Nor does there seem to be any other syntax for creating a multidimensional 
> array.  Of course, I can do it by using reflection:
> import java.lang.reflect.*;
> a = Array.newInstance(Object.class, (int []) [2, 2]);
> That successfully creates a multidimensional array, but as soon as I try to 
> do anything with it, the parser dies.  For example, a simple reference to 
> a.length produces the following exception:
> java.lang.ClassFormatError: gjdk/[Ljava/lang/Object;_GroovyReflectorArray 
> (Illegal Class name "gjdk/[Ljava/lang/Object;_GroovyReflectorArray")
>       at java.lang.ClassLoader.defineClass0(Native Method)
>       at java.lang.ClassLoader.defineClass(ClassLoader.java:539)
>       at groovy.lang.GroovyClassLoader.defineClass(GroovyClassLoader.java:481)
>       at groovy.lang.MetaClassRegistry$3.run(MetaClassRegistry.java:169)
>       at java.security.AccessController.doPrivileged(Native Method)
>       at groovy.lang.MetaClassRegistry.loadClass(MetaClassRegistry.java:167)
>       at groovy.lang.MetaClass.loadReflectorClass(MetaClass.java:2309)
>       at groovy.lang.MetaClass.loadReflector(MetaClass.java:2291)
>       at groovy.lang.MetaClass.generateReflector(MetaClass.java:2241)
>       at groovy.lang.MetaClass.checkInitialised(MetaClass.java:2188)
>       at 
> groovy.lang.MetaClassRegistry.getMetaClass(MetaClassRegistry.java:124)
>       at org.codehaus.groovy.runtime.Invoker.getProperty(Invoker.java:638)
>       at 
> org.codehaus.groovy.runtime.InvokerHelper.getProperty(InvokerHelper.java:175)
>       at 
> org.codehaus.groovy.runtime.ScriptBytecodeAdapter.getProperty(ScriptBytecodeAdapter.java:274)
>       at Script1.run(Unknown Source)
>       at groovy.lang.GroovyShell.evaluate(GroovyShell.java:500)
>       at groovy.lang.GroovyShell.evaluate(GroovyShell.java:478)
> Passing the array as an argument to any method similarly produces an 
> exception.  This makes Groovy completely incapable of invoking any method 
> that takes a multidimensional array as an argument.



--
This message was sent by Atlassian Jira
(v8.20.7#820007)

Reply via email to