This problem was discovered in this Cache forum thread:
Basically here is the problem:
In ejb3 under PassivationTreeCache.java (of which is a sublcass of TreeCache), there is an additional API to expose EvictionPolicy:
public EvictionPolicy getEvictionPolicy()
return (EvictionPolicy) eviction_policy_provider;
where in 1.2.4, the protected field, eviction_policy_provider, is declared as TreeCacheListener (but also implements EvictionPolicy), and in 1.3 it is declared as EvictionPolicy.
So here is the problem, in head, the code base has been compiled with 1.3 and later. So upgrading to 1.4 will have no problem.
In 4.0.4, however, since the cache release version is still 1.2.4 (and therefore compiled as such), when upgrading to 1.4, it will produce the field not found exception for the eviction_policyu_provider.
So for the released version of ejb3, nothing we can do about it, meaning we simply can't upgrade JBossCache version to 1.3 and beyond for sfsb clustering.
But for future release, there are two possiblities:
1. We will rollout a 4.0.4SP1 that has the JBC 1.4 release checked in.
2. Or we will rollout an independent ejb3 release like RC9-FD from 4.0 (or head).