Bug 40240 - JCK1.4a failures
Summary: JCK1.4a failures
Status: RESOLVED INVALID
Alias: None
Product: JDT
Classification: Eclipse Project
Component: Core (show other bugs)
Version: 3.0   Edit
Hardware: PC Windows 2000
: P3 normal (vote)
Target Milestone: 3.0 M3   Edit
Assignee: Philipe Mulet CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2003-07-16 12:29 EDT by Philipe Mulet CLA
Modified: 2003-07-22 06:50 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Philipe Mulet CLA 2003-07-16 12:29:33 EDT
Build 20030716

We fail a couple JCK tests with the 1.4a exclude list update (which seems to 
unleash previously excluded tests).

Failures are:
- stmt16503
- icls01791m12
- binc04901
Comment 1 Philipe Mulet CLA 2003-07-16 12:58:15 EDT
stmt16503 is a check that compiler prevents access a local type using binary 
name (X$1$L) when compiling against binaries.

Note that javac 1.4.2 doesn't notice the issue either, and jikes generates a 
warning when using a $-name.
Comment 2 Philipe Mulet CLA 2003-07-16 12:59:07 EDT
When compiling against sources, we correctly reject this $-name usage scenario.
Suspecting the exclude list is not accurate.
Comment 3 Philipe Mulet CLA 2003-07-17 12:29:46 EDT
Actually. Our support for rejecting internal names is fooled by local 
BinaryTypeBinding answering false to #isNestedType().
Comment 4 Olivier Thomann CLA 2003-07-17 12:33:24 EDT
stmt16503 is fixed.
Comment 5 Philipe Mulet CLA 2003-07-17 12:40:16 EDT
icls01791m12 is checking that user can define this$0 field in member type 
(colliding with reserved enclosing instance name).

Neither javac 1.4.2 or jikes 1.18 tolerate this either. No action planned.
Comment 6 Olivier Thomann CLA 2003-07-17 13:10:17 EDT
javac 1.4.2 fails binc04901 as well.
The test looks boggus. It assumes that if you remove the super interface a
Verify error is thrown. In this case, the VM throws a
IncompatibleClassChangeError. I will double check the VM specs in this case.
Comment 7 Olivier Thomann CLA 2003-07-17 13:32:37 EDT
binc04901 is boggus.
At runtime, the failure occurs when the invokeinterface bytecode is invoked with
a Test object. Because this object doesn't implement the proper interface (Super
in this case), the linking fails with an IncompatibleClassChangeError. This is
specified in the JVM specs (page 282 of the second edition).
There is no check to find out that an instance of Test cannot be stored as a Super. 
The JLS specifies that it should result in a VerifyError (see 13.5.2).
So this is either a VM bug or JLS bug or a JVMS bug.
I don't think we can do much on the compiler side.
Ok to close as FIXED?
Comment 8 Olivier Thomann CLA 2003-07-17 13:52:07 EDT
I am suspecting a problem with the exclusion list. stmt16503, icls01791m12 and
binc04901 are still located in the latest jdk14.jtx, but not in jdk14a.jtx. If
you look at stmt16503 and icls01791m12, they both refer to a bug id 4094180 that
points to a bug closed as WONTFIX. Therefore it is impossible that this test can
be removed from the excluded list.
Comment 9 Philipe Mulet CLA 2003-07-17 15:17:13 EDT
I was also suspecting this exclude list to be a red herring (though it found a 
bug...). Before we close it, we should make sure the exclude list is bogus.
Comment 10 Philipe Mulet CLA 2003-07-22 06:50:18 EDT
After further investigation, the exclude list matches jck1.4a, and we were 
incorrectly using jck1.4 with 1.4a exclude list.

Closing as invalid (though we solved a bug with this).