[
https://issues.apache.org/jira/browse/DERBY-5421?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13109080#comment-13109080
]
Mamta A. Satoor commented on DERBY-5421:
----------------------------------------
While we are at it, I think the defensive logic in DbUtil.update_one_row can
look as follows
try {
ps2 = conn.prepareStatement(" update nstesttab set " +
column
+ " = ? " + " where serialkey = " +
skey);
} catch (Exception e) {
printException(
"closing update prepared stmt in
dbUtil.update_one_row() ",
e);
if (ps2 != null)
ps2.close();
return rowsUpdated;
}
With this change, even if ps2 is null for some reason, we would not run into
NPE and the exception would be recorded for debugging. The similar error
handling exists in DbUtil.pick_one.
> NullPointerException during system.nstest.utils.Dbutil.update_one_row
> ---------------------------------------------------------------------
>
> Key: DERBY-5421
> URL: https://issues.apache.org/jira/browse/DERBY-5421
> Project: Derby
> Issue Type: Bug
> Affects Versions: 10.8.2.1
> Environment: Windows XP (embedded), SUSE Linux (10) (client/server),
> both with ibm 1.6 SR9 FP1
> Reporter: Myrna van Lunteren
>
> The nstest - both embedded (on Windows XP) and client/server configuration
> (on SUSE Linux 10) ran into a NullPointerException during the call to
> update_one_row.
> The test only ran for 5 days, vs. 10.8.1.2 8 days, and I've never seen this
> error before:
> sample (console) output:
> total memory: 20962816 free: 3036264 Wed Sep 14 00:28:00 PDT 2011
> TObj -->NULL error message detected
> TObj -->Here is the NULL exception - java.lang.NullPointerException
> TObj -->Stack trace of the NULL exception - java.lang.NullPointerException
> at
> org.apache.derbyTesting.system.nstest.utils.DbUtil.update_one_row(DbUtil.java:275)
> at
> org.apache.derbyTesting.system.nstest.tester.TesterObject.doIUDOperation(TesterObject.java:162)
> at
> org.apache.derbyTesting.system.nstest.tester.Tester2.startTesting(Tester2.java:109)
> at org.apache.derbyTesting.system.nstest.NsTest.run(NsTest.java:555)
> TObj -->At this point - executing update_one_row, exception thrown was : null
> TObj -->NULL error message detected
> TObj -->Here is the NULL exception - java.lang.NullPointerException
> TObj -->Stack trace of the NULL exception - java.lang.NullPointerException
> at
> org.apache.derbyTesting.system.nstest.utils.DbUtil.update_one_row(DbUtil.java:275)
> at
> org.apache.derbyTesting.system.nstest.tester.TesterObject.doIUDOperation(TesterObject.java:162)
> at
> org.apache.derbyTesting.system.nstest.tester.Tester1.startTesting(Tester1.java:118)
> at org.apache.derbyTesting.system.nstest.NsTest.run(NsTest.java:551)
> TObj -->At this point - executing update_one_row, exception thrown was : null
>
> Looking at the source of nstest.utils.DbUtil.update_one_row it's calling
> ps2.close():
> ----------------------------
> ....
> column = colnames[ind % NUMTYPES]; // randomly gets one of the
> columns
> // of the table
>
> try {
>
> ps2 = conn.prepareStatement(" update nstesttab set " +
> column
> + " = ? " + " where serialkey = " +
> skey);
>
> } catch (Exception e) {
> ps2.close();
> printException(
> "closing update prepared stmt in
> dbUtil.update_one_row() ",
> e);
> return rowsUpdated;
> }
> ....
> ----------------------------
> At first glance, this seems a test issue, but I think it possible the test is
> hiding something more interesting, so I'm not marking this as component
> 'test'.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira