You are viewing a plain text version of this content. The canonical link for it is here.
Posted to server-dev@james.apache.org by er...@apache.org on 2010/09/17 14:59:24 UTC

svn commit: r998106 - in /james/server/trunk: core-function/src/main/java/org/apache/james/domain/JPADomainList.java user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java

Author: eric
Date: Fri Sep 17 12:59:24 2010
New Revision: 998106

URL: http://svn.apache.org/viewvc?rev=998106&view=rev
Log:
Always start/commit(/rollback) transactions.

Modified:
    james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java
    james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java

Modified: james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java
URL: http://svn.apache.org/viewvc/james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java?rev=998106&r1=998105&r2=998106&view=diff
==============================================================================
--- james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java (original)
+++ james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java Fri Sep 17 12:59:24 2010
@@ -44,6 +44,16 @@ public class JPADomainList extends Abstr
      */
     private EntityManagerFactory entityManagerFactory;
 
+    /**
+     * Set the entity manager to use.
+     * 
+     * @param entityManagerFactory
+     */
+    @PersistenceUnit
+    public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) {
+        this.entityManagerFactory = entityManagerFactory;
+    }
+
     /*
      * (non-Javadoc)
      * @see org.apache.james.lifecycle.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
@@ -61,11 +71,17 @@ public class JPADomainList extends Abstr
     protected List<String> getDomainListInternal() {
         List<String> domains = new ArrayList<String>();
         EntityManager entityManager = entityManagerFactory.createEntityManager();
+        final EntityTransaction transaction = entityManager.getTransaction();
         try {
+            transaction.begin();
             domains = entityManager.createNamedQuery("listDomainNames").getResultList();
         } catch (PersistenceException e) {
             getLogger().debug("Failed to list domains", e);
+            if (transaction.isActive()) {
+                transaction.rollback();
+            }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         if (domains.size() == 0) {
@@ -80,12 +96,18 @@ public class JPADomainList extends Abstr
      */
     public boolean containsDomain(String domain) {
         EntityManager entityManager = entityManagerFactory.createEntityManager();
+        final EntityTransaction transaction = entityManager.getTransaction();
         try {
+            transaction.begin();
             JPADomain jpaDomain = (JPADomain) entityManager.createNamedQuery("findDomainByName").setParameter("name", domain).getSingleResult();
             return (jpaDomain != null) ? true : false;
         } catch (PersistenceException e) {
             getLogger().debug("Failed to find domain", e);
+            if (transaction.isActive()) {
+                transaction.rollback();
+            }
         } finally {
+            transaction.commit();
             entityManager.close();
         }    
         return false;
@@ -101,7 +123,6 @@ public class JPADomainList extends Abstr
             transaction.begin();
             JPADomain jpaDomain = new JPADomain(domain);
             entityManager.persist(jpaDomain);
-            transaction.commit();
             return true;
         } catch (PersistenceException e) {
             getLogger().debug("Failed to save domain", e);
@@ -109,6 +130,7 @@ public class JPADomainList extends Abstr
                 transaction.rollback();
             }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         return false;
@@ -123,7 +145,6 @@ public class JPADomainList extends Abstr
         try {
             transaction.begin();
             entityManager.createNamedQuery("deleteDomainByName").setParameter("name", domain).executeUpdate();
-            transaction.commit();
             return true;
         } catch (PersistenceException e) {
             getLogger().debug("Failed to remove domain", e);
@@ -131,19 +152,10 @@ public class JPADomainList extends Abstr
                 transaction.rollback();
             }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         return false;
     }
 
-    /**
-     * Set the entity manager to use.
-     * 
-     * @param entityManagerFactory
-     */
-    @PersistenceUnit
-    public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) {
-        this.entityManagerFactory = entityManagerFactory;
-    }
-
 }

Modified: james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java
URL: http://svn.apache.org/viewvc/james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java?rev=998106&r1=998105&r2=998106&view=diff
==============================================================================
--- james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java (original)
+++ james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java Fri Sep 17 12:59:24 2010
@@ -83,7 +83,6 @@ public class JPAVirtualUserTable extends
             List<JPAVirtualUser> virtualUsers = entityManager.createNamedQuery("selectMappings")
                 .setParameter("user", user)
                 .setParameter("domain", domain).getResultList();
-            transaction.commit();
             if(virtualUsers.size() > 0) {
                 return virtualUsers.get(0).getTargetAddress();
             }
