Hibernate doesn't print the stacktrace itself, but a call to the LOG api does ;-)
Here is the guilty code fragment (StaleObjectStateException constructor):
Code:
public StaleObjectStateException(Class persistentClass, Serializable identifier) {
super("Row was updated or deleted by another transaction (or unsaved-value mapping was incorrect)");
this.persistentClass = persistentClass;
this.identifier = identifier;
LogFactory.getLog(StaleObjectStateException.class).error("An operation failed due to stale data", this);
}
BTW: I don't think it is good practice to call the LogFactory like this inside the Exception constructor itself...