X-Git-Url: http://wamblee.org/gitweb/?a=blobdiff_plain;f=test%2Fenterprise%2Fsrc%2Fmain%2Fjava%2Forg%2Fwamblee%2Fsupport%2Fpersistence%2FJpaBuilder.java;h=d3b7e179f9e0d56ffe781c7c482e1d8f0470365b;hb=74a6cd5b71b4f668ddac54c3237511ee11e8d84e;hp=4e824093b14d61c816f9c4a1d8daa8b964b45a65;hpb=17775e14ecfb286e59f67117e5cee7e21e95ab1f;p=utils diff --git a/test/enterprise/src/main/java/org/wamblee/support/persistence/JpaBuilder.java b/test/enterprise/src/main/java/org/wamblee/support/persistence/JpaBuilder.java index 4e824093..d3b7e179 100644 --- a/test/enterprise/src/main/java/org/wamblee/support/persistence/JpaBuilder.java +++ b/test/enterprise/src/main/java/org/wamblee/support/persistence/JpaBuilder.java @@ -12,7 +12,7 @@ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */ + */ package org.wamblee.support.persistence; import java.util.Map; @@ -26,6 +26,7 @@ import javax.persistence.EntityManager; import javax.persistence.EntityManagerFactory; import javax.persistence.EntityTransaction; import javax.persistence.Persistence; +import javax.persistence.PersistenceException; import javax.sql.DataSource; import org.wamblee.support.jndi.StubInitialContextFactory; @@ -52,13 +53,13 @@ public class JpaBuilder { /** * Executes the unit of work. A transaction has been started. * - * @param em + * @param aEm * Entity manager. * @return Result of the execute method. If you don't want to return * anything use Void for the return type and return * null from the implementation. */ - T execute(EntityManager em); + T execute(EntityManager aEm) throws Exception; } private PersistenceUnitDescription persistenceUnit; @@ -93,12 +94,17 @@ public class JpaBuilder { throw new RuntimeException("JNDI problem", e); } factory = createFactory(); - execute(new JpaUnitOfWork() { - public Void execute(EntityManager em) { - // Empty, just to trigger database schema creation. - return null; - } - }); + try { + execute(new JpaUnitOfWork() { + public Void execute(EntityManager aEm) { + // Empty, just to trigger database schema creation. + return null; + } + }); + } catch (PersistenceException e) { + factory.close(); + throw e; + } } /**