JDK-6459927 : SyncFactory.getRegisteredProviders() returns Enumeration of String instead of SyncProvider since b95
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.sql
  • Affected Version: 6
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2006-08-14
  • Updated: 2012-03-22
  • Resolved: 2006-08-29
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.
JDK 6
6 b98Fixed
Description
JCK            : JCK6.0 b29
J2SE           : FAIL - *SINCE* mustang b95, PASS mustang b94, tiger u7
Platform[s]    : FAIL - seems to be all
switch/Mode    : FAIL - default

Since mustang b95 method javax.sql.rowset.spi.SyncFactory.getRegisteredProviders() returns Enumeration of String, not SyncProvider. This violates specification:

"The SyncFactory class provides an internal registry of available synchronization provider implementations (SyncProvider objects). This registry may be queried to determine which synchronization providers are available. The following line of code gets an enumeration of the providers currently registered.

     java.util.Enumeration e = SyncFactory.getRegisteredProviders();
 " (overview of SyncFactory class).

Affected JCK 6.0 tests:

api/javax_sql/rowset/spi/SyncFactory/index.html#Provider[SyncFactory0002]
api/javax_sql/rowset/spi/SyncFactory/index.html#Provider[SyncFactory0003]
api/javax_sql/rowset/spi/SyncFactory/index.html#Provider[SyncFactory0004]
api/javax_sql/rowset/spi/SyncFactory/index.html#Provider[SyncFactory2004]

Steps to reproduce:

compile and run the following class on b94, b95 and tiger u7:


import java.util.Enumeration;
import javax.sql.rowset.spi.*;

public class SyncFactoryTest{

    public static void main(String[] args) throws Exception{

        Enumeration providers = null;
        try {
                providers = SyncFactory.getRegisteredProviders();
	
		for (Enumeration<Object> e = SyncFactory.getRegisteredProviders(); e.hasMoreElements();)
       		System.out.println(e.nextElement().getClass().getName());

        } catch (Exception e) {
                e.printStackTrace();
                throw new Exception( "Unexpected exception while getting registered providers.");
        }
    }
}

Comments
EVALUATION Verified this using jdbc4.jar from Aug 27.
29-08-2006

EVALUATION Fixed. Looks like the correct version of the file was overridden. Syncing has now been done.
23-08-2006

EVALUATION must be fixed for mustang GA
14-08-2006