Commons DbUtils
  1. Commons DbUtils
  2. DBUTILS-32

Tests fail to build under 1.6, and warning while compiling source

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: 1.1
    • Labels:
      None

      Description

      test:compile:
      [javac] Compiling 20 source files to /home/hen/apache/jakarta/commons-proper/dbutils/target/test-classes
      /home/hen/apache/jakarta/commons-proper/dbutils/src/test/org/apache/commons/dbutils/wrappers/SqlNullCheckedResultSetTest.java:841: org.apache.commons.dbutils.wrappers.SqlNullCheckedResultSetMockBlob is not abstract and does not override abstract method getBinaryStream(long,long) in java.sql.Blob
      class SqlNullCheckedResultSetMockBlob implements Blob {
      ^
      /home/hen/apache/jakarta/commons-proper/dbutils/src/test/org/apache/commons/dbutils/wrappers/SqlNullCheckedResultSetTest.java:882: org.apache.commons.dbutils.wrappers.SqlNullCheckedResultSetMockClob is not abstract and does not override abstract method getCharacterStream(long,long) in java.sql.Clob
      class SqlNullCheckedResultSetMockClob implements Clob {

      and warning of:

      [javac] Compiling 20 source files to /home/hen/apache/jakarta/commons-proper/dbutils/target/classes
      /home/hen/apache/jakarta/commons-proper/dbutils/src/java/org/apache/commons/dbutils/wrappers/SqlNullCheckedResultSet.java:372: warning: non-varargs call of varargs method with inexact argument type for last parameter;
      cast to java.lang.Object for a varargs call
      cast to java.lang.Object[] for a non-varargs call and to suppress this warning
      ? nullMethod.invoke(this, null)

      1. patch-DBUTILS-32.txt
        2 kB
        Alan B. Canon
      2. patch.txt
        2 kB
        Alan B. Canon

        Activity

        Henri Yandell created issue -
        Henri Yandell made changes -
        Field Original Value New Value
        Fix Version/s 1.1 [ 12311973 ]
        Hide
        Alan B. Canon added a comment -

        SqlNullCheckedResultSet.java can be fixed to avoid the compiler warning by changing the implementation of invoke() to read as follows.

        public Object invoke(Object proxy, Method method, Object[] args)
        throws Throwable

        { Object result = method.invoke(this.rs, args); Method nullMethod = (Method) nullMethods.get(method.getName()); // Check nullMethod != null first so that we don't call wasNull() // before a true getter method was invoked on the ResultSet. return (nullMethod != null && this.rs.wasNull()) ? nullMethod.invoke(this, (Object[]) null) : result; }
        Show
        Alan B. Canon added a comment - SqlNullCheckedResultSet.java can be fixed to avoid the compiler warning by changing the implementation of invoke() to read as follows. public Object invoke(Object proxy, Method method, Object[] args) throws Throwable { Object result = method.invoke(this.rs, args); Method nullMethod = (Method) nullMethods.get(method.getName()); // Check nullMethod != null first so that we don't call wasNull() // before a true getter method was invoked on the ResultSet. return (nullMethod != null && this.rs.wasNull()) ? nullMethod.invoke(this, (Object[]) null) : result; }
        Hide
        Alan B. Canon added a comment -

        The compiler errors for the tests can be fixed by adding no-op implementations of the previously unimplemented methods, viz.:

        class SqlNullCheckedResultSetMockClob implements Clob {

        public void free() throws SQLException {
        }

        public Reader getCharacterStream(long pos, long length) throws SQLException

        { return null; }
        }

        class SqlNullCheckedResultSetMockBlob implements Blob {
        public void free() throws SQLException {

        }

        public InputStream getBinaryStream(long pos, long length) throws SQLException { return null; }

        }

        Show
        Alan B. Canon added a comment - The compiler errors for the tests can be fixed by adding no-op implementations of the previously unimplemented methods, viz.: class SqlNullCheckedResultSetMockClob implements Clob { public void free() throws SQLException { } public Reader getCharacterStream(long pos, long length) throws SQLException { return null; } } class SqlNullCheckedResultSetMockBlob implements Blob { public void free() throws SQLException { } public InputStream getBinaryStream(long pos, long length) throws SQLException { return null; } }
        Hide
        Henri Yandell added a comment -

        Any chance of a patch?

        Show
        Henri Yandell added a comment - Any chance of a patch?
        Hide
        Alan B. Canon added a comment -

        Patch is attached resolving issues as described in previous comments.

        Show
        Alan B. Canon added a comment - Patch is attached resolving issues as described in previous comments.
        Alan B. Canon made changes -
        Attachment patch.txt [ 12344102 ]
        Hide
        Alan B. Canon added a comment -

        Sorry, the previous patch addressed two separate issues. The present attachment resolves only DBUTILS-32 (the present issue)

        Show
        Alan B. Canon added a comment - Sorry, the previous patch addressed two separate issues. The present attachment resolves only DBUTILS-32 (the present issue)
        Alan B. Canon made changes -
        Attachment patch-DBUTILS-32.txt [ 12344106 ]
        Hide
        Henri Yandell added a comment -

        Thanks Alan.

        svn ci -m "Applying Alan Canon's patch for DBUTILS-32"

        Sending src/java/org/apache/commons/dbutils/BeanProcessor.java
        Sending src/java/org/apache/commons/dbutils/wrappers/SqlNullCheckedResultSet.java
        Sending src/test/org/apache/commons/dbutils/wrappers/SqlNullCheckedResultSetTest.java
        Transmitting file data ...
        Committed revision 470003.

        I've also tested it under 1.6 on a Linux box (back to hating the Mac for not having 1.6).

        Btw, good naming for patches would be 'DBUTILS-32.patch'. Not sure about the repeat though

        Show
        Henri Yandell added a comment - Thanks Alan. svn ci -m "Applying Alan Canon's patch for DBUTILS-32 " Sending src/java/org/apache/commons/dbutils/BeanProcessor.java Sending src/java/org/apache/commons/dbutils/wrappers/SqlNullCheckedResultSet.java Sending src/test/org/apache/commons/dbutils/wrappers/SqlNullCheckedResultSetTest.java Transmitting file data ... Committed revision 470003. I've also tested it under 1.6 on a Linux box (back to hating the Mac for not having 1.6). Btw, good naming for patches would be ' DBUTILS-32 .patch'. Not sure about the repeat though
        Henri Yandell made changes -
        Resolution Fixed [ 1 ]
        Status Open [ 1 ] Resolved [ 5 ]
        Henri Yandell made changes -
        Status Resolved [ 5 ] Closed [ 6 ]

          People

          • Assignee:
            Unassigned
            Reporter:
            Henri Yandell
          • Votes:
            1 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development