6 Replies Latest reply on Apr 28, 2007 3:16 PM by Sander Mak

    default equals() doesn't behave as expected for javaBean com

    Matt Drees Master

      I'm not sure whether this is a bug or not, but it occupied a chunk of my time trying to debug this, and I thought others should be aware of it.

      The javassist proxy for javaBeans components interferes with the default equals() method. After some interceptions, something like instance_javassist.equals(instance) is called, which fails, because they're different instances.

      You can see this with something like this (which fails):

      public class PingTest extends SeamTest {
       public void test() throws Exception {
       new FacesRequest() {
       protected void invokeApplication() {
       //call action methods here
       Ping ping = (Ping) getValue("#{ping}");
       Collection<Ping> pingSet = new ArrayList<Ping>();
       assert ping.equals(ping);

      public class Ping {
       @Logger private Log log;
       @In FacesMessages facesMessages;
       public void ping()
       log.info("ping.ping() action called");

      If it's a bug, I'll file it in jira.