[jboss-cvs] JBossAS SVN: r66680 - trunk/ejb3/src/main/org/jboss/ejb3.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 2 10:30:30 EDT 2007


Author: wolfc
Date: 2007-11-02 10:30:30 -0400 (Fri, 02 Nov 2007)
New Revision: 66680

Modified:
   trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java
   trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java
Log:
EJBTHREE-1067: fix NPEs

Modified: trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java	2007-11-02 14:29:49 UTC (rev 66679)
+++ trunk/ejb3/src/main/org/jboss/ejb3/EJBContainer.java	2007-11-02 14:30:30 UTC (rev 66680)
@@ -466,7 +466,7 @@
 
          // When @WebServiceRef is not used service-ref won't be processed
          // In this case we process them late
-         if(xml!=null)
+         if(xml != null && xml.getServiceReferences() != null)
          {
             for(ServiceReferenceMetaData sref : xml.getServiceReferences())
             {

Modified: trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java	2007-11-02 14:29:49 UTC (rev 66679)
+++ trunk/ejb3/src/main/org/jboss/ejb3/Ejb3DescriptorHandler.java	2007-11-02 14:30:30 UTC (rev 66680)
@@ -30,6 +30,7 @@
 import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.StringTokenizer;
 
 import javassist.bytecode.ClassFile;
@@ -193,6 +194,7 @@
 import org.jboss.metadata.ejb.spec.TransactionType;
 import org.jboss.metadata.javaee.jboss.AnnotationMetaData;
 import org.jboss.metadata.javaee.jboss.AnnotationPropertyMetaData;
+import org.jboss.metadata.javaee.jboss.AnnotationsMetaData;
 import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
 import org.jboss.metadata.javaee.spec.LifecycleCallbacksMetaData;
 import org.jboss.metadata.javaee.spec.MessageDestinationMetaData;
@@ -253,7 +255,7 @@
       
       for(JBossEnterpriseBeanMetaData bean : enterpriseBeans)
       {
-         if(bean.getEjbClass().equals(className))
+         if(bean.getEjbClass() != null && bean.getEjbClass().equals(className))
             result.add(bean);
       }
       
@@ -925,7 +927,7 @@
       {
          SecurityRolesMetaData securityRoles = assembly.getSecurityRoles();
 
-         if (securityRoles.size() > 0)
+         if (securityRoles != null && securityRoles.size() > 0)
          {
             List<String> roleList = new ArrayList<String>();
             for (SecurityRoleMetaData securityRole : securityRoles)
@@ -939,25 +941,28 @@
          }
 
          MethodPermissionsMetaData methodPermissions = assembly.getMethodPermissions();
-         for (MethodPermissionMetaData permission : methodPermissions)
+         if(methodPermissions != null)
          {
-            for (MethodMetaData method : permission.getMethods())
+            for (MethodPermissionMetaData permission : methodPermissions)
             {
-               if (method.getEjbName().equals(ejbName))
+               for (MethodMetaData method : permission.getMethods())
                {
-                  if (permission.isNotChecked())
+                  if (method.getEjbName().equals(ejbName))
                   {
-                     PermitAllImpl annotation = new PermitAllImpl();
-                     addAnnotations(PermitAll.class, annotation, container, method);
-                  } else
-                  {
-                     RolesAllowedImpl annotation = new RolesAllowedImpl();
-
-                     for (String roleName : permission.getRoles())
+                     if (permission.isNotChecked())
                      {
-                        annotation.addValue(roleName);
+                        PermitAllImpl annotation = new PermitAllImpl();
+                        addAnnotations(PermitAll.class, annotation, container, method);
+                     } else
+                     {
+                        RolesAllowedImpl annotation = new RolesAllowedImpl();
+   
+                        for (String roleName : permission.getRoles())
+                        {
+                           annotation.addValue(roleName);
+                        }
+                        addAnnotations(RolesAllowed.class, annotation, container, method);
                      }
-                     addAnnotations(RolesAllowed.class, annotation, container, method);
                   }
                }
             }
@@ -1031,7 +1036,7 @@
       }
 
       JBossAssemblyDescriptorMetaData descriptor = dd.getAssemblyDescriptor();
-      if (descriptor != null)
+      if (descriptor != null && descriptor.getContainerTransactions() != null)
       {
          for(ContainerTransactionMetaData transaction : descriptor.getContainerTransactions())
          {
@@ -1060,28 +1065,31 @@
       boolean definesInterceptors = false;
 
       InterceptorBindingsMetaData interceptorBindings = dd.getAssemblyDescriptor().getInterceptorBindings();
-      for (InterceptorBindingMetaData binding : interceptorBindings)
+      if(interceptorBindings != null)
       {
-         // Wolf: why ignore ordered binding?
-         /*
-         if (binding.isOrdered())
+         for (InterceptorBindingMetaData binding : interceptorBindings)
          {
-            continue;
-         }
-         */
-         if (binding.getEjbName().equals(ejbName))
-         {
-            if(binding.getMethod() == null)
+            // Wolf: why ignore ordered binding?
+            /*
+            if (binding.isOrdered())
             {
-               addClassLevelInterceptorBindingAnnotations(container, binding);
-               definesInterceptors = true;
-            } 
-            else
+               continue;
+            }
+            */
+            if (binding.getEjbName().equals(ejbName))
             {
-               definesInterceptors = addMethodLevelInterceptorBindingAnnotations(
-                     container, binding);
+               if(binding.getMethod() == null)
+               {
+                  addClassLevelInterceptorBindingAnnotations(container, binding);
+                  definesInterceptors = true;
+               } 
+               else
+               {
+                  definesInterceptors = addMethodLevelInterceptorBindingAnnotations(
+                        container, binding);
+               }
+   
             }
-
          }
       }
 
@@ -1289,7 +1297,11 @@
    private void addXmlAnnotations(EJBContainer container,
          JBossEnterpriseBeanMetaData enterpriseBean) throws Exception
    {
-      for(AnnotationMetaData xmlAnnotation: enterpriseBean.getAnnotations())
+      AnnotationsMetaData annotations = enterpriseBean.getAnnotations();
+      if(annotations == null)
+         return;
+      
+      for(AnnotationMetaData xmlAnnotation: annotations)
       {
          Class<? extends Annotation> annotationClass = (Class<? extends Annotation>) di.getClassLoader().loadClass(xmlAnnotation.getAnnotationClass());
          Class<? extends Annotation> annotationImplementationClass = (Class<? extends Annotation>) di.getClassLoader().loadClass(xmlAnnotation.getAnnotationImplementationClass());
@@ -1439,7 +1451,8 @@
    private void addDependencies(EJBContainer container,
          JBossEnterpriseBeanMetaData enterpriseBean) throws Exception
    {
-      if (enterpriseBean.getDepends().size() > 0)
+      Set<String> depends = enterpriseBean.getDepends();
+      if (depends != null && depends.size() > 0)
       {
          DependsImpl annotation = new DependsImpl();
          Iterator<String> dependencies = enterpriseBean.getDepends()
@@ -1590,7 +1603,7 @@
       } 
 	  
       List<RemoteBindingMetaData> bindingsList = enterpriseBean.getRemoteBindings();
-      if (bindingsList.size() == 0)
+      if (bindingsList == null || bindingsList.size() == 0)
       {
          addSimpleJndiAnnotations(container, enterpriseBean);
          return;
@@ -1651,6 +1664,9 @@
 
    private void handleResourceRefs(EJBContainer container, ResourceReferencesMetaData resourceRefList)
    {
+      if(resourceRefList == null)
+         return;
+      
       for(ResourceReferenceMetaData ref : resourceRefList)
       {
          if (ref.getResourceName() != null)
@@ -1667,8 +1683,10 @@
    }
 
    private void addMessageDestinationAnnotations(EJBContainer container, MessageDestinationReferencesMetaData refs)
-
    {
+      if(refs == null)
+         return;
+      
       for(MessageDestinationReferenceMetaData ref : refs)
       {
          if (ref.getMappedName() == null || ref.getMappedName().equals(""))




More information about the jboss-cvs-commits mailing list