List of usage examples for javax.persistence QueryTimeoutException getCause
public synchronized Throwable getCause()
From source file:de.micromata.genome.jpa.EmgrFactory.java
/** * Convert exception.//from ww w. j ava 2 s .c o m * * @param ex the ex * @return the runtime exception */ public static RuntimeException convertException(RuntimeException ex) { if (ex instanceof QueryTimeoutException) { // this is a oracle/hibernate bug workouround. // hibernate think this is is a query timeout, but should a DataException if (ex.getCause() instanceof org.hibernate.QueryTimeoutException) { org.hibernate.QueryTimeoutException qto = (org.hibernate.QueryTimeoutException) ex.getCause(); if (qto.getCause() instanceof SQLException) { SQLException sqlex = (SQLException) qto.getCause(); // ORA-12899 if (sqlex.getErrorCode() == 12899) { return new DataPersistenceException(ex.getMessage(), qto.getSQL(), sqlex.getSQLState(), ex); } } } } if (ex instanceof PersistenceException) { Throwable cause = ex.getCause(); if (cause instanceof ConstraintViolationException) { ConstraintViolationException cve = (ConstraintViolationException) cause; cve.getMessage(); String sql = cve.getSQL(); return new ConstraintPersistenceException(cve.getMessage(), sql, cve.getSQLState(), cve.getConstraintName(), ex); } else if (cause instanceof DataException) { DataException dex = (DataException) cause; return new DataPersistenceException(ex.getMessage(), dex.getSQL(), dex.getSQLState(), ex); } else if (cause instanceof PropertyValueException) { if (StringUtils.startsWith(cause.getMessage(), "not-null ") == true) { return new NullableConstraintPersistenceException(ex.getMessage(), ex); } } } return ex; }