The IdentityService wraps the IdentitySession with transaction/command semantics, your custom IdentitySession should run fine within the jBPM4 IdentityService, the implementation of IdentityService looks up the IdentitySession implementation and should find your class unless somewhere is a hardcoded reference to the original jBPM4 class, can you be more specific where you get the wrong IdentitySession?