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;