@@ -93,6 +92,7 @@ public class JPAVirtualUserTable extends
                 transaction.rollback();
             }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         return null;
@@ -103,7 +103,9 @@ public class JPAVirtualUserTable extends
      */
     protected Collection<String> getUserDomainMappingsInternal(String user, String domain) {
         EntityManager entityManager = entityManagerFactory.createEntityManager();
+        final EntityTransaction transaction = entityManager.getTransaction();
         try {
+            transaction.begin();
             List<JPAVirtualUser> virtualUsers = entityManager.createNamedQuery("selectUserDomainMapping")
                 .setParameter("user", user)
                 .setParameter("domain", domain).getResultList();
@@ -112,7 +114,11 @@ public class JPAVirtualUserTable extends
             }
         } catch (PersistenceException e) {
             getLogger().debug("Failed to get user domain mappings", e);
+            if (transaction.isActive()) {
+                transaction.rollback();
+            }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         return null;
@@ -123,8 +129,10 @@ public class JPAVirtualUserTable extends
      */
     protected Map<String,Collection<String>> getAllMappingsInternal() {
         EntityManager entityManager = entityManagerFactory.createEntityManager();
+        final EntityTransaction transaction = entityManager.getTransaction();
         Map<String,Collection<String>> mapping = new HashMap<String,Collection<String>>();
         try {
+            transaction.begin();
             List<JPAVirtualUser> virtualUsers = entityManager.createNamedQuery("selectAllMappings").getResultList();
             for (JPAVirtualUser virtualUser: virtualUsers) {
                 mapping.put(virtualUser.getUser()+ "@" + virtualUser.getDomain(), VirtualUserTableUtil.mappingToCollection(virtualUser.getTargetAddress()));
@@ -132,7 +140,11 @@ public class JPAVirtualUserTable extends
             if (mapping.size() > 0) return mapping;
         } catch (PersistenceException e) {
             getLogger().debug("Failed to get all mappings", e);
+            if (transaction.isActive()) {
+                transaction.rollback();
+            }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         return null;
@@ -170,7 +182,6 @@ public class JPAVirtualUserTable extends
                 .setParameter("targetAddress", mapping)
                 .setParameter("user", user)
                 .setParameter("domain", domain).executeUpdate();
-            transaction.commit();
             if (updated > 0) {
                 return true;
             }
@@ -180,6 +191,7 @@ public class JPAVirtualUserTable extends
                 transaction.rollback();
             }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         return false;
@@ -203,7 +215,6 @@ public class JPAVirtualUserTable extends
                 .setParameter("user", user)
                 .setParameter("domain", domain)
                 .setParameter("targetAddress", mapping).executeUpdate();
-            transaction.commit();
             if (deleted > 0) {
                 return true;
             }
@@ -213,6 +224,7 @@ public class JPAVirtualUserTable extends
                 transaction.rollback();
             }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         return false;
@@ -233,7 +245,6 @@ public class JPAVirtualUserTable extends
             transaction.begin();
             JPAVirtualUser jpaVirtualUser = new JPAVirtualUser(user, domain, mapping);
             entityManager.persist(jpaVirtualUser);
-            transaction.commit();
             return true;
         } catch (PersistenceException e) {
             getLogger().debug("Failed to save virtual user", e);
@@ -241,6 +252,7 @@ public class JPAVirtualUserTable extends
                 transaction.rollback();
             }
         } finally {
+            transaction.commit();
             entityManager.close();
         }
         return false;



---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: svn commit: r998106 - in /james/server/trunk: core-function/src/main/java/org/apache/james/domain/JPADomainList.java user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java

Posted by Norman <no...@apache.org>.
Hi Eric,

calling commit() in the finally block a bad idea. It would get executed 
even on a Exception..

Bye
Norman

