[
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3543?page=c...
]
Krasimir Chobantonov commented on HHH-3543:
-------------------------------------------
I have the same problem but with different hibernate listener (Hibernate Audit)
Workaround of this problem if using slf4j + log4j is the following ( the code needs to be
executed when the hibernate & log4j are initialized)
private static final org.apache.log4j.Logger JDBC_TRANSACTION_LOG =
org.apache.log4j.Logger.getLogger(JDBCTransaction.class);
// method that will call interceptLog()
private void interceptLog() {
if (Level.OFF.equals(JDBC_TRANSACTION_LOG.getLevel())) {
JDBC_TRANSACTION_LOG.setLevel(Level.ERROR);
}
JDBC_TRANSACTION_LOG.addAppender(new AppenderSkeleton() {
@Override
public boolean requiresLayout() {
return false;
}
@Override
public void close() {
}
@Override
protected void append(LoggingEvent event) {
if (event.getThrowableInformation().getThrowable() instanceof
ExceptionToPass) {
throw (ExceptionToPass)
event.getThrowableInformation().getThrowable();
}
}
});
}
Where ExceptionToPass is a runtime exception that is thrown by your listener.
Krasimir
method
org.hibernate.transaction.JDBCTransaction.notifyLocalSynchsBeforeTransactionCompletion
"swallows" all exceptions occured inside it
-----------------------------------------------------------------------------------------------------------------------------------------
Key: HHH-3543
URL:
http://opensource.atlassian.com/projects/hibernate/browse/HHH-3543
Project: Hibernate Core
Issue Type: Bug
Components: core
Affects Versions: 3.3.1
Environment: MS Windows XP SP2, JDK 1.6.8, Eclipse 3.2.0
Reporter: Roman
Original Estimate: 4 days
Remaining Estimate: 4 days
When using JBoss Envers any exceptions occured during saving data into version tables are
swallowed by code block in class org.hibernate.transaction.JDBCTransaction (line 273):
try {
sync.beforeCompletion();
}
catch (Throwable t) {
log.error("exception calling user Synchronization", t);
}
Thereby, any exceptions occured in sync.beforeCompletion() will only be shown in log, but
will not have any effect on application functionality
So I have such behaviour:
1. Entity changes are saved in database by hibernate
2. Version tables for entities are empty, because, for example, of invalid column names
3. Transaction commits successfully.
--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
http://opensource.atlassian.com/projects/hibernate/secure/Administrators....
-
For more information on JIRA, see:
http://www.atlassian.com/software/jira