(some) calls to preferences.store() trigger the following warning in catalina.out:
[org.apache.ojb.broker.core.PersistenceBrokerImpl] WARN: No running tx found, please only store in context of an PB-transaction, to avoid side-effects - e.g. when rollback of complex objects
It looks like we should have a transaction surrounding the preferences.store() call, or something alike. Not sure about it, as I'm no OJB expert.