You found a bug. This was caused by the TransactionManager calling the registered SynchronizationListeners to be called in indeterministic order. If LockInterceptor happened to be called before CacheStoreInterceptor, the TX was removed, otherwise everything was okay.
I created a JIRA bug report: http://jira.jboss.com/jira/browse/JBCACHE-111.
I also fixed this (in CVS head). Will be part of 1.2.1.
Did an update of cvs head and rebuilt it and the error is gone. :)
I can't believe the response time from you guys. It's just unreal.