diff --git a/hibernate-core/src/main/java/org/hibernate/HibernateException.java b/hibernate-core/src/main/java/org/hibernate/HibernateException.java index 5d8895de7c10..7d3d1a8e10b7 100644 --- a/hibernate-core/src/main/java/org/hibernate/HibernateException.java +++ b/hibernate-core/src/main/java/org/hibernate/HibernateException.java @@ -6,17 +6,17 @@ */ package org.hibernate; +import javax.persistence.PersistenceException; + /** * The base exception type for Hibernate exceptions. *

* Note that all {@link java.sql.SQLException SQLExceptions} will be wrapped in some form of * {@link JDBCException}. * - * @see JDBCException - * * @author Gavin King */ -public class HibernateException extends RuntimeException { +public class HibernateException extends PersistenceException { /** * Constructs a HibernateException using the given exception message. * diff --git a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java index 6acefeb0688f..8320e48ab8e2 100644 --- a/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java +++ b/hibernate-core/src/main/java/org/hibernate/internal/SessionImpl.java @@ -1240,6 +1240,11 @@ private void fireRefresh(RefreshEvent event) { } } catch (RuntimeException e) { + if ( !getSessionFactory().getSessionFactoryOptions().isJpaBootstrap() ) { + if ( e instanceof HibernateException ) { + throw e; + } + } //including HibernateException throw convert( e ); } @@ -1258,6 +1263,12 @@ private void fireRefresh(Map refreshedAlready, RefreshEvent event) { delayedAfterCompletion(); } catch (RuntimeException e) { + if ( !getSessionFactory().getSessionFactoryOptions().isJpaBootstrap() ) { + if ( e instanceof HibernateException ) { + handlePersistenceException( (HibernateException) e ); + throw e; + } + } //including HibernateException throw convert( e ); } diff --git a/hibernate-core/src/test/java/org/hibernate/test/hql/CriteriaHQLAlignmentTest.java b/hibernate-core/src/test/java/org/hibernate/test/hql/CriteriaHQLAlignmentTest.java index 1053b121503d..de44da752492 100644 --- a/hibernate-core/src/test/java/org/hibernate/test/hql/CriteriaHQLAlignmentTest.java +++ b/hibernate-core/src/test/java/org/hibernate/test/hql/CriteriaHQLAlignmentTest.java @@ -325,21 +325,21 @@ public void testCountReturnValues() { } assertEquals( 1, count.longValue() ); } - catch (PersistenceException e) { - SQLGrammarException cause = assertTyping( SQLGrammarException.class, e.getCause() ); + catch ( SQLGrammarException ex ) { if ( ! getDialect().supportsTupleCounts() ) { // expected } else { - throw e; + throw ex; } } - catch ( SQLGrammarException ex ) { + catch (PersistenceException e) { + SQLGrammarException cause = assertTyping( SQLGrammarException.class, e.getCause() ); if ( ! getDialect().supportsTupleCounts() ) { // expected } else { - throw ex; + throw e; } } finally { diff --git a/hibernate-core/src/test/java/org/hibernate/test/tm/TransactionTimeoutTest.java b/hibernate-core/src/test/java/org/hibernate/test/tm/TransactionTimeoutTest.java index 4d134c790113..102535559479 100644 --- a/hibernate-core/src/test/java/org/hibernate/test/tm/TransactionTimeoutTest.java +++ b/hibernate-core/src/test/java/org/hibernate/test/tm/TransactionTimeoutTest.java @@ -70,12 +70,12 @@ public void testTransactionTimeoutFailure() throws InterruptedException { session.persist( new Person( "Lukasz", "Antoniak" ) ); transaction.commit(); } - catch (PersistenceException e) { - assertTyping( TransactionException.class, e.getCause() ); - } catch (TransactionException e) { // expected } + catch (PersistenceException e) { + assertTyping( TransactionException.class, e.getCause() ); + } finally { session.close(); } diff --git a/hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/jee/OrmVersionTest.java b/hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/jee/OrmVersionTest.java index 8b4f51409bb3..7ea59491b289 100644 --- a/hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/jee/OrmVersionTest.java +++ b/hibernate-entitymanager/src/test/java/org/hibernate/jpa/test/jee/OrmVersionTest.java @@ -60,15 +60,12 @@ public void testInvalidOrm1() { hp.createContainerEntityManagerFactory( pui, Collections.EMPTY_MAP ); Assert.fail( "expecting 'invalid content' error" ); } - catch ( InvalidMappingException expected ) { + catch ( InvalidMappingException | AnnotationException expected ) { // expected condition } catch ( PersistenceException expected ) { // expected condition } - catch (AnnotationException expected) { - // expected condition - } } public static class PersistenceUnitInfoImpl implements PersistenceUnitInfo {