Hi All,
I am trying to fix the dbreport integration test case for the ESB 4.9.0
release and came through the below exception from the automation framework.
java.sql.SQLException: Operation not allowed after ResultSet closed
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1055)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:926)
at com.mysql.jdbc.ResultSetImpl.checkClosed(ResultSetImpl.java:768)
at com.mysql.jdbc.ResultSetImpl.next(ResultSetImpl.java:7008)
at
org.wso2.carbon.esb.mediator.test.db.dbreport.DBReportMediatorTestCase.getPrice(DBReportMediatorTestCase.java:209)
at
org.wso2.carbon.esb.mediator.test.db.dbreport.DBReportMediatorTestCase.DBReportUseMessageContentTestCase(DBReportMediatorTestCase.java:141)
When I go through the code of the automation framework, I found out that
the below code segment in the MySqlDatabaseManager class. *This will close
the Statement after executing. But that operation will eventually closes
the result set according to the java documentation[1]*
/**
* @param sql
* @return
* @throws java.sql.SQLException
*/
public ResultSet executeQuery(String sql) throws SQLException {
ResultSet rs;
Statement st = null;
try {
st = connection.createStatement();
log.debug(sql);
rs = st.executeQuery(sql);
} finally {
if (st != null) {
st.close();
}
}
return rs;
}
Due to this reason, we cannot look in to the result set within the
integration test code which is a requirement for this specific test case of
dbreport mediator.
ResultSet rs = mySqlDatabaseManager.executeQuery("SELECT price from company
WHERE name = 'WSO2'");
while (rs.next()) {
price = Double.toString(rs.getDouble("price"));
}
In the above code, it fails when trying to call the rs.next() since the
result set is already closed.
WDYT?
[1]
http://docs.oracle.com/javase/7/docs/api/java/sql/Statement.html#executeQuery%28java.lang.String%29
Thanks,
Chanaka
--
--
Chanaka Fernando
Technical Lead
WSO2, Inc.; http://wso2.com
lean.enterprise.middleware
mobile: +94 773337238
Blog : http://soatutorials.blogspot.com
LinkedIn:http://www.linkedin.com/pub/chanaka-fernando/19/a20/5b0
Twitter:https://twitter.com/chanakaudaya
Wordpress:http://chanakaudaya.wordpress.com
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev