You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Hao Zhong (JIRA)" <ji...@apache.org> on 2017/07/05 08:45:00 UTC
[jira] [Created] (DERBY-6946) Argument checking for
EmbedResultSet_setFetchSize(int) may be incorrect
Hao Zhong created DERBY-6946:
--------------------------------
Summary: Argument checking for EmbedResultSet_setFetchSize(int) may be incorrect
Key: DERBY-6946
URL: https://issues.apache.org/jira/browse/DERBY-6946
Project: Derby
Issue Type: Bug
Components: JDBC
Affects Versions: 10.12.1.1
Reporter: Hao Zhong
The EmbedResultSet_setFetchSize method has the following code to check its argument:
{code}
public void setFetchSize(int rows) throws SQLException {
checkStatus();
if (rows < 0 || (this.getMaxRows() != 0 &&
rows > this.getMaxRows()))
{
throw newSQLException(SQLState.INVALID_ST_FETCH_SIZE, rows);
}else if ( rows > 0 ) // ignore the call if the value is zero
fetchSize = rows;
}
{code}
The check seems to be incorrect. DERBY-3573 fixed a similar problem, and explained why the check is incorrect. The buggy code is identical, and the fixed code is:
{code}
public void setFetchSize(int rows) throws SQLException {
checkIfClosed("setFetchSize");
if (rows < 0) {
throw Util.generateCsSQLException(SQLState.INVALID_FETCH_SIZE,
new Integer(rows));
} else if (rows > 0) // if it is zero ignore the call
{
fetchSize = rows;
}
}
{code}
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)