rspec/rules/S2233/java/rule.adoc
Fred Tingaud 16f6c0aecf
Inline adoc when include has no additional value (#1940)
Inline adoc files when they are included exactly once.

Also fix language tags because this inlining gives us better information
on what language the code is written in.
2023-05-25 14:18:12 +02:00

53 lines
1.3 KiB
Plaintext

== Why is this an issue?
The implementation of certain ``++ResultSet++`` methods is optional for result sets of type ``++TYPE_FORWARD_ONLY++``. Even if your current JDBC driver does implement those methods, there's no guarantee you won't change drivers in the future.
This rule looks for invocations of the following methods on ``++TYPE_FORWARD_ONLY++`` ``++ResultSet++``s:
* ``++isBeforeFirst++``
* ``++isAfterLast++``
* ``++isFirst++``
* ``++getRow++``
=== Noncompliant code example
[source,java]
----
Statement stmt = con.createStatement(ResultSet.TYPE_FORWARD_ONLY);
stmt.executeQuery("SELECT name, address FROM PERSON");
ResultSet rs = stmt.getResultSet();
if (rs.isBeforeFirst()) { // Noncompliant
}
----
== Resources
=== Related rules
* S2232 - "ResultSet.isLast()" should not be used
ifdef::env-github,rspecator-view[]
'''
== Implementation Specification
(visible only on this page)
=== Message
Remove this call to "xxx".
'''
== Comments And Links
(visible only on this page)
=== on 5 Dec 2014, 07:51:51 Nicolas Peru wrote:
This one will require CFG to limit the number of false positive to add some constraints on the "stmt" variable to be able to determine which statement are indeed created with ``++ResultSet.TYPE_FORWARD_ONLY++``
endif::env-github,rspecator-view[]