Fwd: Re: [kaffe] java.sql.*

Ito Kazumitsu ito.kazumitsu@hitachi-cable.co.jp
Thu Apr 10 04:40:01 2003


Hi,

In message "Re: Fwd: Re: [kaffe] java.sql.*"
    on 03/04/10, Dalibor Topic <robilad@yahoo.com> writes:

> Could you write testcases DriverManager & Date and see
> how Sun's JDK
> behaves ? I'll take care of the missing get methods.

OK,  here is the results.  The test program is attached below.

                                Sun's JDK   Kaffe     Kaffe+GNU Classpath
                                ---------   -------   -------------------
Date.valueOf("Strange")         IAE         IAE       null
Time.valueOf("Strange")         IAE         IAE       null
Timestamp.valueOf("Strange")    IAE         IAE       null
Date.getHours()                 IAE         0         0
DriverManager.getDriver("NA")   SQLE        SQLE      null

                                IAE: IllegalArgumentException
                                SQLE: SQLException

According to Sun's API document,  Date.getHours() must always
throw IllegalArgumentException. So both kaff and GNU classpath's
Date.getHours() is wrong.  Both kaff and GNU classpath's
Date.getHours() seem to be calling super.getHours(), that is
java.util.Date.getHours().

I compiled the following program with Sun's javac, kaffe's
kjc using kaffe's java.sql and kaffe's kjc using GNU classpath's
java.sql.  The results were all the same.

import java.sql.*;

public class TestSQLMisc {

    public static void main(String[] args) {

        try {
            Date date = Date.valueOf("StrangeDate");
            System.err.println("date=" + date);
        }
        catch (Exception e) {
            e.printStackTrace();
        }

        try {
            Time time = Time.valueOf("StrangeTime");
            System.err.println("time=" + time);
        }
        catch (Exception e) {
            e.printStackTrace();
        }

        try {
            Timestamp ts = Timestamp.valueOf("StrangeTimestamp");
            System.err.println("timestamp=" + ts);
        }
        catch (Exception e) {
            e.printStackTrace();
        }

        try {
            Date date = Date.valueOf("2003-04-10");
            int h = date.getHours();
            System.err.println("hours=" + h);
        }
        catch (Exception e) {
            e.printStackTrace();
        }

        try {
            Driver d = DriverManager.getDriver("jdbc:hsqldb:nonexsistent");
            System.err.println("driver=" + d);
        }
        catch (Exception e) {
            e.printStackTrace();
        }

    }
}