Due to fashion that objects are stored in modification cache, the returned object must be checked for type explicitly.
Example:
DumpCacheManager<IpFibDetailsReplyDump, Void> ipv4DumpManager
DumpCacheManager<Ip6FibDetailsReplyDump, Void> ipv6DumpManager
if both managers are invoked after each other with same cache and same key,
second call resuts in returning cached instance from first call(that has wrong type for second manager) , so it ends in ClassCastException