Description
When setting up operations for a GBean, the GBeanMBeanOperation are put into a set. This has 2 problems if the GBean implements one of the operations from AbstractManagedObject:
1. Since GBeanMBeanOperation doesn't reimplement equals or hashCode, both operations get in the operationSet. It is entirely random which one gets installed as the real operation.
2. Even if GBeanMBeanOperation is modified to implement equals and hashCode based on method signature, set.add doesn't replace equal elements. Therefore the method from the GBean overrides the method from AbstractManagedObject.
I've fixed this by using a operationMap from signature to GBeanMBeanOperation, similar to the attributeMap. I'd appreciate a review.