JBoss version: 2.2.1
EJB Spec:      1.1 - Section 9.2.9
File:          org.jboss.verifier.strategy.EJBVerifier11.java
method:        verifyPrimaryKey(EntityMetadata entity)
               9.2.9.b and 9.2.9.c

The verifier in JBoss verifies that a primary key class implements the
methods equals() and hashcode(). This complies to requirements described in
section 9.2.9 of the EJB 1.1 spec.

I believe that the way the verifier checks the presence of these methods in
the primary key class is not valid. Here is what it does:

 - Create 2 instances of the primary key class using the default
constructor.

 - The method "equals()" is assumed to be implemented if the method
"equals()" returns "true" when comparing the 2 instances.

  - The method "hashcode()" is assumed to be implemented if the return value
of both instances is the same hashcode.

This type of check makes an assumption that 2 instances created with the
default constructor should be equal but the spec says nothing about this.

I think that the check should be done differently (using introspection
maybe?) as the verifier may mistakenly think that a primary class is not
compliant to the spec.

Claude Montpetit
Macadamian Technologies Inc.
"Software solutions for leading ISVs and e-Business"
_________________________
http://www.macadamian.com
[EMAIL PROTECTED]
(613)739-5976 x107


_______________________________________________
Jboss-development mailing list
[EMAIL PROTECTED]
http://lists.sourceforge.net/lists/listinfo/jboss-development

Reply via email to