Replace assert instanceof checks by if ( instanceof) throws IllegalArgumentException statements. Also: make sure that MSCLogger is used for null parameter validation and check for null parameters on TransactionControllerContext subclasses.
At ServiceBuilderImpl: fix mistaken MSCLogger.SERVICE.methodParameter(...) statements, the correct is throw MSCLogger.SERVICE.methodParameter(...)
Remove needless casting (Transaction) transaction.
Add test to ServiceContext other methods and validations. Run it with both ParentServiceContext and ServiceContextImpl
Implement TransactionControllerContext.validateTransaction in terms of TransactionController.own