I've got a mysterious error...

I'm using Lingo and ActiveMQ for remote method invocation.

When receiving a RemoteInvocation object, Lingo uses reflection to invoke method on proxy object which has been created earlier. But the invocation throws NoSuchMethodException. I logged as much as I could and found out:

1) By introspecting the proxy object, it's confirmed that it contains the required method for invocation
2) The parameters retrieved from RemoteInvocation object (invocation) by getParameterTypes() and from the proxy object by introspection are similar in terms of class type
3) Interesting results
    log.debug("equal==? : " + (m.getParameterTypes()[0] == invocation.getParameterTypes()[0])); // return false
    log.debug("equal? : " + (m.getParameterTypes()[0].equals(invocation.getParameterTypes()[0])));// return false
    log.debug("equal class loader ==? : " + (m.getParameterTypes()[0].getClassLoader() ==  invocation.getParameterTypes()[0].getClassLoader())); // return false

- m: of type java.lang.reflect.Method : method in the proxy object
- invocation: of type org.springframework.remoting.support.RemoteInvocation : invocation object received from ActiveMQ

So, the issue here is: "Same class but not equal"
Is there anything in marshalling and demarshalling process of ActiveMQ that could lead to this problem?

Appreciate for any advice