[jboss-jira] [JBoss JIRA] Resolved: (EJBTHREE-1884) IsLocalProxyFactoryInterceptor routes to local proxy factory instead of a remote proxy factory

jaikiran pai (JIRA) jira-events at lists.jboss.org
Fri Aug 14 08:01:26 EDT 2009


     [ https://jira.jboss.org/jira/browse/EJBTHREE-1884?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

jaikiran pai resolved EJBTHREE-1884.
------------------------------------

               Fix Version/s: 1.1.12
                  Resolution: Done
    Component Fix Version(s): jboss-ejb3-proxy-impl:1.0.4 jboss-ejb3-proxy-clustered:1.0.2


The proxies to remote proxyfactories, of the beans, will now be bound in the JNDI. The objectfactory (ProxyObjectFactory) on the client side will lookup for the remote proxyfactories through JNDI. As a result, the proxies to the proxyfactories along with its handlers and associated interceptors (IsLocalProxyFactoryInterceptor is one) will be serialized when appropriate.

Local proxyfactories are not bound to the JNDI. Only remote proxyfactories are. Local proxyfactories will continue to be available only through the Dispatcher (and as MC beans).


> IsLocalProxyFactoryInterceptor routes to local proxy factory instead of a remote proxy factory
> ----------------------------------------------------------------------------------------------
>
>                 Key: EJBTHREE-1884
>                 URL: https://jira.jboss.org/jira/browse/EJBTHREE-1884
>             Project: EJB 3.0
>          Issue Type: Bug
>          Components: proxy-clustered, proxy-impl
>    Affects Versions: 1.1.11
>            Reporter: jaikiran pai
>            Assignee: jaikiran pai
>             Fix For: 1.1.12
>
>
> The fix EJBTHREE-1868 exposed a bug in the way the IsLocalProxyFactoryInterceptor is used. Mail conversation below:
> Turns out, the fix for EJBTHREE-1868 just exposed this other existing bug. This forum thread in EJB3 design forum explains the purpose of IsLocalProxyFactoryInterceptor http://www.jboss.org/index.html?module=bb&op=viewtopic&t=104924. The ProxyObjectFactory#getObjectInstance invokes createProxyFactoryProxy which internally ends up using the local IsLocalProxyFactoryInterceptor instance. All this happens on the client and the  IsLocalProxyFactoryInterceptor is never serialized. Effectively  this ends up being  routed to the local proxy factory when the same bean is available on more than one running instance of the server.
> regards,
> -Jaikiran
> Jaikiran Pai wrote:
> > Hello everyone,
> >
> > I just fixed a bug in org.jboss.ejb3.proxy.impl.remoting.IsLocalProxyFactoryInterceptor (https://jira.jboss.org/jira/browse/EJBTHREE-1868) where a local proxy lookup was resulting in a remoting call. After this "fix", Our hudson run has been reporting failures with Clustered ForeignPartitionLocalInterceptorUnitTestCase
> >
> > That testcase starts up a cluster with 2 nodes. Both nodes have the same bean deployed (but in a practical scenario the implementations of the beans on both nodes might be different). Bean on node1 looks up same bean on node2 (by passing the PROVIDER_URL) to initial context. But the IsLocalProxyFactoryInterceptor after this fix identifies this as a local call (because it finds the same bean registered with the Dispatcher locally). As a result, a local proxy is returned and the test fails.
> >
> >

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

        



More information about the jboss-jira mailing list