Am 17.09.2010 14:59, schrieb eric@apache.org:
> Author: eric
> Date: Fri Sep 17 12:59:24 2010
> New Revision: 998106
>
> URL: http://svn.apache.org/viewvc?rev=998106&view=rev
> Log:
> Always start/commit(/rollback) transactions.
>
> Modified:
>      james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java
>      james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java
>
> Modified: james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java
> URL: http://svn.apache.org/viewvc/james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java?rev=998106&r1=998105&r2=998106&view=diff
> ==============================================================================
> --- james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java (original)
> +++ james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java Fri Sep 17 12:59:24 2010
> @@ -44,6 +44,16 @@ public class JPADomainList extends Abstr
>        */
>       private EntityManagerFactory entityManagerFactory;
>
> +    /**
> +     * Set the entity manager to use.
> +     *
> +     * @param entityManagerFactory
> +     */
> +    @PersistenceUnit
> +    public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) {
> +        this.entityManagerFactory = entityManagerFactory;
> +    }
> +
>       /*
>        * (non-Javadoc)
>        * @see org.apache.james.lifecycle.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
> @@ -61,11 +71,17 @@ public class JPADomainList extends Abstr
>       protected List<String>  getDomainListInternal() {
>           List<String>  domains = new ArrayList<String>();
>           EntityManager entityManager = entityManagerFactory.createEntityManager();
> +        final EntityTransaction transaction = entityManager.getTransaction();
>           try {
> +            transaction.begin();
>               domains = entityManager.createNamedQuery("listDomainNames").getResultList();
>           } catch (PersistenceException e) {
>               getLogger().debug("Failed to list domains", e);
> +            if (transaction.isActive()) {
> +                transaction.rollback();
> +            }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           if (domains.size() == 0) {
> @@ -80,12 +96,18 @@ public class JPADomainList extends Abstr
>        */
>       public boolean containsDomain(String domain) {
>           EntityManager entityManager = entityManagerFactory.createEntityManager();
> +        final EntityTransaction transaction = entityManager.getTransaction();
>           try {
> +            transaction.begin();
>               JPADomain jpaDomain = (JPADomain) entityManager.createNamedQuery("findDomainByName").setParameter("name", domain).getSingleResult();
>               return (jpaDomain != null) ? true : false;
>           } catch (PersistenceException e) {
>               getLogger().debug("Failed to find domain", e);
> +            if (transaction.isActive()) {
> +                transaction.rollback();
> +            }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return false;
> @@ -101,7 +123,6 @@ public class JPADomainList extends Abstr
>               transaction.begin();
>               JPADomain jpaDomain = new JPADomain(domain);
>               entityManager.persist(jpaDomain);
> -            transaction.commit();
>               return true;
>           } catch (PersistenceException e) {
>               getLogger().debug("Failed to save domain", e);
> @@ -109,6 +130,7 @@ public class JPADomainList extends Abstr
>                   transaction.rollback();
>               }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return false;
> @@ -123,7 +145,6 @@ public class JPADomainList extends Abstr
>           try {
>               transaction.begin();
>               entityManager.createNamedQuery("deleteDomainByName").setParameter("name", domain).executeUpdate();
> -            transaction.commit();
>               return true;
>           } catch (PersistenceException e) {
>               getLogger().debug("Failed to remove domain", e);
> @@ -131,19 +152,10 @@ public class JPADomainList extends Abstr
>                   transaction.rollback();
>               }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return false;
>       }
>
> -    /**
> -     * Set the entity manager to use.
> -     *
> -     * @param entityManagerFactory
> -     */
> -    @PersistenceUnit
> -    public void setEntityManagerFactory(EntityManagerFactory entityManagerFactory) {
> -        this.entityManagerFactory = entityManagerFactory;
> -    }
> -
>   }
>
> Modified: james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java
> URL: http://svn.apache.org/viewvc/james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java?rev=998106&r1=998105&r2=998106&view=diff
> ==============================================================================
> --- james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java (original)
> +++ james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java Fri Sep 17 12:59:24 2010
> @@ -83,7 +83,6 @@ public class JPAVirtualUserTable extends
>               List<JPAVirtualUser>  virtualUsers = entityManager.createNamedQuery("selectMappings")
>                   .setParameter("user", user)
>                   .setParameter("domain", domain).getResultList();
> -            transaction.commit();
>               if(virtualUsers.size()>  0) {
>                   return virtualUsers.get(0).getTargetAddress();
>               }
> @@ -93,6 +92,7 @@ public class JPAVirtualUserTable extends
>                   transaction.rollback();
>               }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return null;
> @@ -103,7 +103,9 @@ public class JPAVirtualUserTable extends
>        */
>       protected Collection<String>  getUserDomainMappingsInternal(String user, String domain) {
>           EntityManager entityManager = entityManagerFactory.createEntityManager();
> +        final EntityTransaction transaction = entityManager.getTransaction();
>           try {
> +            transaction.begin();
>               List<JPAVirtualUser>  virtualUsers = entityManager.createNamedQuery("selectUserDomainMapping")
>                   .setParameter("user", user)
>                   .setParameter("domain", domain).getResultList();
> @@ -112,7 +114,11 @@ public class JPAVirtualUserTable extends
>               }
>           } catch (PersistenceException e) {
>               getLogger().debug("Failed to get user domain mappings", e);
> +            if (transaction.isActive()) {
> +                transaction.rollback();
> +            }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return null;
> @@ -123,8 +129,10 @@ public class JPAVirtualUserTable extends
>        */
>       protected Map<String,Collection<String>>  getAllMappingsInternal() {
>           EntityManager entityManager = entityManagerFactory.createEntityManager();
> +        final EntityTransaction transaction = entityManager.getTransaction();
>           Map<String,Collection<String>>  mapping = new HashMap<String,Collection<String>>();
>           try {
> +            transaction.begin();
>               List<JPAVirtualUser>  virtualUsers = entityManager.createNamedQuery("selectAllMappings").getResultList();
>               for (JPAVirtualUser virtualUser: virtualUsers) {
>                   mapping.put(virtualUser.getUser()+ "@" + virtualUser.getDomain(), VirtualUserTableUtil.mappingToCollection(virtualUser.getTargetAddress()));
> @@ -132,7 +140,11 @@ public class JPAVirtualUserTable extends
>               if (mapping.size()>  0) return mapping;
>           } catch (PersistenceException e) {
>               getLogger().debug("Failed to get all mappings", e);
> +            if (transaction.isActive()) {
> +                transaction.rollback();
> +            }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return null;
> @@ -170,7 +182,6 @@ public class JPAVirtualUserTable extends
>                   .setParameter("targetAddress", mapping)
>                   .setParameter("user", user)
>                   .setParameter("domain", domain).executeUpdate();
> -            transaction.commit();
>               if (updated>  0) {
>                   return true;
>               }
> @@ -180,6 +191,7 @@ public class JPAVirtualUserTable extends
>                   transaction.rollback();
>               }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return false;
> @@ -203,7 +215,6 @@ public class JPAVirtualUserTable extends
>                   .setParameter("user", user)
>                   .setParameter("domain", domain)
>                   .setParameter("targetAddress", mapping).executeUpdate();
> -            transaction.commit();
>               if (deleted>  0) {
>                   return true;
>               }
> @@ -213,6 +224,7 @@ public class JPAVirtualUserTable extends
>                   transaction.rollback();
>               }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return false;
> @@ -233,7 +245,6 @@ public class JPAVirtualUserTable extends
>               transaction.begin();
>               JPAVirtualUser jpaVirtualUser = new JPAVirtualUser(user, domain, mapping);
>               entityManager.persist(jpaVirtualUser);
> -            transaction.commit();
>               return true;
>           } catch (PersistenceException e) {
>               getLogger().debug("Failed to save virtual user", e);
> @@ -241,6 +252,7 @@ public class JPAVirtualUserTable extends
>                   transaction.rollback();
>               }
>           } finally {
> +            transaction.commit();
>               entityManager.close();
>           }
>           return false;
>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>
>    


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org


