OSDN Git Service

2003-10-29 Julian Dolby <dolby@us.ibm.com>
authormkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Oct 2003 14:54:00 +0000 (14:54 +0000)
committermkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4>
Wed, 29 Oct 2003 14:54:00 +0000 (14:54 +0000)
* javax/naming/spi/NamingManager.java (getContinuationContext): Call
getObjectInstance() with Object, Name, Context and environment
Hashtable from exception. Call fillInStackTrace() on exception when
rethrown.
* javax/naming/InitialContext.java (lookup(Name)): When a
CannotProceedException is thrown use the ContinuationContext.
(lookup(String)): Likewise.
(close): Clear myProps and defaultInitCtx.

git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73041 138bc75d-0d04-0410-961f-82ee72b054a4

libjava/ChangeLog
libjava/javax/naming/InitialContext.java
libjava/javax/naming/spi/NamingManager.java

index 07043ac..bea41fc 100644 (file)
@@ -1,3 +1,14 @@
+2003-10-29  Julian Dolby  <dolby@us.ibm.com>
+
+       * javax/naming/spi/NamingManager.java (getContinuationContext): Call
+       getObjectInstance() with Object, Name, Context and environment
+       Hashtable from exception. Call fillInStackTrace() on exception when
+       rethrown.
+       * javax/naming/InitialContext.java (lookup(Name)): When a
+       CannotProceedException is thrown use the ContinuationContext.
+       (lookup(String)): Likewise.
+       (close): Clear myProps and defaultInitCtx.
+
 2003-10-29  Michael Koch  <konqueror@gmx.de>
 
        * java/net/InetAddress.java
index 715f30a..e2a1ac6 100644 (file)
@@ -240,12 +240,28 @@ public class InitialContext implements Context
 
   public Object lookup (Name name) throws NamingException
   {
-    return getURLOrDefaultInitCtx (name).lookup (name);
+    try
+      {
+       return getURLOrDefaultInitCtx (name).lookup (name);
+      }
+    catch (CannotProceedException cpe)
+      {
+       Context ctx = NamingManager.getContinuationContext (cpe);
+       return ctx.lookup (cpe.getRemainingName());
+      }
   }
 
   public Object lookup (String name) throws NamingException
   {
-    return getURLOrDefaultInitCtx (name).lookup (name);
+      try
+       {
+         return getURLOrDefaultInitCtx (name).lookup (name);
+       }
+      catch (CannotProceedException cpe)
+       {
+         Context ctx = NamingManager.getContinuationContext (cpe);
+         return ctx.lookup (cpe.getRemainingName());
+       }
   }
 
   public void rebind (Name name, Object obj) throws NamingException
@@ -367,7 +383,8 @@ public class InitialContext implements Context
 
   public void close () throws NamingException
   {
-    throw new OperationNotSupportedException ();
+    myProps = null;
+    defaultInitCtx = null;
   }
 
   public String getNameInNamespace () throws NamingException
index 65ce2d2..af9ddc3 100644 (file)
@@ -324,8 +324,10 @@ public class NamingManager
     // It is really unclear to me if this is right.
     try
       {
-       Object obj = getObjectInstance (null, cpe.getAltName (),
-                                       cpe.getAltNameCtx (), env);
+       Object obj = getObjectInstance (cpe.getResolvedObj(),
+                                       cpe.getAltName (),
+                                       cpe.getAltNameCtx (), 
+                                       env);
        if (obj != null)
          return (Context) obj;
       }
@@ -333,6 +335,9 @@ public class NamingManager
       {
       }
 
+    // fix stack trace for re-thrown exception (message confusing otherwise)
+    cpe.fillInStackTrace();
+
     throw cpe;
   }