[ http://issues.apache.org/jira/browse/DERBY-819?page=comments#action_12366695 ]
Daniel John Debrunner commented on DERBY-819: --------------------------------------------- review derby819_2.diff -1 veto still in place: If these BLOCKER issues are addressed, the veto is lifted - SystemProcedure changes need to be removed (see below) - NPE potential at statup needs to be addressed. (see below) - Test code just ignores the very exceptions it is meant to be testing. (see below) - Why is a SQLExceptionFactory and SQLExceptionFactory 40 classes needed? With the way this is implemented, the new method it defines could just included in InternalDriver and the 40 specific one in Driver40. Seems a lot of overhead for little value. BLOCKER - We still have a window where before the driver is loaded any InternalDriver.getSQLExceptionFactory() could return null leading to a NullPointerException. Maybe just simply closing this by having InternalDriver initialize the static field to a factory that returns the plain SQLException would be sufficient. - Copyright dates for the new files need to be 2005,2006 or just 2006 depending on when they were created - no class javadoc for SQLExceptionFactory40 - SQLExceptionFactory40: Don't understand why there is a method getJDBC40Exception, why not just have the code in getSQLException - SQLExceptionFactory40.getJDBC40Exception - No need to have the 'if (ex == null) ' just make ex = new SQLException part of the else in the above block. Then no need to initialize ex = null at the beginning of the method. This is where Java is great, the compiler will tell you if ex is never initialized. WIth the code as-is I have to look to see under what conditions ex can be null for the 'if (ex == null) ' if I want to understand it. Thus I waste my time looking for a condition that can never exist. - Removal of all the shortcut methods seems like the wrong approach to me, that's been discussed on the list. It's about 90% of this patch and could have been avoided, making the real changes easier to spot. - Seems to be some unrelated changes included, addition of an extra parameter here. - throw Util.generateCsSQLException(SQLState.INVALID_API_PARAMETER,map,"map", + throw InternalDriver.getExceptionFactory() + .generateCsSQLException(SQLState.INVALID_API_PARAMETER,map,"map", "java.sql.Connection.setTypeMap"); BLOCKER - Very strange changes in SystemProcedures.java, look like some global edit script gone wrong. Makes me *very* nervous about the rest of the patch, not having the shortcut methods removed would make the patch easier to manage and easier for the reviewers to spot issues like this. BLOCKER - Tests have code like this: + } catch (SQLIntegrityConstraintViolationException e) { + } How does this test that we are setting the SQLState and message correctly in these new exceptions? Maybe the coder accidently swapped the SQLState and message parameters. > Provide JDBC4 SQLException subclasses support in Embedded driver > ---------------------------------------------------------------- > > Key: DERBY-819 > URL: http://issues.apache.org/jira/browse/DERBY-819 > Project: Derby > Type: Sub-task > Components: JDBC > Environment: all > Reporter: Anurag Shekhar > Assignee: Anurag Shekhar > Priority: Minor > Attachments: .derby-819_2.stat, derby-819-onlyforreview.diff, > derby-819.diff, derby-819_2.diff, stat.out > -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira