[ 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)