I'm noticing that I can't pull an attachment back off the exchange using AttachmentKey.create(Class), presumably because AttachmentKey (or rather SimpleAttachmentKey) doesn't override equals to compare based on the wrapped Class object, so it's using object identity, which obviously doesn't work.

Is this by design? Do I need to hold onto the key I used to add the attachment in the first place? This seems a bit counter-intuitive, as it means pushing keys around between handlers, when simply implementing equals on the key would avoid that. Am I supposed to provide my own key implementation (i.e basically rewrite SimpleAttachment key - I can't believe that this is the answer)?

Or am I just missing something obvious?