Details
-
Type:
Bug
-
Status:
Closed
-
Priority:
Major
-
Resolution: Fixed
-
Affects Version/s: None
-
Fix Version/s: 1.3.2
-
Component/s: Transport: JDBC
-
Labels:None
-
Environment:
N/A
-
Log Output:
-
Similar Issues:None
Description
I'm trying to perform an insert on an Oracle Database. The problem I have is with null parameters to be passed to the statement.
The jdbc dispatcher performs a:
int nbRows = new QueryRunner().update(con, writeStmt, paramValues);
Looking at the QueryRunner code I can see that the update method invokes the fillStatement operation:
protected void fillStatement(PreparedStatement stmt, Object[] params) throws SQLException {
if (params == null) { return; }
for (int i = 0; i < params.length; i++) {
if (params[i] != null) { stmt.setObject(i + 1, params[i]); } else { stmt.setNull(i + 1, Types.OTHER); }
}
}
When a null value is found, the stmt.setNull(i + 1, Types.OTHER); is called and the following exception is thrown:
java.sql.SQLException: Invalid column type Query: INSERT INTO FPA.ESPECIES (rest of the query here)...
at org.apache.commons.dbutils.QueryRunner.rethrow(QueryRunner.java:330)
at org.apache.commons.dbutils.QueryRunner.update(QueryRunner.java:399)
at org.mule.providers.jdbc.JdbcMessageDispatcher.doDispatch(JdbcMessageDispatcher.java:98)
at com.lumina.integration.mule.providers.jdbc.JdbcMessageDispatcher.doSend(JdbcMessageDispatcher.java:61)
at org.mule.providers.AbstractMessageDispatcher.send(AbstractMessageDispatcher.java:196)
Apparently the error is because of the Types.OTHER sql type. I know that this is an issue involving Jakarta dbutils package but maybe someone has already got this problem and found a workaround to this.
At the Jakarta mailing list a workaround is mentioned by subclassing the QueryRunner class. In order to do that, I'll need to subclass the JDBC provider completely (the dispatcher and factory at least). Perhaps a custom QueryRunner could be injected to the JdbcMessageDispatcher in a future version.
Regards,
Juan Manuel
Issue Links
Activity
| Workflow | No "Resolved" state [ 11892 ] | No "Resolved" state, added "Pending 3rd-Party" state [ 12894 ] |
| Workflow | No "Resolved" state, added "Pending 3rd-Party" state [ 12894 ] | No "Resolved" state [ 13871 ] |
| Workflow | No "Resolved" state [ 13871 ] | No "Resolved" state, added "Pending 3rd-Party" state [ 14848 ] |
| Assignee | Travis Carlson [ tcarlson ] |
| Workflow | No "Resolved" state, added "Pending 3rd-Party" state [ 14848 ] | Broken > No "Resolved" state, added "Pending 3rd-Party" state [ 15841 ] |
| Workflow | Broken > No "Resolved" state, added "Pending 3rd-Party" state [ 15841 ] | No "Resolved" state, added "Pending 3rd-Party" state [ 16834 ] |
| Status | Pending 3rd-Party [ 10000 ] | Open [ 1 ] |
| Assignee | Travis Carlson [ tcarlson ] | Alan Cassar [ alan.cassar ] |
| Status | Open [ 1 ] | Closed [ 6 ] |
| Fix Version/s | 1.3.2 [ 10230 ] | |
| Resolution | Fixed [ 1 ] |
| Workflow | No "Resolved" state, added "Pending 3rd-Party" state [ 16834 ] | Release Mode Workflow [ 19227 ] |
| Workflow | Release Mode Workflow [ 19227 ] | No "Resolved" state, added "Pending 3rd-Party" state [ 20952 ] |
| Workflow | No "Resolved" state, added "Pending 3rd-Party" state [ 20952 ] | Release Mode Workflow [ 22849 ] |
| Workflow | Release Mode Workflow [ 22849 ] | Main Mule Workflow [ 25507 ] |
| Workflow | Main Mule Workflow [ 25507 ] | Copy of Main Mule Workflow [ 27186 ] |
| Workflow | Copy of Main Mule Workflow [ 27186 ] | Main Mule Workflow [ 29550 ] |
| Workflow | Main Mule Workflow [ 29550 ] | Copy of Main Mule Workflow [ 31012 ] |
| Workflow | Copy of Main Mule Workflow [ 31012 ] | Main Mule Workflow [ 33397 ] |
| Workflow | Main Mule Workflow [ 33397 ] | Copy of Main Mule Workflow [ 34625 ] |
| Workflow | Copy of Main Mule Workflow [ 34625 ] | Fixed Main Mule Workflow (after JIRA upgrade) [ 61124 ] |
| Workflow | Fixed Main Mule Workflow (after JIRA upgrade) [ 61124 ] | Copy of Main Mule Workflow [ 64997 ] |
| Workflow | Copy of Main Mule Workflow [ 64997 ] | Fixed Main Mule Workflow (after JIRA upgrade) [ 68743 ] |