Fix for issues #3931 and #3932

Created a new branch to clean up previous pull request. 
The implementation compares the hash codes and will not add the interceptor if another with the same class name and hashCode was added before. Actually it removes the one that was added before and then adds the new one.

If the two interceptors are instances from different classes then you want both interceptors to take effect even if they have the same hashCode.