"David Van Couvering (JIRA)" <[email protected]> writes:

>     [ 
> http://issues.apache.org/jira/browse/DERBY-842?page=comments#action_12374799 
> ] 
>
> David Van Couvering commented on DERBY-842:
> -------------------------------------------
>
> Knut comments:
> <quote>
>  jdbc4/TestResultSetMethods.java fails too since on the client
> ResultSet.checkForClosedResultSet() uses SQL state XJ012
> (ALREADY_CLOSED) whereas EmbedResultSet.checkIfClosed() uses XCL16
> (LANG_RESULT_SET_NOT_OPEN).
> </quote>  
>
> and Kathey mentions on email that we should strive for the SQL States to be 
> the same on embedded and network client drivers, to which I wholeheartedly 
> agree.
>
> The problem is, fixing this is turning out to be a bit tricky, because the 
> message for XCL16 is
>
> XCL16.S=ResultSet not open. Operation ''{0}'' not permitted. Verify that 
> autocommit is OFF.
>
>
> The reason this is a problem is becuase ResultSet.checkForClosedResultSet()  
> is a generic method called by many (about 30) methods of ResultSet, and the 
> particular operation being attempted is not specified.
>
> So, I could fix this by 
>
> (a) changing the message for XCL16 to not specify the operation
> (b) use the string "<unspecified>" in the client code (I'd internationalize 
> the string so it can be translated)
>
> Any opinions?  Otherwise I'll go with option (b)

Isn't this case similar to those where you have added .0 and .1 as a
suffix? For instance,

  XCL16.S.0="ResultSet not open."
  XCL16.S.1="ResultSet not open. Operation {0} not permitted."

On the other hand, Rick's suggestion (Throwable.getStackTrace) sounded
very fancy! :)

-- 
Knut Anders

Reply via email to