Derby
  1. Derby
  2. DERBY-4738

correct error prompt for nonpositive length in Blob.setBytesX()

    Details

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

      Description

      In Blob.setBytesX(), when a nonpositive length value (len) is passed in, a SqlException with ClientMessageId of SQLState.BLOB_NONPOSITIVE_LENGTH is created, however, it uses length, a wrong length value, which is still zero here.

      if ( len < 0 )

      { throw new SqlException(agent_.logWriter_, new ClientMessageId(SQLState.BLOB_NONPOSITIVE_LENGTH), new Integer(length)); }
      1. init_length.diff
        0.8 kB
        Knut Anders Hatlen
      2. derby-4738.stat
        0.1 kB
        Yun Lee
      3. derby-4738.patch
        0.6 kB
        Yun Lee

        Issue Links

          Activity

          Gavin made changes -
          Workflow jira [ 12515208 ] Default workflow, editable Closed status [ 12799721 ]
          Rick Hillegas made changes -
          Affects Version/s 10.7.1.1 [ 12315564 ]
          Affects Version/s 10.7.1.0 [ 12314971 ]
          Fix Version/s 10.7.1.1 [ 12315564 ]
          Fix Version/s 10.7.1.0 [ 12314971 ]
          Myrna van Lunteren made changes -
          Link This issue is part of DERBY-4609 [ DERBY-4609 ]
          Yun Lee made changes -
          Status Resolved [ 5 ] Closed [ 6 ]
          Hide
          Yun Lee added a comment -

          Thanks, Knut. Before I attached the patch, I just run BlobAccessTest and it passed. I will run regression tests for a extensive test next time. Thanks for your advice.

          I agree with your patch on moving the declaration of the length variable. More work need to be done on this method, just pointed out in Derby-3898.

          Show
          Yun Lee added a comment - Thanks, Knut. Before I attached the patch, I just run BlobAccessTest and it passed. I will run regression tests for a extensive test next time. Thanks for your advice. I agree with your patch on moving the declaration of the length variable. More work need to be done on this method, just pointed out in Derby-3898.
          Knut Anders Hatlen made changes -
          Status In Progress [ 3 ] Resolved [ 5 ]
          Fix Version/s 10.7.0.0 [ 12314971 ]
          Resolution Fixed [ 1 ]
          Knut Anders Hatlen made changes -
          Attachment init_length.diff [ 12448999 ]
          Hide
          Knut Anders Hatlen added a comment -

          The attached follow-up patch (init_length.diff) removes the initialization of the length variable to 0 from the top of the method, and moves the declaration of the variable down to the point where it's set to its real value. This will make the compiler complain if someone tries to use the length variable before it has been properly initialized.

          Committed revision 961903.

          Show
          Knut Anders Hatlen added a comment - The attached follow-up patch (init_length.diff) removes the initialization of the length variable to 0 from the top of the method, and moves the declaration of the variable down to the point where it's set to its real value. This will make the compiler complain if someone tries to use the length variable before it has been properly initialized. Committed revision 961903.
          Knut Anders Hatlen made changes -
          Affects Version/s 10.7.0.0 [ 12314971 ]
          Issue & fix info [Patch Available]
          Hide
          Knut Anders Hatlen added a comment -

          All the regression tests ran cleanly in my environment.
          Committed revision 961895.

          Show
          Knut Anders Hatlen added a comment - All the regression tests ran cleanly in my environment. Committed revision 961895.
          Hide
          Knut Anders Hatlen added a comment -

          Hi Yun. Thanks for the patch. The fix looks correct to me. Did the regression tests run cleanly with patch?

          Perhaps it would also be a good idea to stop setting length to 0 in the beginning of the method, so that the compiler could tell us if someone tries to use the variable before it's initialized.

          Show
          Knut Anders Hatlen added a comment - Hi Yun. Thanks for the patch. The fix looks correct to me. Did the regression tests run cleanly with patch? Perhaps it would also be a good idea to stop setting length to 0 in the beginning of the method, so that the compiler could tell us if someone tries to use the variable before it's initialized.
          Knut Anders Hatlen made changes -
          Summary correct erorr prompt for nonpositive length in Blob.setBytesX() correct error prompt for nonpositive length in Blob.setBytesX()
          Component/s JDBC [ 11407 ]
          Yun Lee made changes -
          Issue & fix info [Patch Available]
          Yun Lee made changes -
          Attachment derby-4738.patch [ 12448962 ]
          Attachment derby-4738.stat [ 12448963 ]
          Hide
          Yun Lee added a comment -

          In the patch, the nonpositive value is set by len.

          Show
          Yun Lee added a comment - In the patch, the nonpositive value is set by len.
          Yun Lee made changes -
          Field Original Value New Value
          Status Open [ 1 ] In Progress [ 3 ]
          Yun Lee created issue -

            People

            • Assignee:
              Yun Lee
              Reporter:
              Yun Lee
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved:

                Development