Drop JpaSystemException(PersistenceException) constructor to avoid ambiguity in HibernateJpaVendorAdapter

Hibernate 5.2's HibernateException extends PersistenceException, leading to a different constructor compiled into the bytecode, breaking compatibility with Hibernate 5.0 at runtime.

Issue: SPR-13827
This commit is contained in:
Juergen Hoeller
2016-07-26 01:23:39 +02:00
parent e4def2f55d
commit 195467083c
2 changed files with 2 additions and 11 deletions

View File

@@ -16,7 +16,6 @@
package org.springframework.orm.jpa;
import java.lang.reflect.Method;
import java.util.Map;
import javax.persistence.EntityExistsException;
import javax.persistence.EntityManager;
@@ -52,9 +51,7 @@ import org.springframework.jdbc.datasource.DataSourceUtils;
import org.springframework.transaction.support.ResourceHolderSynchronization;
import org.springframework.transaction.support.TransactionSynchronizationManager;
import org.springframework.util.Assert;
import org.springframework.util.ClassUtils;
import org.springframework.util.CollectionUtils;
import org.springframework.util.ReflectionUtils;
import org.springframework.util.StringUtils;
/**
@@ -395,7 +392,7 @@ public abstract class EntityManagerFactoryUtils {
// If we have another kind of PersistenceException, throw it.
if (ex instanceof PersistenceException) {
return new JpaSystemException((PersistenceException) ex);
return new JpaSystemException(ex);
}
// If we get here, we have an exception that resulted from user code,

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2016 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,8 +16,6 @@
package org.springframework.orm.jpa;
import javax.persistence.PersistenceException;
import org.springframework.dao.UncategorizedDataAccessException;
/**
@@ -32,10 +30,6 @@ import org.springframework.dao.UncategorizedDataAccessException;
@SuppressWarnings("serial")
public class JpaSystemException extends UncategorizedDataAccessException {
public JpaSystemException(PersistenceException ex) {
super(ex.getMessage(), ex);
}
public JpaSystemException(RuntimeException ex) {
super(ex.getMessage(), ex);
}