JDK-4907941 : missing ambiguity error
  • Type: Bug
  • Component: tools
  • Sub-Component: javac
  • Affected Version: 5.0
  • Priority: P2
  • Status: Resolved
  • Resolution: Fixed
  • OS: solaris_8
  • CPU: generic
  • Submitted: 2003-08-17
  • Updated: 2004-02-06
  • Resolved: 2004-01-10
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
Other
5.0 b35Fixed
Related Reports
Relates :  
Description
The following program deserves an ambiguity error.

interface Test3<T> {
    void f(     T a,      T b,      T c,      T d,      T e,      T f);
    void f(     T a,      T b,      T c,      T d,      T e, String f);
    void f(     T a,      T b,      T c,      T d, String e,      T f);
    void f(     T a,      T b,      T c,      T d, String e, String f);
    void f(     T a,      T b,      T c, String d,      T e,      T f);
    void f(     T a,      T b,      T c, String d,      T e, String f);
    void f(     T a,      T b,      T c, String d, String e,      T f);
    void f(     T a,      T b,      T c, String d, String e, String f);
    void f(     T a,      T b, String c,      T d,      T e,      T f);
    void f(     T a,      T b, String c,      T d,      T e, String f);
    void f(     T a,      T b, String c,      T d, String e,      T f);
    void f(     T a,      T b, String c,      T d, String e, String f);
    void f(     T a,      T b, String c, String d,      T e,      T f);
    void f(     T a,      T b, String c, String d,      T e, String f);
    void f(     T a,      T b, String c, String d, String e,      T f);
    void f(     T a,      T b, String c, String d, String e, String f);
    void f(     T a, String b,      T c,      T d,      T e,      T f);
    void f(     T a, String b,      T c,      T d,      T e, String f);
    void f(     T a, String b,      T c,      T d, String e,      T f);
    void f(     T a, String b,      T c,      T d, String e, String f);
    void f(     T a, String b,      T c, String d,      T e,      T f);
    void f(     T a, String b,      T c, String d,      T e, String f);
    void f(     T a, String b,      T c, String d, String e,      T f);
    void f(     T a, String b,      T c, String d, String e, String f);
    void f(     T a, String b, String c,      T d,      T e,      T f);
    void f(     T a, String b, String c,      T d,      T e, String f);
    void f(     T a, String b, String c,      T d, String e,      T f);
    void f(     T a, String b, String c,      T d, String e, String f);
    void f(     T a, String b, String c, String d,      T e,      T f);
    void f(     T a, String b, String c, String d,      T e, String f);
    void f(     T a, String b, String c, String d, String e,      T f);
    void f(     T a, String b, String c, String d, String e, String f);
    void f(String a,      T b,      T c,      T d,      T e,      T f);
    void f(String a,      T b,      T c,      T d,      T e, String f);
    void f(String a,      T b,      T c,      T d, String e,      T f);
    void f(String a,      T b,      T c,      T d, String e, String f);
    void f(String a,      T b,      T c, String d,      T e,      T f);
    void f(String a,      T b,      T c, String d,      T e, String f);
    void f(String a,      T b,      T c, String d, String e,      T f);
    void f(String a,      T b,      T c, String d, String e, String f);
    void f(String a,      T b, String c,      T d,      T e,      T f);
    void f(String a,      T b, String c,      T d,      T e, String f);
    void f(String a,      T b, String c,      T d, String e,      T f);
    void f(String a,      T b, String c,      T d, String e, String f);
    void f(String a,      T b, String c, String d,      T e,      T f);
    void f(String a,      T b, String c, String d,      T e, String f);
    void f(String a,      T b, String c, String d, String e,      T f);
    void f(String a,      T b, String c, String d, String e, String f);
    void f(String a, String b,      T c,      T d,      T e,      T f);
    void f(String a, String b,      T c,      T d,      T e, String f);
    void f(String a, String b,      T c,      T d, String e,      T f);
    void f(String a, String b,      T c,      T d, String e, String f);
    void f(String a, String b,      T c, String d,      T e,      T f);
    void f(String a, String b,      T c, String d,      T e, String f);
    void f(String a, String b,      T c, String d, String e,      T f);
    void f(String a, String b,      T c, String d, String e, String f);
    void f(String a, String b, String c,      T d,      T e,      T f);
    void f(String a, String b, String c,      T d,      T e, String f);
    void f(String a, String b, String c,      T d, String e,      T f);
    void f(String a, String b, String c,      T d, String e, String f);
    void f(String a, String b, String c, String d,      T e,      T f);
    void f(String a, String b, String c, String d,      T e, String f);
    void f(String a, String b, String c, String d, String e,      T f);
    void f(String a, String b, String c, String d, String e, String f);
}

class Test3b {
    void g(Test3<String> t) {
        t.f("", "", "", "", "", "");
    }
}

Comments
CONVERTED DATA BugTraq+ Release Management Values COMMIT TO FIX: tiger-beta tiger-beta2 FIXED IN: tiger-beta tiger-beta2 INTEGRATED IN: tiger-b35 tiger-b38 tiger-beta tiger-beta2
14-06-2004

PUBLIC COMMENTS ...
10-06-2004

EVALUATION I hope this isn't masking any compatibility issues. ###@###.### 2003-09-05 This is required to be ambiguous because the candidates have different erasures. See the jsr14 spec (v10). ###@###.### 2003-12-05
05-09-2003