Author: rmannibucau
Date: Mon May 26 19:59:35 2014
New Revision: 1597636

URL: http://svn.apache.org/r1597636
Log:
TOMEE-1223 proper close handling in case of error in tomee embedded EJBContainer

Modified:
    
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java

Modified: 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java
URL: 
http://svn.apache.org/viewvc/tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java?rev=1597636&r1=1597635&r2=1597636&view=diff
==============================================================================
--- 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java
 (original)
+++ 
tomee/tomee/trunk/tomee/tomee-embedded/src/main/java/org/apache/tomee/embedded/EmbeddedTomEEContainer.java
 Mon May 26 19:59:35 2014
@@ -100,8 +100,8 @@ public class EmbeddedTomEEContainer exte
             }
 
             if ((provider == null && ejbContainerProviders > 1)
-                    || (!provider.equals(EmbeddedTomEEContainer.class)
-                    && !CONTAINER_NAMES.contains(provider.toString()))) {
+                    || (!EmbeddedTomEEContainer.class.equals(provider)
+                        && !CONTAINER_NAMES.contains(provider))) {
                 return null;
             }
 
@@ -165,24 +165,24 @@ public class EmbeddedTomEEContainer exte
 
                 return tomEEContainer;
             } catch (final OpenEJBException e) {
+                tomEEContainer.close();
                 throw new EJBException(e);
             } catch (final MalformedURLException e) {
+                tomEEContainer.close();
                 throw new EJBException(e);
             } catch (final ValidationException ve) {
+                if (tomEEContainer != null) {
+                    tomEEContainer.close();
+                }
                 throw ve;
             } catch (final Exception e) {
+                if (tomEEContainer != null) {
+                    tomEEContainer.close();
+                }
                 if (e instanceof EJBException) {
                     throw (EJBException) e;
                 }
                 throw new TomEERuntimeException("initialization exception", e);
-            } finally {
-                if (tomEEContainer == null) {
-                    try {
-                        tomEEContainer.close();
-                    } catch (final Exception e) {
-                        // no-op
-                    }
-                }
             }
         }
     }


Reply via email to