[gatein-commits] gatein SVN: r7732 - components/wsrp/trunk/jcr-impl/src/main/java/org/gatein/wsrp/registration.

do-not-reply at jboss.org do-not-reply at jboss.org
Wed Oct 12 08:29:46 EDT 2011


Author: chris.laprun at jboss.com
Date: 2011-10-12 08:29:46 -0400 (Wed, 12 Oct 2011)
New Revision: 7732

Modified:
   components/wsrp/trunk/jcr-impl/src/main/java/org/gatein/wsrp/registration/JCRRegistrationPersistenceManager.java
Log:
- Properly close session in all cases.

Modified: components/wsrp/trunk/jcr-impl/src/main/java/org/gatein/wsrp/registration/JCRRegistrationPersistenceManager.java
===================================================================
--- components/wsrp/trunk/jcr-impl/src/main/java/org/gatein/wsrp/registration/JCRRegistrationPersistenceManager.java	2011-10-12 12:18:10 UTC (rev 7731)
+++ components/wsrp/trunk/jcr-impl/src/main/java/org/gatein/wsrp/registration/JCRRegistrationPersistenceManager.java	2011-10-12 12:29:46 UTC (rev 7732)
@@ -78,31 +78,36 @@
       this.persister = persister;
 
       ChromatticSession session = persister.getSession();
-      ConsumersAndGroupsMapping mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME);
-      if (mappings == null)
+      try
       {
-         mappings = session.insert(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME);
-      }
-      persister.save(); // needed right now as the session must still be open to iterate over nodes
+         ConsumersAndGroupsMapping mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME);
+         if (mappings == null)
+         {
+            mappings = session.insert(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME);
+         }
+         persister.save(); // needed right now as the session must still be open to iterate over nodes
 
-      for (ConsumerGroupMapping cgm : mappings.getConsumerGroups())
-      {
-         internalAddConsumerGroup(cgm.toConsumerGroup(this));
-      }
+         for (ConsumerGroupMapping cgm : mappings.getConsumerGroups())
+         {
+            internalAddConsumerGroup(cgm.toConsumerGroup(this));
+         }
 
-      for (ConsumerMapping cm : mappings.getConsumers())
-      {
-         ConsumerSPI consumer = cm.toConsumer(this);
-         internalAddConsumer(consumer);
+         for (ConsumerMapping cm : mappings.getConsumers())
+         {
+            ConsumerSPI consumer = cm.toConsumer(this);
+            internalAddConsumer(consumer);
 
-         // get the registrations and add them to local map.
-         for (Registration registration : consumer.getRegistrations())
-         {
-            internalAddRegistration((RegistrationSPI)registration);
+            // get the registrations and add them to local map.
+            for (Registration registration : consumer.getRegistrations())
+            {
+               internalAddRegistration((RegistrationSPI)registration);
+            }
          }
       }
-
-      persister.closeSession(false);
+      finally
+      {
+         persister.closeSession(false);
+      }
    }
 
    @Override
@@ -157,9 +162,9 @@
       ConsumerSPI consumer = super.internalCreateConsumer(consumerId, consumerName);
 
       ChromatticSession session = persister.getSession();
-      ConsumersAndGroupsMapping mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME);
       try
       {
+         ConsumersAndGroupsMapping mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME);
          ConsumerMapping cm = mappings.createConsumer(consumerId);
          mappings.getConsumers().add(cm);
          cm.initFrom(consumer);
@@ -245,9 +250,9 @@
       ConsumerGroupSPI group = super.internalCreateConsumerGroup(name);
 
       ChromatticSession session = persister.getSession();
-      ConsumersAndGroupsMapping mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME);
       try
       {
+         ConsumersAndGroupsMapping mappings = session.findByPath(ConsumersAndGroupsMapping.class, ConsumersAndGroupsMapping.NODE_NAME);
          ConsumerGroupMapping cgm = mappings.createConsumerGroup(name);
          mappings.getConsumerGroups().add(cgm);
          group.setPersistentKey(cgm.getPersistentKey());



More information about the gatein-commits mailing list