Re: svn commit: r998106 - in /james/server/trunk: core-function/src/main/java/org/apache/james/domain/JPADomainList.java user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java

Posted by Eric Charles <er...@apache.org>.
  So true. Missing my bed...
Tks,
Eric

On 17/09/2010 15:11, Norman wrote:
> Hi Eric,
>
> calling commit() in the finally block a bad idea. It would get 
> executed even on a Exception..
>
> Bye
> Norman
>
> Am 17.09.2010 14:59, schrieb eric@apache.org:
>> Author: eric
>> Date: Fri Sep 17 12:59:24 2010
>> New Revision: 998106
>>
>> URL: http://svn.apache.org/viewvc?rev=998106&view=rev
>> Log:
>> Always start/commit(/rollback) transactions.
>>
>> Modified:
>>      
>> james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java
>>      
>> james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java
>>
>> Modified: 
>> james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java
>> URL: 
>> http://svn.apache.org/viewvc/james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java?rev=998106&r1=998105&r2=998106&view=diff
>> ============================================================================== 
>>
>> --- 
>> james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java 
>> (original)
>> +++ 
>> james/server/trunk/core-function/src/main/java/org/apache/james/domain/JPADomainList.java 
>> Fri Sep 17 12:59:24 2010
>> @@ -44,6 +44,16 @@ public class JPADomainList extends Abstr
>>        */
>>       private EntityManagerFactory entityManagerFactory;
>>
>> +    /**
>> +     * Set the entity manager to use.
>> +     *
>> +     * @param entityManagerFactory
>> +     */
>> +    @PersistenceUnit
>> +    public void setEntityManagerFactory(EntityManagerFactory 
>> entityManagerFactory) {
>> +        this.entityManagerFactory = entityManagerFactory;
>> +    }
>> +
>>       /*
>>        * (non-Javadoc)
>>        * @see 
>> org.apache.james.lifecycle.Configurable#configure(org.apache.commons.configuration.HierarchicalConfiguration)
>> @@ -61,11 +71,17 @@ public class JPADomainList extends Abstr
>>       protected List<String>  getDomainListInternal() {
>>           List<String>  domains = new ArrayList<String>();
>>           EntityManager entityManager = 
>> entityManagerFactory.createEntityManager();
>> +        final EntityTransaction transaction = 
>> entityManager.getTransaction();
>>           try {
>> +            transaction.begin();
>>               domains = 
>> entityManager.createNamedQuery("listDomainNames").getResultList();
>>           } catch (PersistenceException e) {
>>               getLogger().debug("Failed to list domains", e);
>> +            if (transaction.isActive()) {
>> +                transaction.rollback();
>> +            }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           if (domains.size() == 0) {
>> @@ -80,12 +96,18 @@ public class JPADomainList extends Abstr
>>        */
>>       public boolean containsDomain(String domain) {
>>           EntityManager entityManager = 
>> entityManagerFactory.createEntityManager();
>> +        final EntityTransaction transaction = 
>> entityManager.getTransaction();
>>           try {
>> +            transaction.begin();
>>               JPADomain jpaDomain = (JPADomain) 
>> entityManager.createNamedQuery("findDomainByName").setParameter("name", 
>> domain).getSingleResult();
>>               return (jpaDomain != null) ? true : false;
>>           } catch (PersistenceException e) {
>>               getLogger().debug("Failed to find domain", e);
>> +            if (transaction.isActive()) {
>> +                transaction.rollback();
>> +            }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return false;
>> @@ -101,7 +123,6 @@ public class JPADomainList extends Abstr
>>               transaction.begin();
>>               JPADomain jpaDomain = new JPADomain(domain);
>>               entityManager.persist(jpaDomain);
>> -            transaction.commit();
>>               return true;
>>           } catch (PersistenceException e) {
>>               getLogger().debug("Failed to save domain", e);
>> @@ -109,6 +130,7 @@ public class JPADomainList extends Abstr
>>                   transaction.rollback();
>>               }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return false;
>> @@ -123,7 +145,6 @@ public class JPADomainList extends Abstr
>>           try {
>>               transaction.begin();
>>               
>> entityManager.createNamedQuery("deleteDomainByName").setParameter("name", 
>> domain).executeUpdate();
>> -            transaction.commit();
>>               return true;
>>           } catch (PersistenceException e) {
>>               getLogger().debug("Failed to remove domain", e);
>> @@ -131,19 +152,10 @@ public class JPADomainList extends Abstr
>>                   transaction.rollback();
>>               }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return false;
>>       }
>>
>> -    /**
>> -     * Set the entity manager to use.
>> -     *
>> -     * @param entityManagerFactory
>> -     */
>> -    @PersistenceUnit
>> -    public void setEntityManagerFactory(EntityManagerFactory 
>> entityManagerFactory) {
>> -        this.entityManagerFactory = entityManagerFactory;
>> -    }
>> -
>>   }
>>
>> Modified: 
>> james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java
>> URL: 
>> http://svn.apache.org/viewvc/james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java?rev=998106&r1=998105&r2=998106&view=diff
>> ============================================================================== 
>>
>> --- 
>> james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java 
>> (original)
>> +++ 
>> james/server/trunk/user-function/src/main/java/org/apache/james/vut/JPAVirtualUserTable.java 
>> Fri Sep 17 12:59:24 2010
>> @@ -83,7 +83,6 @@ public class JPAVirtualUserTable extends
>>               List<JPAVirtualUser>  virtualUsers = 
>> entityManager.createNamedQuery("selectMappings")
>>                   .setParameter("user", user)
>>                   .setParameter("domain", domain).getResultList();
>> -            transaction.commit();
>>               if(virtualUsers.size()>  0) {
>>                   return virtualUsers.get(0).getTargetAddress();
>>               }
>> @@ -93,6 +92,7 @@ public class JPAVirtualUserTable extends
>>                   transaction.rollback();
>>               }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return null;
>> @@ -103,7 +103,9 @@ public class JPAVirtualUserTable extends
>>        */
>>       protected Collection<String>  
>> getUserDomainMappingsInternal(String user, String domain) {
>>           EntityManager entityManager = 
>> entityManagerFactory.createEntityManager();
>> +        final EntityTransaction transaction = 
>> entityManager.getTransaction();
>>           try {
>> +            transaction.begin();
>>               List<JPAVirtualUser>  virtualUsers = 
>> entityManager.createNamedQuery("selectUserDomainMapping")
>>                   .setParameter("user", user)
>>                   .setParameter("domain", domain).getResultList();
>> @@ -112,7 +114,11 @@ public class JPAVirtualUserTable extends
>>               }
>>           } catch (PersistenceException e) {
>>               getLogger().debug("Failed to get user domain mappings", 
>> e);
>> +            if (transaction.isActive()) {
>> +                transaction.rollback();
>> +            }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return null;
>> @@ -123,8 +129,10 @@ public class JPAVirtualUserTable extends
>>        */
>>       protected Map<String,Collection<String>>  
>> getAllMappingsInternal() {
>>           EntityManager entityManager = 
>> entityManagerFactory.createEntityManager();
>> +        final EntityTransaction transaction = 
>> entityManager.getTransaction();
>>           Map<String,Collection<String>>  mapping = new 
>> HashMap<String,Collection<String>>();
>>           try {
>> +            transaction.begin();
>>               List<JPAVirtualUser>  virtualUsers = 
>> entityManager.createNamedQuery("selectAllMappings").getResultList();
>>               for (JPAVirtualUser virtualUser: virtualUsers) {
>>                   mapping.put(virtualUser.getUser()+ "@" + 
>> virtualUser.getDomain(), 
>> VirtualUserTableUtil.mappingToCollection(virtualUser.getTargetAddress()));
>> @@ -132,7 +140,11 @@ public class JPAVirtualUserTable extends
>>               if (mapping.size()>  0) return mapping;
>>           } catch (PersistenceException e) {
>>               getLogger().debug("Failed to get all mappings", e);
>> +            if (transaction.isActive()) {
>> +                transaction.rollback();
>> +            }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return null;
>> @@ -170,7 +182,6 @@ public class JPAVirtualUserTable extends
>>                   .setParameter("targetAddress", mapping)
>>                   .setParameter("user", user)
>>                   .setParameter("domain", domain).executeUpdate();
>> -            transaction.commit();
>>               if (updated>  0) {
>>                   return true;
>>               }
>> @@ -180,6 +191,7 @@ public class JPAVirtualUserTable extends
>>                   transaction.rollback();
>>               }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return false;
>> @@ -203,7 +215,6 @@ public class JPAVirtualUserTable extends
>>                   .setParameter("user", user)
>>                   .setParameter("domain", domain)
>>                   .setParameter("targetAddress", 
>> mapping).executeUpdate();
>> -            transaction.commit();
>>               if (deleted>  0) {
>>                   return true;
>>               }
>> @@ -213,6 +224,7 @@ public class JPAVirtualUserTable extends
>>                   transaction.rollback();
>>               }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return false;
>> @@ -233,7 +245,6 @@ public class JPAVirtualUserTable extends
>>               transaction.begin();
>>               JPAVirtualUser jpaVirtualUser = new 
>> JPAVirtualUser(user, domain, mapping);
>>               entityManager.persist(jpaVirtualUser);
>> -            transaction.commit();
>>               return true;
>>           } catch (PersistenceException e) {
>>               getLogger().debug("Failed to save virtual user", e);
>> @@ -241,6 +252,7 @@ public class JPAVirtualUserTable extends
>>                   transaction.rollback();
>>               }
>>           } finally {
>> +            transaction.commit();
>>               entityManager.close();
>>           }
>>           return false;
>>
>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
>> For additional commands, e-mail: server-dev-help@james.apache.org
>>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
> For additional commands, e-mail: server-dev-help@james.apache.org
>


---------------------------------------------------------------------
To unsubscribe, e-mail: server-dev-unsubscribe@james.apache.org
For additional commands, e-mail: server-dev-help@james.apache.org