blob: ef7cc7511756c1ee743ed1dd0755b2d3fd113682 [file] [log] [blame]
// throws conflicts on overriding/ override final
import java.io.*;
import java.net.*;
public class a extends c3 {
public void f() throws <error descr="'f()' in 'a' clashes with 'f()' in 'c3'; overridden method does not throw 'java.lang.Exception'">Exception</error> {
}
}
interface i {
void f() throws java.net.SocketException;
}
class c2 implements i {
public void f() throws <error descr="'f()' in 'c2' clashes with 'f()' in 'i'; overridden method does not throw 'java.io.IOException'">java.io.IOException</error> {}
}
class c2i implements i {
public void f() throws <error descr="'f()' in 'c2i' clashes with 'f()' in 'i'; overridden method does not throw 'java.lang.Exception'">Exception</error> {}
}
class c3 implements i {
public void f() throws java.net.ConnectException {}
}
class c4 extends c3 {
public void f() throws java.net.ConnectException {}
}
interface MethodsFromObject {
Object clone();
}
interface im extends MethodsFromObject {
}
<error descr="'clone()' in 'java.lang.Object' clashes with 'clone()' in 'MethodsFromObject'; overridden method does not throw 'java.lang.CloneNotSupportedException'">class cm implements MethodsFromObject</error> {
}
// sibling inheritance
class c5 { public void f() throws Exception {} }
interface i5 { void f(); }
<error descr="'f()' in 'c5' clashes with 'f()' in 'i5'; overridden method does not throw 'java.lang.Exception'">class c6 extends c5 implements i5</error> {
}
// overriding method does not throw exception, its OK
class c {
protected Object clone() {
return null;
}
}
interface i6 {
}
class b extends c implements i6 {
}
//-------------- methods with same signature
interface AContract
{
void invoke () throws Exception;
}
class A implements AContract
{
public void invoke () throws Exception { }
}
interface BContract
{
void invoke ();
}
class B extends A implements BContract
{
public void invoke () { }
}
class C extends B
{
}
//////////////////////
class Bug extends AbstrColl implements java.io.Serializable {
}
interface Coll {
boolean equals(Object f);
}
class AbstrColl implements Coll {}
interface InterfaceOverridesObject {
Object clone() throws java.io.IOException;
}
////////////multiple interface inheritance///////
class sqlExcept extends Exception {}
class sqlInheritorException extends sqlExcept {}
class timeoutEx extends Exception{}
interface AMultiple {
void m() throws java.io.IOException, sqlInheritorException;
}
interface BMultiple {
void m() throws java.io.EOFException, sqlExcept, timeoutEx;
}
interface DMultiple extends AMultiple, BMultiple {}