Hi All,
I think we should mark these methods as Deprecated and remove all
references from IS and user-code side. They promote careless mistakes,
which are difficult to detect by human or automated tools.

public static void closeAllConnections(Connection dbConnection,
PreparedStatement... prepStmts) {

public static void closeAllConnections(Connection dbConnection,
ResultSet rs, PreparedStatement... prepStmts) {

public static void closeAllConnections(Connection dbConnection,
ResultSet rs1, ResultSet rs2,
                                       PreparedStatement... prepStmts) {


Also we should be able to rewrite the code to use newer AutoCloseable thing
with java7 for IS 5.3.0+.

Cheers,
Ruwan

On Tue, Apr 25, 2017 at 4:37 PM, Hasanthi Purnima Dissanayake <
[email protected]> wrote:

> Hi All,
>
> We are maintaining below two methods in [1]. Those methods are expecting
> multiple PreparedStatements and one or two ResultSets. IMO it is
> conceptually wrong to have multiple PreparedStatements with one or two
> ResultSets.
>
> public static void closeAllConnections(Connection dbConnection, ResultSet rs, 
> PreparedStatement... prepStmts) {
>
>     closeResultSet(rs);
>     closeStatements(prepStmts);
>     closeConnection(dbConnection);
> }
>
> public static void closeAllConnections(Connection dbConnection, ResultSet 
> rs1, ResultSet rs2,
>                                        PreparedStatement... prepStmts) {
>     closeResultSet(rs1);
>     closeResultSet(rs2);
>     closeStatements(prepStmts);
>     closeConnection(dbConnection);
> }
>
>
> In the references of this method [2], we have assigned multiple
> PreparedStatement execution results to a single ResultSet. (without
> closing the resultset we have re-used it). This is useless and it can cause
> to a memory leak as well.
>
> So IMO we should depreciate using above two methods and introduce a new
> method to close connections.
>
>  [1] https://github.com/wso2-support/carbon4-kernel/blob/
> support-4.4.11/core/org.wso2.carbon.user.core/src/main/
> java/org/wso2/carbon/user/core/util/DatabaseUtil.java
> [2] https://github.com/wso2-support/carbon4-kernel/blob/
> support-4.4.11/core/org.wso2.carbon.user.core/src/main/
> java/org/wso2/carbon/user/core/authorization/PermissionTree.java#L1012
>
>
> WDYT?
>
> Thanks,
>
> Hasanthi Dissanayake
>
> Software Engineer | WSO2
>
> E: [email protected]
> M :0718407133| http://wso2.com <http://wso2.com/>
>
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev

Reply via email to