You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xbean-scm@geronimo.apache.org by ri...@apache.org on 2010/10/21 21:59:22 UTC

svn commit: r1026122 - /geronimo/xbean/trunk/xbean-naming/src/main/java/org/apache/xbean/naming/context/ContextFederation.java

Author: rickmcguire
Date: Thu Oct 21 19:59:22 2010
New Revision: 1026122

URL: http://svn.apache.org/viewvc?rev=1026122&view=rev
Log:
Ensure RuntimeExceptions from Bindings get propagated as NamingExceptions

Modified:
    geronimo/xbean/trunk/xbean-naming/src/main/java/org/apache/xbean/naming/context/ContextFederation.java

Modified: geronimo/xbean/trunk/xbean-naming/src/main/java/org/apache/xbean/naming/context/ContextFederation.java
URL: http://svn.apache.org/viewvc/geronimo/xbean/trunk/xbean-naming/src/main/java/org/apache/xbean/naming/context/ContextFederation.java?rev=1026122&r1=1026121&r2=1026122&view=diff
==============================================================================
--- geronimo/xbean/trunk/xbean-naming/src/main/java/org/apache/xbean/naming/context/ContextFederation.java (original)
+++ geronimo/xbean/trunk/xbean-naming/src/main/java/org/apache/xbean/naming/context/ContextFederation.java Thu Oct 21 19:59:22 2010
@@ -115,7 +115,17 @@ public class ContextFederation {
 
                     // don't overwrite existing bindings
                     if (!bindings.containsKey(bindingName)) {
-                        bindings.put(bindingName, binding.getObject());
+                        try {
+                            bindings.put(bindingName, binding.getObject());
+                        } catch (RuntimeException e) {
+                            // if this is a wrapped NamingException, unwrap and throw the original 
+                            Throwable cause = e.getCause(); 
+                            if (cause != null && cause instanceof NamingException ) {
+                                throw (NamingException)cause; 
+                            }
+                            // Wrap this into a RuntimeException.  
+                            throw (NamingException)new NamingException("Could retrieve bound instance " + name).initCause(e);
+                        }
                     }
                 }
             } catch (NotContextException e) {