You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2016/04/13 08:30:38 UTC

tomee git commit: TOMEE-1777 ensuring even in subtree resources are removed

Repository: tomee
Updated Branches:
  refs/heads/master cbe70c4eb -> 3d554efb7


TOMEE-1777 ensuring even in subtree resources are removed


Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/3d554efb
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/3d554efb
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/3d554efb

Branch: refs/heads/master
Commit: 3d554efb7e54a1e0e343e2ed4fd2eaecb3cd15c3
Parents: cbe70c4
Author: Romain manni-Bucau <rm...@gmail.com>
Authored: Wed Apr 13 08:30:09 2016 +0200
Committer: Romain manni-Bucau <rm...@gmail.com>
Committed: Wed Apr 13 08:30:09 2016 +0200

----------------------------------------------------------------------
 .../org/apache/openejb/assembler/classic/Assembler.java   | 10 ++++++----
 .../openejb/assembler/classic/LazyResourceTest.java       |  6 +++++-
 2 files changed, 11 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/tomee/blob/3d554efb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
index 7c84908..619dca4 100644
--- a/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
+++ b/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
@@ -1829,7 +1829,7 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
             } catch (final NamingException ignored) {
                 // no resource adapters were created
             }
-            destroyResourceTree(namingEnumeration);
+            destroyResourceTree("", namingEnumeration);
 
             try {
                 containerSystem.getJNDIContext().unbind("java:global");
@@ -1863,19 +1863,21 @@ public class Assembler extends AssemblerTool implements org.apache.openejb.spi.A
         }
     }
 
-    private Collection<DestroyingResource> destroyResourceTree(final NamingEnumeration<Binding> namingEnumeration) {
+    private Collection<DestroyingResource> destroyResourceTree(final String base, final NamingEnumeration<Binding> namingEnumeration) {
         final List<DestroyingResource> resources = new LinkedList<DestroyingResource>();
         while (namingEnumeration != null && namingEnumeration.hasMoreElements()) {
             final Binding binding = namingEnumeration.nextElement();
             final Object object = binding.getObject();
             if (Context.class.isInstance(object)) {
                 try {
-                    resources.addAll(destroyResourceTree(Context.class.cast(object).listBindings("")));
+                    resources.addAll(destroyResourceTree(
+                            IvmContext.class.isInstance(object) ? IvmContext.class.cast(object).mynode.getAtomicName() : "",
+                            Context.class.cast(object).listBindings("")));
                 } catch (final Exception ignored) {
                     // no-op
                 }
             } else {
-                resources.add(new DestroyingResource(binding.getName(), binding.getClassName(), object));
+                resources.add(new DestroyingResource((base == null || base.isEmpty() ? "" : (base + '/')) + binding.getName(), binding.getClassName(), object));
             }
         }
 

http://git-wip-us.apache.org/repos/asf/tomee/blob/3d554efb/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/LazyResourceTest.java
----------------------------------------------------------------------
diff --git a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/LazyResourceTest.java b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/LazyResourceTest.java
index 537585e..72c5d91 100644
--- a/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/LazyResourceTest.java
+++ b/container/openejb-core/src/test/java/org/apache/openejb/assembler/classic/LazyResourceTest.java
@@ -34,7 +34,9 @@ import static org.junit.Assert.assertTrue;
 @ContainerProperties({
         @ContainerProperties.Property(name = "r1", value = "new://Resource?class-name=org.apache.openejb.assembler.classic.LazyResourceTest$MyResource1"),
         @ContainerProperties.Property(name = "r2", value = "new://Resource?class-name=org.apache.openejb.assembler.classic.LazyResourceTest$MyResource2"),
-        @ContainerProperties.Property(name = "r2.Lazy", value = "true")
+        @ContainerProperties.Property(name = "r2.Lazy", value = "true"),
+        @ContainerProperties.Property(name = "sub/r3", value = "new://Resource?class-name=org.apache.openejb.assembler.classic.LazyResourceTest$MyResource3"),
+        @ContainerProperties.Property(name = "sub/r3.Lazy", value = "true")
 })
 public class LazyResourceTest {
     @Test
@@ -60,4 +62,6 @@ public class LazyResourceTest {
             count++;
         }
     }
+    public static class MyResource3 {
+    }
 }