dain 2004/10/08 02:05:06
Modified: modules/core/src/java/org/openejb/deployment
CMPEntityBuilder.java
Log:
Fixed null pointer exceptions
Revision Changes Path
1.4 +38 -24
openejb/modules/core/src/java/org/openejb/deployment/CMPEntityBuilder.java
Index: CMPEntityBuilder.java
===================================================================
RCS file:
/home/projects/openejb/scm/openejb/modules/core/src/java/org/openejb/deployment/CMPEntityBuilder.java,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -r1.3 -r1.4
--- CMPEntityBuilder.java 21 Sep 2004 05:20:48 -0000 1.3
+++ CMPEntityBuilder.java 8 Oct 2004 06:05:06 -0000 1.4
@@ -68,6 +68,7 @@
import org.apache.geronimo.xbeans.j2ee.EjbJarType;
import org.apache.geronimo.xbeans.j2ee.EnterpriseBeansType;
import org.apache.geronimo.xbeans.j2ee.EntityBeanType;
+import org.apache.geronimo.xbeans.j2ee.EjbNameType;
import org.openejb.dispatch.MethodSignature;
import org.openejb.entity.cmp.CMPContainerBuilder;
import org.openejb.proxy.EJBProxyFactory;
@@ -94,11 +95,11 @@
for (int i = 0; i < entityBeans.length; i++) {
EntityBeanType entityBean = entityBeans[i];
- if
(!"Container".equals(entityBean.getPersistenceType().getStringValue())) {
+ if (!"Container".equals(getString(entityBean.getPersistenceType()))) {
continue;
}
- OpenejbEntityBeanType openejbEntityBean = (OpenejbEntityBeanType)
openejbBeans.get(entityBean.getEjbName().getStringValue());
+ OpenejbEntityBeanType openejbEntityBean = (OpenejbEntityBeanType)
openejbBeans.get(getString(entityBean.getEjbName()));
ObjectName entityObjectName = super.createEJBObjectName(earContext,
module.getName(), entityBean);
GBeanMBean entityGBean = createBean(earContext, ejbModule,
entityObjectName.getCanonicalName(), entityBean, openejbEntityBean, ejbSchema,
sqlSchema, connectionFactoryName, transactionPolicyHelper, security, cl);
@@ -112,32 +113,32 @@
for (int i = 0; i < entityBeans.length; i++) {
EntityBeanType entityBean = entityBeans[i];
- if
("Container".equals(entityBean.getPersistenceType().getStringValue())) {
- String ejbName = entityBean.getEjbName().getStringValue();
- String abstractSchemaName =
entityBean.getAbstractSchemaName().getStringValue();
+ if ("Container".equals(getString(entityBean.getPersistenceType()))) {
+ String ejbName = getString(entityBean.getEjbName());
+ String abstractSchemaName =
getString(entityBean.getAbstractSchemaName());
ObjectName entityObjectName = super.createEJBObjectName(earContext,
ejbModuleName, entityBean);
EJBProxyFactory proxyFactory = (EJBProxyFactory)
getModuleBuilder().createEJBProxyFactory(entityObjectName.getCanonicalName(),
false,
-
OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getRemote()),
-
OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getHome()),
-
OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getLocal()),
-
OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getLocalHome()),
+ getString(entityBean.getRemote()),
+ getString(entityBean.getHome()),
+ getString(entityBean.getLocal()),
+ getString(entityBean.getLocalHome()),
cl);
Class ejbClass;
try {
- ejbClass =
cl.loadClass(entityBean.getEjbClass().getStringValue());
+ ejbClass = cl.loadClass(getString(entityBean.getEjbClass()));
} catch (ClassNotFoundException e) {
- throw new DeploymentException("Could not load cmp bean class:
ejbName=" + ejbName + " ejbClass=" + entityBean.getEjbClass().getStringValue());
+ throw new DeploymentException("Could not load cmp bean class:
ejbName=" + ejbName + " ejbClass=" + getString(entityBean.getEjbClass()));
}
Class pkClass;
try {
- pkClass =
cl.loadClass(entityBean.getPrimKeyClass().getStringValue());
+ pkClass = cl.loadClass(getString(entityBean.getPrimKeyClass()));
} catch (ClassNotFoundException e) {
- throw new DeploymentException("Could not load cmp primary key
class: ejbName=" + ejbName + " pkClass=" +
entityBean.getPrimKeyClass().getStringValue());
+ throw new DeploymentException("Could not load cmp primary key
class: ejbName=" + ejbName + " pkClass=" + getString(entityBean.getPrimKeyClass()));
}
EJB ejb = new EJB(ejbName, abstractSchemaName, pkClass,
proxyFactory);
@@ -155,13 +156,13 @@
} else {
// specific field is primary key
pkFieldNames = new HashSet(1);
- pkFieldNames.add(entityBean.getPrimkeyField().getStringValue());
+ pkFieldNames.add(getString(entityBean.getPrimkeyField()));
}
CmpFieldType[] cmpFieldTypes = entityBean.getCmpFieldArray();
for (int cmpFieldIndex = 0; cmpFieldIndex < cmpFieldTypes.length;
cmpFieldIndex++) {
CmpFieldType cmpFieldType = cmpFieldTypes[cmpFieldIndex];
- String fieldName = cmpFieldType.getFieldName().getStringValue();
+ String fieldName = getString(cmpFieldType.getFieldName());
Class fieldType = getCMPFieldType(fieldName, ejbClass);
boolean isPKField = pkFieldNames.contains(fieldName);
ejb.addCMPField(new CMPField(fieldName, fieldType, isPKField));
@@ -197,18 +198,17 @@
}
public GBeanMBean createBean(EARContext earContext, EJBModule ejbModule, String
containerId, EntityBeanType entityBean, OpenejbEntityBeanType openejbEntityBean,
EJBSchema ejbSchema, Schema sqlSchema, String connectionFactoryName,
TransactionPolicyHelper transactionPolicyHelper, Security security, ClassLoader cl)
throws DeploymentException {
- String ejbName = entityBean.getEjbName().getStringValue();
-
+ String ejbName = getString(entityBean.getEjbName());
CMPContainerBuilder builder = new CMPContainerBuilder();
builder.setClassLoader(cl);
builder.setContainerId(containerId);
builder.setEJBName(ejbName);
- builder.setBeanClassName(entityBean.getEjbClass().getStringValue());
-
builder.setHomeInterfaceName(OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getHome()));
-
builder.setRemoteInterfaceName(OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getRemote()));
-
builder.setLocalHomeInterfaceName(OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getLocalHome()));
-
builder.setLocalInterfaceName(OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getLocal()));
-
builder.setPrimaryKeyClassName(OpenEJBModuleBuilder.getJ2eeStringValue(entityBean.getPrimKeyClass()));
+ builder.setBeanClassName(getString(entityBean.getEjbClass()));
+ builder.setHomeInterfaceName(getString(entityBean.getHome()));
+ builder.setRemoteInterfaceName(getString(entityBean.getRemote()));
+ builder.setLocalHomeInterfaceName(getString(entityBean.getLocalHome()));
+ builder.setLocalInterfaceName(getString(entityBean.getLocal()));
+ builder.setPrimaryKeyClassName(getString(entityBean.getPrimKeyClass()));
TransactionPolicySource transactionPolicySource =
transactionPolicyHelper.getTransactionPolicySource(ejbName);
builder.setTransactionPolicySource(transactionPolicySource);
builder.setTransactedTimerName(earContext.getTransactedTimerName());
@@ -224,7 +224,7 @@
toBeChecked,
security,
((EjbJarType) ejbModule.getSpecDD()).getAssemblyDescriptor(),
- entityBean.getEjbName().getStringValue(),
+ getString(entityBean.getEjbName()),
entityBean.getSecurityIdentity(),
entityBean.getSecurityRoleRefArray());
@@ -269,5 +269,19 @@
} catch (Throwable e) {
throw new DeploymentException("Unable to initialize EJBContainer GBean:
ejbName=" + ejbName, e);
}
+ }
+
+ private static String getString(org.apache.geronimo.xbeans.j2ee.String value) {
+ if (value == null) {
+ return null;
+ }
+ return value.getStringValue();
+ }
+
+ private String getString(EjbNameType value) {
+ if (value == null) {
+ return null;
+ }
+ return value.getStringValue();
}
}