-
Bug
-
Resolution: Fixed
-
P1
-
1.1
-
1.1fcs
-
sparc
-
solaris_2.5
-
Not verified
Name: vsC45997 Date: 12/03/96
The section "13.4.12 Method and Constructor Declarations" of The JLS contains the following:
"Adding one or more constructor declarations to the source code of such
a class will prevent this default constructor from being supplied
automatically, effectively deleting a constructor"
And the section "8.6.7 Default Constructor" of The JLS contains the following:
"If a class contains no constructor declarations, then a default
constructor that takes no parameters is automatically provided:
If the class being declared is the primordial class Object,
then the default constructor has an empty body.
Otherwise, the default constructor takes no parameters and simply
invokes the superclass constructor with no arguments."
The current 1.1 compiler provides illegal access to the default
constructor of a superclass on the test below.
The test consist of two files.
// FILE: binc02601.java
package javasoft.sqe.tests.lang.binc026.binc02601;
import java.io.PrintStream;
class Hyper {
int f;
Hyper() { f = 4;}
}
class Super extends Hyper {
}
public class binc02601 extends Super {
public static void main(String argv[])
{
System.exit(run(argv, System.out) + 95/*STATUS_TEMP*/);
}
public static int run(String argv[],PrintStream out) {
try {
Super x = new Super();
out.println (x.f);
}
catch (NoSuchMethodError e) {
out.println (e);
return 0;
}
out.println ("failed");
return 2;
}
}
// FILE: binc02601a.java
package javasoft.sqe.tests.lang.binc026.binc02601;
class Super extends Hyper {
Super(int i) { f = 4+i;}
}
After separate compilation and execution with -verify option we have
on 1.0.2 compiler:
javac -d . binc02601.java
javac -d . binc02601a.java
java -verify javasoft.sqe.tests.lang.binc026.binc02601.binc02601
java.lang.NoSuchMethodError: javasoft.sqe.tests.lang.binc026.binc02601.Super: method <init>()V not found
But on 1.1 we have the following:
jdk_1.1/bin/java -verify javasoft.sqe.tests.lang.binc026.binc02601.binc02601
4
failed
======================================================================