Bug 79250

Summary: Covariance Implementation Problem
Product: [Eclipse Project] JDT Reporter: Jeremy Kassis <jkassis-eclipseBugs>
Component: CoreAssignee: JDT-Core-Inbox <jdt-core-inbox>
Status: RESOLVED DUPLICATE QA Contact:
Severity: major    
Priority: P3    
Version: 3.1   
Target Milestone: 3.1 M4   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Jeremy Kassis CLA 2004-11-22 20:19:55 EST
The following files compile and run correctly under jdk1.5. They compile under
eclipse 3.1m3, but executing the main method on SubInterface produces this
exception:

java.lang.ClassFormatError: Method getShape in class test/SubInterface has
illegal modifiers: 0x1041
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
	at java.lang.ClassLoader.defineClass1(Native Method)
	at java.lang.ClassLoader.defineClass(Unknown Source)
	at java.security.SecureClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.defineClass(Unknown Source)
	at java.net.URLClassLoader.access$100(Unknown Source)
	at java.net.URLClassLoader$1.run(Unknown Source)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.net.URLClassLoader.findClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at sun.misc.Launcher$AppClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClass(Unknown Source)
	at java.lang.ClassLoader.loadClassInternal(Unknown Source)
Exception in thread "main" 


SuperInterface.java:
package test;


public interface SuperInterface {
    public Object getShape(); 
}


SubInterface.java:
package test;

import java.awt.Polygon;

public interface SubInterface extends SuperInterface {  
    public Polygon getShape(); 
}



SubInterfaceImpl.java:
package test;

import java.awt.Polygon;

public class SubInterfaceImpl implements SubInterface {
      public Polygon getShape() {
        return new Polygon();
    }

    public static void main(String[] args) {
        SubInterfaceImpl subInterfaceImpl = new SubInterfaceImpl();
        System.out.println("success");
    }
}
Comment 1 Kent Johnson CLA 2004-11-24 16:59:53 EST
This was fixed last week.

*** This bug has been marked as a duplicate of 77861 ***