Anybody know why I would get a NPE when trying to create a simple CMP entity instance? The exception that the client gets is: java.lang.NullPointerException: Primary-key was null And the server console displays: java.lang.NullPointerException at RecordHome_EntityHomeWrapper8.hashCode(RecordHome_EntityHomeWrapper8.java:131) at com.evermind.util.ExternalHashSet.get(JAX) at RecordHome_EntityHomeWrapper8.create(RecordHome_EntityHomeWrapper8.java:339) at java.lang.reflect.Method.invoke(Native Method) at com.evermind.server.rmi.bd.run(JAX) at com.evermind.server.rmi.bb.hy(JAX) at com.evermind.server.rmi.bb.run(JAX) at com.evermind.util.f.run(JAX) I know that the key (a simple String id) is getting into the ejbCreate method, since I am printing it to the console (it displays just prior to this message). For further reference, my client code and ejb-jar.xml are below. Thanks, Jason client: public class test { public static void main(String[] args) { try { InitialContext ic = new InitialContext(); Object ref = ic.lookup("alert.Record"); RecordHome home = (RecordHome)PortableRemoteObject.narrow(ref, RecordHome.class); System.out.println("Got this far -- Creating an instance:"); home.create("1234"); System.out.println("Created successfully"); } catch (Exception e) { System.out.println(e); } } } ejb-jar.xml: <?xml version="1.0"?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" "http://java.sun.com/j2ee/dtds/ejb-jar_2_0.dtd"> <ejb-jar> <description> </description> <enterprise-beans> <entity> <description></description> <ejb-name>alert.Record</ejb-name> <home>alert.RecordHome</home> <remote>alert.Record</remote> <ejb-class>alert.RecordEJB</ejb-class> <persistence-type>Container</persistence-type> <prim-key-class>java.lang.String</prim-key-class> <primkey-field>id</primkey-field> <reentrant>False</reentrant> <cmp-field><field-name>id</field-name></cmp-field> <cmp-field><field-name>articleTitle</field-name></cmp-field> <cmp-field><field-name>sourceTitle</field-name></cmp-field> <cmp-field><field-name>articleAuthors</field-name></cmp-field> <cmp-field><field-name>abstractText</field-name></cmp-field> <cmp-field><field-name>language</field-name></cmp-field> <cmp-field><field-name>researchAddress</field-name></cmp-field> <cmp-field><field-name>issn</field-name></cmp-field> <cmp-field><field-name>source</field-name></cmp-field> <cmp-field><field-name>pubType</field-name></cmp-field> <cmp-field><field-name>keywords</field-name></cmp-field> <cmp-field><field-name>volume</field-name></cmp-field> <cmp-field><field-name>issue</field-name></cmp-field> <cmp-field><field-name>issueNote</field-name></cmp-field> <cmp-field><field-name>pageRange</field-name></cmp-field> <cmp-field><field-name>pubYear</field-name></cmp-field> <cmp-field><field-name>packedTitle</field-name></cmp-field> <cmp-field><field-name>packedAuthors</field-name></cmp-field> <cmp-field><field-name>importDate</field-name></cmp-field> <cmp-field><field-name>available</field-name></cmp-field> </entity> </enterprise-beans> <dependents> </dependents> <assembly-descriptor> <container-transaction> <method> <ejb-name>alert.Record</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Supports</trans-attribute> </container-transaction> <container-transaction> <method> <ejb-name>alert.RecordHome</ejb-name> <method-name>*</method-name> </method> <trans-attribute>Required</trans-attribute> </container-transaction> </assembly-descriptor> </ejb-jar>