I think I have found a bug in JDBCUserStoreManager class at persistUser <https://github.com/wso2/carbon4-kernel/blob/master/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/jdbc/JDBCUserStoreManager.java#L1159> method.
In line 1166 <https://github.com/wso2/carbon4-kernel/blob/master/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/jdbc/JDBCUserStoreManager.java#L1166> a database connection is created by calling the getDBConnection() <https://github.com/wso2/carbon4-kernel/blob/master/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/jdbc/JDBCUserStoreManager.java#L976> method which throws SQLException and UserStoreException. If it throws an exception, catch clause [ catch (Throwable e) ] in line 1263 <https://github.com/wso2/carbon4-kernel/blob/master/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/jdbc/JDBCUserStoreManager.java#L1263> will catch it and tries to rollback the database connection. But dbConnection is null at this moment, and it will result a NullPointerException; which is not handled. My suggestion to fix this bug is to handle the exceptions of creating the database connection (at line 1166 <https://github.com/wso2/carbon4-kernel/blob/master/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/jdbc/JDBCUserStoreManager.java#L1166>) in a separate try-catch block. On Fri, Feb 20, 2015 at 10:39 AM, Udara Liyanage <ud...@wso2.com> wrote: > +1 for fixing, catching Throwable is not a good practice unless it is > highly needed > > On Thu, Feb 19, 2015 at 6:07 PM, Johann Nallathamby <joh...@wso2.com> > wrote: > >> I can't see any particular reason. +1 to fix it. >> >> On Thu, Feb 19, 2015 at 4:28 PM, Gayan Gunawardana <ga...@wso2.com> >> wrote: >> >>> Hi, >>> >>> In user core [1] JDBCUserStoreManager, persistUser user method >>> contains catching Throwable. In general catching Throwable is not a >>> good practice because there may be some run time Errors like >>> OutOfMemoryError >>> which are not be able to handle. Is there any particular reason to catch >>> Throwable? >>> >>> [1] >>> https://github.com/wso2/carbon4-kernel/blob/master/core/org.wso2.carbon.user.core/src/main/java/org/wso2/carbon/user/core/jdbc/JDBCUserStoreManager.java >>> -- >>> Gayan Gunawardana >>> Software Engineer; WSO2 Inc.; http://wso2.com/ >>> Email: ga...@wso2.com >>> Mobile: +94 (71) 8020933 >>> >> >> >> >> -- >> Thanks & Regards, >> >> *Johann Dilantha Nallathamby* >> Associate Technical Lead & Product Lead of WSO2 Identity Server >> Integration Technologies Team >> WSO2, Inc. >> lean.enterprise.middleware >> >> Mobile - *+94777776950* >> Blog - *http://nallaa.wordpress.com <http://nallaa.wordpress.com>* >> >> _______________________________________________ >> Dev mailing list >> Dev@wso2.org >> http://wso2.org/cgi-bin/mailman/listinfo/dev >> >> > > > -- > > Udara Liyanage > Software Engineer > WSO2, Inc.: http://wso2.com > lean. enterprise. middleware > > web: http://udaraliyanage.wordpress.com > phone: +94 71 443 6897 > > _______________________________________________ > Dev mailing list > Dev@wso2.org > http://wso2.org/cgi-bin/mailman/listinfo/dev > > -- Sajith Ariyarathna Software Engineer; WSO2, Inc.; http://wso2.com/ mobile: +94 77 6602284, +94 71 3951048
_______________________________________________ Dev mailing list Dev@wso2.org http://wso2.org/cgi-bin/mailman/listinfo/dev