Index: deployment/dol/src/main/java/com/sun/enterprise/deployment/PersistenceDescriptor.java =================================================================== --- deployment/dol/src/main/java/com/sun/enterprise/deployment/PersistenceDescriptor.java (revision 35602) +++ deployment/dol/src/main/java/com/sun/enterprise/deployment/PersistenceDescriptor.java (working copy) @@ -911,6 +911,14 @@ } } if ( nonPersFieldsInPK.length() != 0 ) { + if(getPrimaryKeyClass()==null){ + throw new DeploymentException(localStrings.getLocalString( + "enterprise.deployment.pkfieldsisnotfound", + "CMP bean [{0}], primary key field(s) [{1}]" + + " not found.", + new Object[] {getParentDescriptor().getName(), + nonPersFieldsInPK.toString()})); + } throw new DeploymentException(localStrings.getLocalString( "enterprise.deployment.pkhasnopersistentfields", "CMP bean [{0}], primary key class [{1}] has " + Index: deployment/dol/src/main/java/com/sun/enterprise/deployment/LocalStrings.properties =================================================================== --- deployment/dol/src/main/java/com/sun/enterprise/deployment/LocalStrings.properties (revision 35602) +++ deployment/dol/src/main/java/com/sun/enterprise/deployment/LocalStrings.properties (working copy) @@ -97,6 +97,7 @@ enterprise.deployment.norolemapperfactorydefine=This application has no role mapper factory defined enterprise.deployment.invalidcmpversion=Invalid CMP version: {0}. enterprise.deployment.pkhasnopersistentfields=CMP bean [{0}], primary key class [{1}] has public non-persistent field(s) [{2}]. +enterprise.deployment.pkfieldsisnotfound=CMP bean [{0}], primary key field(s) [{1}] not found. enterprise.deployment.unknownportforruntimeinfo=Runtime port info SEI {0} is not declared in standard service-ref deployment descriptors (under port-component-ref), is this intended ? enterprise.deployment.exceptioncannotgetsecbusmethodsinmsgbean=Cannot get business method for security for message-driven bean.