[
https://issues.apache.org/jira/browse/OPENJPA-2605?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14996843#comment-14996843
]
ASF subversion and git services commented on OPENJPA-2605:
----------------------------------------------------------
Commit 1713475 from [~fyrewyld] in branch 'openjpa/branches/2.2.x'
[ https://svn.apache.org/r1713475 ]
OPENJPA-2605: DelegatingConnection.unwrap() doesn't adhere to
java.sql.Wrapper.unwrap() contract
> DelegatingConnection.unwrap() doesn't adhere to java.sql.Wrapper.unwrap()
> contract
> ----------------------------------------------------------------------------------
>
> Key: OPENJPA-2605
> URL: https://issues.apache.org/jira/browse/OPENJPA-2605
> Project: OpenJPA
> Issue Type: Bug
> Components: lib
> Affects Versions: 2.2.2, 2.4.0
> Reporter: Jody Grassel
> Assignee: Jody Grassel
> Attachments: OJ-2605.2.2.x.patch
>
>
> The implementation of DelegatingConnection.unwrap() checks if the delegate is
> assignable to the class type provided in the unwrap argument() and returns
> null if it is not. The negative result is not consistent with the unwrap()
> contract as specified by the Wrapper.unwrap() contract, as specified:
> "Returns an object that implements the given interface to allow access to
> non-standard methods, or standard methods not exposed by the proxy. If the
> receiver implements the interface then the result is the receiver or a proxy
> for the receiver. If the receiver is a wrapper and the wrapped object
> implements the interface then the result is the wrapped object or a proxy for
> the wrapped object. Otherwise return the the result of calling unwrap
> recursively on the wrapped object or a proxy for that result. If the receiver
> is not a wrapper and does not implement the interface, then an SQLException
> is thrown."
> Since DelegatingConnection is effectively a wrapper, it should check if the
> delegate is assignable to the type specified by the argument and return the
> delegate if it is, otherwise it should call the delegate's unwrap() method
> with the type argument provided as the argument to the underlying unwrap()
> call.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)