db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Hao Zhong (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (DERBY-6946) Argument checking for EmbedResultSet_setFetchSize(int) may be incorrect
Date Thu, 06 Jul 2017 00:39:01 GMT

    [ https://issues.apache.org/jira/browse/DERBY-6946?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16075697#comment-16075697
] 

Hao Zhong commented on DERBY-6946:
----------------------------------

It turns out that my repository is out of date. I will update my repository.

> 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 as follow:
> {code}
> public void setFetchSize(int rows) throws SQLException {
> 		checkIfClosed("setFetchSize");
> 		if (rows < 0 || (stmt.getMaxRows() != 0 && rows > stmt.getMaxRows()))
{
> 			throw Util.generateCsSQLException(SQLState.INVALID_FETCH_SIZE,
> 					new Integer(rows));
> 		} else if (rows > 0) // if it is zero ignore the call
> 		{
> 			fetchSize = rows;
> 		}
> 	}
> {code}
> 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)

Mime
View raw message