Issue1995

classification
Title: Missing log statement in RowIdHandler when getRowid method doesn't exist
Type: Severity: minor
Components: zxjdbc Versions: Jython 2.5
process
Status: open Resolution: remind
Dependencies: Superseder:
Assigned To: Nosy List: fwierzbicki, luisperlazaro
Priority: normal Keywords:

Created on 2012-11-29.08:19:22 by luisperlazaro, last changed 2013-02-19.23:10:14 by fwierzbicki.

Messages
msg7542 (view) Author: Luis Alberto Pérez Lázaro (luisperlazaro) Date: 2012-11-29.08:19:20
The com.ziclix.python.sql.handler.RowIdHandler class is used to get the rowId of the last insert statement. It relies in the statement object having a method for that:

   try {
       o = c.getMethod(getRowIdMethodName(), (Class[])null);
       ROWIDS.put(c, o);
   } catch (Throwable t) {
       ROWIDS.put(c, CHECKED);
   }
The problem is that when the method doesn't exist, if fails silently (CHECKED is a new Object()).
I almost went mad when trying to use a Django webapp on tomcat 6, which uses commons-dbcp, so it uses a wrapper for the actual database statement, which doesn't have the method to get the row id, so it led to silently returning None to the jython code.

A log statement warning the situation would be helpful.
History
Date User Action Args
2013-02-19 23:10:14fwierzbickisetresolution: remind
2013-02-19 23:09:57fwierzbickisetpriority: normal
nosy: + fwierzbicki
versions: + Jython 2.5, - 2.5.3b2
2012-11-29 08:19:22luisperlazarocreate