In every Java object there are three public methods always available for which it makes sense to be called on the real object of a proxy created with JInterflex.proxy(): hashCode, toString and equals. Currently, if one of these methods is called on a proxy object and they are not explicitly written in its auxiliary interface, an exception is thrown with an error message similar to (for instance with equals):
"The method 'equals' is not accessible. Please make sure that this method exists and is public."
The proxy objects created with proxy() should allow calling these Object public methods without problems and the calls should return the same result as the real object the proxy object represents. The other public methods inherited from Object (wait, notify etc.) are currently allowed and they are called on the proxy object (not on the real one), as expected (this is the same behaviour as with Java Dynamic Proxies).
Solved. Now these methods are called without problems, they give the expected result (the same result as the real object would return) and are called efficiently (without reflection).