KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > iiop > SunJDK14IsLocalBugFix


1 /*
2 * JBoss, Home of Professional Open Source
3 * Copyright 2005, JBoss Inc., and individual contributors as indicated
4 * by the @authors tag. See the copyright.txt in the distribution for a
5 * full listing of individual contributors.
6 *
7 * This is free software; you can redistribute it and/or modify it
8 * under the terms of the GNU Lesser General Public License as
9 * published by the Free Software Foundation; either version 2.1 of
10 * the License, or (at your option) any later version.
11 *
12 * This software is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY; without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
15 * Lesser General Public License for more details.
16 *
17 * You should have received a copy of the GNU Lesser General Public
18 * License along with this software; if not, write to the Free
19 * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
20 * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
21 */

22 package org.jboss.iiop;
23
24 /**
25  * There is a bug in Sun's implementation of the method javax.rmi.CORBA.Util.isLocal().
26  * Stubs generated with the rmic tool call this method to check is the call is a local invocation,
27  * which they can optimize. However, Sun's implementation of isLocal() tries to cast the stub to a proprietary
28  * class. This is against the rules. Since the ORB is pluggable ("-Dorg.omg.CORBA.ORBClass=...), Sun's
29  * implementation of a standard (javax.rmi) method should not assume that the stubs are Sun stubs.
30  *
31  * @author <a HREF="mailto:reverbel@ime.usp.br">Francisco Reverbel</a>
32  * @version $Revision: 37459 $
33  *
34  **/

35 public class SunJDK14IsLocalBugFix extends com.sun.corba.se.internal.iiop.ShutdownUtilDelegate
36 {
37    public boolean isLocal(javax.rmi.CORBA.Stub JavaDoc stub)
38            throws java.rmi.RemoteException JavaDoc
39    {
40       try
41       {
42          org.omg.CORBA.portable.Delegate JavaDoc delegate = stub._get_delegate();
43          return delegate.is_local(stub);
44       }
45       catch (org.omg.CORBA.SystemException JavaDoc e)
46       {
47          throw javax.rmi.CORBA.Util.mapSystemException(e);
48       }
49    }
50 }
51
Popular Tags