You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-user@db.apache.org by Jose de Castro <jo...@voxeo.com> on 2006/11/01 21:25:13 UTC
NPE in setTimestamp(int,Timestamp,Calendar)
A NullPointerException occurs if you pass in a null Timestamp into
org.apache.derby.client.am.PreparedStatement.setTimestamp(int,Timestamp,Cale
ndar)
Does anyone know if this is being addressed in 10.3? I have included a
suggested fix. Is this something I should add to JIRA?
public void setTimestamp(int parameterIndex,
java.sql.Timestamp x,
java.util.Calendar calendar) throws
SQLException {
try
{
synchronized (connection_) {
if (agent_.loggingEnabled()) {
agent_.logWriter_.traceEntry(this, "setTimestamp",
parameterIndex, x, calendar);
}
checkForClosedStatement();
+ if (x == null) {
+ setTimestamp(parameterIndex,null);
+ }
+ else {
if (calendar == null) {
throw new SqlException(agent_.logWriter_,
new
ClientMessageId(SQLState.INVALID_API_PARAMETER),
"null", "calendar", "setTimestamp()");
}
java.util.Calendar targetCalendar =
java.util.Calendar.getInstance(calendar.getTimeZone());
targetCalendar.clear();
targetCalendar.setTime(x);
java.util.Calendar defaultCalendar =
java.util.Calendar.getInstance();
defaultCalendar.clear();
defaultCalendar.setTime(x);
long timeZoneOffset =
targetCalendar.get(java.util.Calendar.ZONE_OFFSET) -
defaultCalendar.get(java.util.Calendar.ZONE_OFFSET) +
targetCalendar.get(java.util.Calendar.DST_OFFSET) -
defaultCalendar.get(java.util.Calendar.DST_OFFSET);
java.sql.Timestamp adjustedTimestamp =
((timeZoneOffset == 0) || (x == null)) ? x : new
java.sql.Timestamp(x.getTime() + timeZoneOffset);
if (x != null) {
adjustedTimestamp.setNanos(x.getNanos());
}
setTimestamp(parameterIndex, adjustedTimestamp);
+ }
}
}
catch ( SqlException se )
{
throw se.getSQLException();
}
}
Re: NPE in setTimestamp(int,Timestamp,Calendar)
Posted by Daniel John Debrunner <dj...@apache.org>.
Jose de Castro wrote:
> A NullPointerException occurs if you pass in a null Timestamp into
> org.apache.derby.client.am.PreparedStatement.setTimestamp(int,Timestamp,Calendar)
>
>
>
> Does anyone know if this is being addressed in 10.3? I have included a
> suggested fix. Is this something I should add to JIRA?
Please enter a Jira bug and please attach a patch to that issue.
Thanks,
Dan.