diff options
| author | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-29 14:54:00 +0000 |
|---|---|---|
| committer | mkoch <mkoch@138bc75d-0d04-0410-961f-82ee72b054a4> | 2003-10-29 14:54:00 +0000 |
| commit | ac51a971a5e4c06778cd2fc1f6c3ed9ed34b2357 (patch) | |
| tree | 2d5eae99e409be7f899b51da5a873f302360ecf0 /libjava | |
| parent | 71712155a5c0a02ebcaf714ceaa7ffa0342139c2 (diff) | |
| download | ppe42-gcc-ac51a971a5e4c06778cd2fc1f6c3ed9ed34b2357.tar.gz ppe42-gcc-ac51a971a5e4c06778cd2fc1f6c3ed9ed34b2357.zip | |
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.
git-svn-id: svn+ssh://gcc.gnu.org/svn/gcc/trunk@73041 138bc75d-0d04-0410-961f-82ee72b054a4
Diffstat (limited to 'libjava')
| -rw-r--r-- | libjava/ChangeLog | 11 | ||||
| -rw-r--r-- | libjava/javax/naming/InitialContext.java | 23 | ||||
| -rw-r--r-- | libjava/javax/naming/spi/NamingManager.java | 9 |
3 files changed, 38 insertions, 5 deletions
diff --git a/libjava/ChangeLog b/libjava/ChangeLog index 07043ac856e..bea41fc92b4 100644 --- a/libjava/ChangeLog +++ b/libjava/ChangeLog @@ -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 diff --git a/libjava/javax/naming/InitialContext.java b/libjava/javax/naming/InitialContext.java index 715f30ad5cd..e2a1ac6b63f 100644 --- a/libjava/javax/naming/InitialContext.java +++ b/libjava/javax/naming/InitialContext.java @@ -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 diff --git a/libjava/javax/naming/spi/NamingManager.java b/libjava/javax/naming/spi/NamingManager.java index 65ce2d23c23..af9ddc36ca7 100644 --- a/libjava/javax/naming/spi/NamingManager.java +++ b/libjava/javax/naming/spi/NamingManager.java @@ -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; } |

