You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by ri...@apache.org on 2008/03/10 13:04:05 UTC

svn commit: r635536 - /geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAPolicies.java

Author: rickmcguire
Date: Mon Mar 10 05:04:03 2008
New Revision: 635536

URL: http://svn.apache.org/viewvc?rev=635536&view=rev
Log:
YOKO-420 NPE from create_POA if null is passed for the policies list.


Modified:
    geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAPolicies.java

Modified: geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAPolicies.java
URL: http://svn.apache.org/viewvc/geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAPolicies.java?rev=635536&r1=635535&r2=635536&view=diff
==============================================================================
--- geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAPolicies.java (original)
+++ geronimo/yoko/trunk/core/src/main/java/org/apache/yoko/orb/OBPortableServer/POAPolicies.java Mon Mar 10 05:04:03 2008
@@ -78,67 +78,69 @@
         dispatchStrategyPolicyValue_ = null;
         bidirPolicyValue_ = org.omg.BiDirPolicy.BOTH.value;
 
-        for (int i = 0; i < policies.length; ++i) {
-            int policyType = policies[i].policy_type();
-            if (policyType == org.omg.PortableServer.THREAD_POLICY_ID.value) {
-                org.omg.PortableServer.ThreadPolicy policy = org.omg.PortableServer.ThreadPolicyHelper
-                        .narrow(policies[i]);
-                synchronizationPolicyValue_ = (policy.value() == org.omg.PortableServer.ThreadPolicyValue.ORB_CTRL_MODEL) ? SynchronizationPolicyValue.NO_SYNCHRONIZATION
-                        : SynchronizationPolicyValue.SYNCHRONIZE_ON_ORB;
-            } else if (policyType == org.omg.PortableServer.LIFESPAN_POLICY_ID.value) {
-                org.omg.PortableServer.LifespanPolicy policy = org.omg.PortableServer.LifespanPolicyHelper
-                        .narrow(policies[i]);
-                lifespanPolicyValue_ = policy.value();
-            } else if (policyType == org.omg.PortableServer.ID_UNIQUENESS_POLICY_ID.value) {
-                org.omg.PortableServer.IdUniquenessPolicy policy = org.omg.PortableServer.IdUniquenessPolicyHelper
-                        .narrow(policies[i]);
-                idUniquenessPolicyValue_ = policy.value();
-            } else if (policyType == org.omg.PortableServer.ID_ASSIGNMENT_POLICY_ID.value) {
-                org.omg.PortableServer.IdAssignmentPolicy policy = org.omg.PortableServer.IdAssignmentPolicyHelper
-                        .narrow(policies[i]);
-                idAssignmentPolicyValue_ = policy.value();
-            } else if (policyType == org.omg.PortableServer.IMPLICIT_ACTIVATION_POLICY_ID.value) {
-                org.omg.PortableServer.ImplicitActivationPolicy policy = org.omg.PortableServer.ImplicitActivationPolicyHelper
-                        .narrow(policies[i]);
-                implicitActivationPolicyValue_ = policy.value();
-            } else if (policyType == org.omg.PortableServer.SERVANT_RETENTION_POLICY_ID.value) {
-                org.omg.PortableServer.ServantRetentionPolicy policy = org.omg.PortableServer.ServantRetentionPolicyHelper
-                        .narrow(policies[i]);
-                servantRetentionPolicyValue_ = policy.value();
-            } else if (policyType == org.omg.PortableServer.REQUEST_PROCESSING_POLICY_ID.value) {
-                org.omg.PortableServer.RequestProcessingPolicy policy = org.omg.PortableServer.RequestProcessingPolicyHelper
-                        .narrow(policies[i]);
-                requestProcessingPolicyValue_ = policy.value();
-            } else if (policyType == org.omg.BiDirPolicy.BIDIRECTIONAL_POLICY_TYPE.value) {
-                org.omg.BiDirPolicy.BidirectionalPolicy p = org.omg.BiDirPolicy.BidirectionalPolicyHelper
-                        .narrow(policies[i]);
-                bidirPolicyValue_ = p.value();
-            }
+        if (policies != null) {
+            for (int i = 0; i < policies.length; ++i) {
+                int policyType = policies[i].policy_type();
+                if (policyType == org.omg.PortableServer.THREAD_POLICY_ID.value) {
+                    org.omg.PortableServer.ThreadPolicy policy = org.omg.PortableServer.ThreadPolicyHelper
+                            .narrow(policies[i]);
+                    synchronizationPolicyValue_ = (policy.value() == org.omg.PortableServer.ThreadPolicyValue.ORB_CTRL_MODEL) ? SynchronizationPolicyValue.NO_SYNCHRONIZATION
+                            : SynchronizationPolicyValue.SYNCHRONIZE_ON_ORB;
+                } else if (policyType == org.omg.PortableServer.LIFESPAN_POLICY_ID.value) {
+                    org.omg.PortableServer.LifespanPolicy policy = org.omg.PortableServer.LifespanPolicyHelper
+                            .narrow(policies[i]);
+                    lifespanPolicyValue_ = policy.value();
+                } else if (policyType == org.omg.PortableServer.ID_UNIQUENESS_POLICY_ID.value) {
+                    org.omg.PortableServer.IdUniquenessPolicy policy = org.omg.PortableServer.IdUniquenessPolicyHelper
+                            .narrow(policies[i]);
+                    idUniquenessPolicyValue_ = policy.value();
+                } else if (policyType == org.omg.PortableServer.ID_ASSIGNMENT_POLICY_ID.value) {
+                    org.omg.PortableServer.IdAssignmentPolicy policy = org.omg.PortableServer.IdAssignmentPolicyHelper
+                            .narrow(policies[i]);
+                    idAssignmentPolicyValue_ = policy.value();
+                } else if (policyType == org.omg.PortableServer.IMPLICIT_ACTIVATION_POLICY_ID.value) {
+                    org.omg.PortableServer.ImplicitActivationPolicy policy = org.omg.PortableServer.ImplicitActivationPolicyHelper
+                            .narrow(policies[i]);
+                    implicitActivationPolicyValue_ = policy.value();
+                } else if (policyType == org.omg.PortableServer.SERVANT_RETENTION_POLICY_ID.value) {
+                    org.omg.PortableServer.ServantRetentionPolicy policy = org.omg.PortableServer.ServantRetentionPolicyHelper
+                            .narrow(policies[i]);
+                    servantRetentionPolicyValue_ = policy.value();
+                } else if (policyType == org.omg.PortableServer.REQUEST_PROCESSING_POLICY_ID.value) {
+                    org.omg.PortableServer.RequestProcessingPolicy policy = org.omg.PortableServer.RequestProcessingPolicyHelper
+                            .narrow(policies[i]);
+                    requestProcessingPolicyValue_ = policy.value();
+                } else if (policyType == org.omg.BiDirPolicy.BIDIRECTIONAL_POLICY_TYPE.value) {
+                    org.omg.BiDirPolicy.BidirectionalPolicy p = org.omg.BiDirPolicy.BidirectionalPolicyHelper
+                            .narrow(policies[i]);
+                    bidirPolicyValue_ = p.value();
+                }
 
-            //
-            // Yoko proprietary policies
-            //
-            else if (policyType == SYNCHRONIZATION_POLICY_ID.value) {
-                SynchronizationPolicy policy = SynchronizationPolicyHelper
-                        .narrow(policies[i]);
-                synchronizationPolicyValue_ = policy.value();
-            } else if (policyType == DISPATCH_STRATEGY_POLICY_ID.value) {
-                DispatchStrategyPolicy policy = DispatchStrategyPolicyHelper
-                        .narrow(policies[i]);
-                dispatchStrategyPolicyValue_ = policy.value();
-            } else if (policyType == INTERCEPTOR_CALL_POLICY_ID.value) {
-                InterceptorCallPolicy policy = InterceptorCallPolicyHelper
-                        .narrow(policies[i]);
-                interceptorCallPolicyValue_ = policy.value();
-            } else if (policyType == ZERO_PORT_POLICY_ID.value) {
-                ZeroPortPolicy policy = ZeroPortPolicyHelper
-                        .narrow(policies[i]);
-                zeroPortPolicyValue_ = policy.value();
-            }
+                //
+                // Yoko proprietary policies
+                //
+                else if (policyType == SYNCHRONIZATION_POLICY_ID.value) {
+                    SynchronizationPolicy policy = SynchronizationPolicyHelper
+                            .narrow(policies[i]);
+                    synchronizationPolicyValue_ = policy.value();
+                } else if (policyType == DISPATCH_STRATEGY_POLICY_ID.value) {
+                    DispatchStrategyPolicy policy = DispatchStrategyPolicyHelper
+                            .narrow(policies[i]);
+                    dispatchStrategyPolicyValue_ = policy.value();
+                } else if (policyType == INTERCEPTOR_CALL_POLICY_ID.value) {
+                    InterceptorCallPolicy policy = InterceptorCallPolicyHelper
+                            .narrow(policies[i]);
+                    interceptorCallPolicyValue_ = policy.value();
+                } else if (policyType == ZERO_PORT_POLICY_ID.value) {
+                    ZeroPortPolicy policy = ZeroPortPolicyHelper
+                            .narrow(policies[i]);
+                    zeroPortPolicyValue_ = policy.value();
+                }
 
-            //
-            // Otherwise the policy is not a ORB defined POA policy
-            //
+                //
+                // Otherwise the policy is not a ORB defined POA policy
+                //
+            }
         }
 
         if (dispatchStrategyPolicyValue_ == null) {