JAVA: Fix clone() on arrays

Bryce McKinlay
Sun Feb 18 00:35:00 GMT 2001

This patch fixes a recent regression with calling clone() on array

Although clone() is a protected method in object, array classes
implicitly "override" it with a public method that throws no checked
exceptions (10.7). This is actually implemented as a special case by
java compilers and runtimes, as a call to Object.clone() that is not
subject to the ordinary access and exception checks:

public class A2
  void a()
    int[] copy = (int[]) new int[1].clone();

$ jcf-dump A2.class
Constant pool (count: 20):
#2: Methodref class: 5=java.lang.Object name_and_type: 14=<clone

Now we're down to (on branch):

                === libjava Summary ===

# of expected passes            1597
# of unexpected failures        2
# of unexpected successes       17
# of expected failures          108

ok to commit?


  [ bryce ]

More information about the Java-patches mailing list