Moving our mail discussion to the forum
Please see my comment here: https://jira.jboss.org/jira/browse/JBKERNEL-36
Which retrieval stores the ComponentMetaData by MethodSignatures? I tried to find them but could not. And shouldn't those retrievals be storing the CMD by Signature (instead of MethodSignature or DeclaredMethodSignature), since the contract with the retrieval is established through a Signature:
MetaDataRetrieval getComponentMetaDataRetrieval(Signature signature);
I don't know what puts them there, but if you put a breakpoint in AOPConstructorJoinpoint and then run for example aop-mc-int/MetaDataTestCase you will see that the MemoryMetaDataLoader internally stores all the component metadatas keyed by MethodSignature - these are for methods, so it is probably keyed by Signature like you say since constructors/fields would probably use their appropriate Signature impl.
The problem with your suggested fix was that DeclaredMethodSignature and MethodSignature did not match on equals() and hashCode(), something I fixed in my commit for https://jira.jboss.org/jira/browse/JBMDR-57. So in the MemoryMetaDataLoader if you had a ComponentMetaDataRetrieval with an entry for MethodSignature(getIntProperty()), when you try to look up the ComponentMetaDataRetrieval pasing in a DeclaredMethodSignature(PropertyBean.getIntProperty()) the ComponentMetaDataRetrieval would not be found.