db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kathey Marsden (JIRA)" <derby-...@db.apache.org>
Subject [jira] Commented: (DERBY-1227) Network Server should not use the underlying embedded prepared statement when accessing a BrokeredPreparedStatement
Date Mon, 22 May 2006 20:44:30 GMT
    [ http://issues.apache.org/jira/browse/DERBY-1227?page=comments#action_12412828 ] 

Kathey Marsden commented on DERBY-1227:

Mike asked me to post what I know about this issue, which isn't alot but perhaps might be
a starting point.

Dan had mentioned that this might cause the wrong statement to be returned and so could be
potentially serious and hard to diagnose in the field.

I think there are reflection calls for prepared statements for methods that are not avable
in BrokeredPreparedStatements: e.g. 

Method sh =
				getPreparedStatement().getClass().getMethod("getEmbedParameterSetMetaData", getParameterMetaDataParam);

One possible fix might be to implement an org.apache.derby.iapi.jdbc.EnginePreparedStatement
interface similar to EngineConnection that will allow exposure of these methods and allow
 consistant  interaction between EmbedPreparedStatements and BrokeredPreparedStatements.
See  org.apache.derby.iapi.jdbc.EngineConnection for a more information.

> Network Server should not use the underlying embedded prepared statement when accessing
a BrokeredPreparedStatement
> -------------------------------------------------------------------------------------------------------------------
>          Key: DERBY-1227
>          URL: http://issues.apache.org/jira/browse/DERBY-1227
>      Project: Derby
>         Type: Bug

>   Components: Network Server
>     Reporter: Kathey Marsden
>     Priority: Minor
>      Fix For:

> Network Server should not use the underlying embedded 
> Prepared statement when accessing a BrokeredPreparedStatement.
> In DERBY-1025 Dan pointed out this code which while not related to DERBY-1025 does appear
to be a problem. Here is his comment regarding this code in DRDAStatement:
>  /**
> * Get prepared statement
> *
> * @return prepared statement
> */
> protected PreparedStatement getPreparedStatement() throws SQLException
> {
> if (ps instanceof BrokeredPreparedStatement)
> return (PreparedStatement)(
> ((BrokeredPreparedStatement) ps).getStatement());
> else
> return ps;
> }
> This code, for some unknown reason due to lack of comments, is getting the underlying
embedded statement
> from a BrokeredPreparedStatement. This should not be allowed, the BrokeredStatement wrappers
are there to
> hide the embedded statement object as it can change under the covers of the wrapper.

This message is automatically generated by JIRA.
If you think it was sent incorrectly contact one of the administrators:
For more information on JIRA, see:

View raw message