[hibernate-issues] [Hibernate-JIRA] Commented: (HHH-1189) interfaces for Proxies are not regonized as interfaces

Paul Benedict (JIRA) noreply at atlassian.com
Mon Jun 2 11:24:33 EDT 2008


    [ http://opensource.atlassian.com/projects/hibernate/browse/HHH-1189?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_30308 ] 

Paul Benedict commented on HHH-1189:
------------------------------------

This issue now has a test case. Can it be looked at again for 3.3? 

Our development has the same issue: we query for a list of AbstractItems, which implement the Item interface, but the concrete subclasses also have specific interfaces. Currently, we cannot cast to those subinterfaces through a proxy.

> interfaces for Proxies are not regonized as interfaces
> ------------------------------------------------------
>
>                 Key: HHH-1189
>                 URL: http://opensource.atlassian.com/projects/hibernate/browse/HHH-1189
>             Project: Hibernate3
>          Issue Type: Patch
>          Components: core
>    Affects Versions: 3.1 rc3
>         Environment: Discovered on Hibernate 3.0, still present in 3.1rc3
>            Reporter: Tobias
>            Assignee: Steve Ebersole
>            Priority: Critical
>         Attachments: eg.zip
>
>   Original Estimate: 1 hour
>  Remaining Estimate: 1 hour
>
> In org.hibernate.tuple.PojoEntityTuplizer line 119 reads:
>  if ( !proxyInterface.isInterface() ) {
> and should be
>   if ( !subclassClass.isInterface() ) {
> So the code then would look like this:
> 			Subclass subclass = ( Subclass ) iter.next();
> 			Class subclassProxy = subclass.getProxyInterface();
> 			Class subclassClass = subclass.getMappedClass();
> 			if ( subclassProxy!=null && !subclassClass.equals( subclassProxy ) ) {
> 				if ( !subclassProxy.isInterface() ) {  // HERE!
> 					throw new MappingException(
> 					        "proxy must be either an interface, or the class itself: " + 
> 					        subclass.getEntityName()
> 					);
> 				}
> 				proxyInterfaces.add( subclassProxy );
> 			}
> After that change the specified interfaces for subclass proxies are regonized as such. Without this patch the superclass is checked, which may not have/be an interface as proxy class.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: http://opensource.atlassian.com/projects/hibernate/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the hibernate-issues mailing list