User: oberg   
  Date: 00/10/25 01:59:12

  Modified:    src/main/org/jnp/interfaces NamingContext.java
  Log:
  Updated NamingContext to always store objects in marshalled state due to classloader 
problems
  
  Revision  Changes    Path
  1.2       +37 -12    jnp/src/main/org/jnp/interfaces/NamingContext.java
  
  Index: NamingContext.java
  ===================================================================
  RCS file: /products/cvs/ejboss/jnp/src/main/org/jnp/interfaces/NamingContext.java,v
  retrieving revision 1.1
  retrieving revision 1.2
  diff -u -r1.1 -r1.2
  --- NamingContext.java        2000/10/10 12:42:34     1.1
  +++ NamingContext.java        2000/10/25 08:59:12     1.2
  @@ -29,7 +29,7 @@
    *      
    *   @see <related>
    *   @author $Author: oberg $
  - *   @version $Revision: 1.1 $
  + *   @version $Revision: 1.2 $
    */
   public class NamingContext
      implements Context, java.io.Serializable
  @@ -76,7 +76,7 @@
                        server = (Naming)ref.get();
                        if (server != null)
                        {
  -                             System.out.println("Using cached naming server");
  +//DEBUG                              System.out.println("Using cached naming 
server");
                                return server;
                        }
                }
  @@ -200,15 +200,19 @@
            if (!(obj instanceof Reference))
            {
               className = obj.getClass().getName();
  -            // Normal object - serialize if not local naming
  -            if (naming instanceof java.rmi.server.RemoteStub)
  -               obj = new MarshalledObject(obj);
  +            // Normal object - serialize
  +            obj = new MarshalledObject(obj);
            } else
            {
               className = ((Reference)obj).getClassName();
            }
            
            naming.rebind(getAbsoluteName(name),obj, className);
  +      } catch (CannotProceedException cpe)
  +      {
  +         cpe.setEnvironment(env);
  +         Context cctx = NamingManager.getContinuationContext(cpe);
  +         cctx.rebind(cpe.getRemainingName(), obj);
         } catch (IOException e)
         {
                        naming = null;
  @@ -243,15 +247,19 @@
            {
               className = obj.getClass().getName();
               
  -            // Normal object - serialize if not local naming
  -            if (naming instanceof java.rmi.server.RemoteStub)
  -               obj = new MarshalledObject(obj);
  +            // Normal object - serialize
  +            obj = new MarshalledObject(obj);
            } else
            {
               className = ((Reference)obj).getClassName();
            }
            
            naming.bind(getAbsoluteName(name),obj, className);
  +      } catch (CannotProceedException cpe)
  +      {
  +         cpe.setEnvironment(env);
  +         Context cctx = NamingManager.getContinuationContext(cpe);
  +         cctx.bind(cpe.getRemainingName(), obj);
         } catch (IOException e)
         {
            naming = null;
  @@ -281,10 +289,7 @@
         try
         {
                        Name n = getAbsoluteName(name);
  -                     long start = System.currentTimeMillis();
            Object res = naming.lookup(n);
  -         long end  = System.currentTimeMillis();
  -                     System.out.println("Lookup time:"+(end-start));
            
            if (res instanceof MarshalledObject)
            {
  @@ -388,6 +393,11 @@
            }
            
            return res;
  +      } catch (CannotProceedException cpe)
  +      {
  +         cpe.setEnvironment(env);
  +         Context cctx = NamingManager.getContinuationContext(cpe);
  +         return cctx.lookup(cpe.getRemainingName());
         } catch (IOException e)
         {
            naming = null;
  @@ -419,6 +429,11 @@
         try
         {
            naming.unbind(getAbsoluteName(name));
  +      } catch (CannotProceedException cpe)
  +      {
  +         cpe.setEnvironment(env);
  +         Context cctx = NamingManager.getContinuationContext(cpe);
  +         cctx.unbind(cpe.getRemainingName());
         } catch (IOException e)
         {
            naming = null;
  @@ -457,6 +472,11 @@
         try
         {
            return new NamingEnumerationImpl(naming.list(getAbsoluteName(name)));
  +      } catch (CannotProceedException cpe)
  +      {
  +         cpe.setEnvironment(env);
  +         Context cctx = NamingManager.getContinuationContext(cpe);
  +         return cctx.list(cpe.getRemainingName());
         } catch (IOException e)
         {
            naming = null;
  @@ -510,6 +530,11 @@
         try
         {
            return naming.createSubcontext(getAbsoluteName(name));
  +      } catch (CannotProceedException cpe)
  +      {
  +         cpe.setEnvironment(env);
  +         Context cctx = NamingManager.getContinuationContext(cpe);
  +         return cctx.createSubcontext(cpe.getRemainingName());
         } catch (IOException e)
         {
            naming = null;
  
  
  

Reply via email to