Author: pero
Date: Wed Mar 26 11:01:48 2008
New Revision: 641445

URL: http://svn.apache.org/viewvc?rev=641445&view=rev
Log:
Fix possible NPE

Modified:
    
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/tcp/ReplicationValve.java

Modified: 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/tcp/ReplicationValve.java
URL: 
http://svn.apache.org/viewvc/tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/tcp/ReplicationValve.java?rev=641445&r1=641444&r2=641445&view=diff
==============================================================================
--- 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/tcp/ReplicationValve.java
 (original)
+++ 
tomcat/sandbox/tomcat-oacc/trunk/src/share/org/apache/catalina/cluster/tcp/ReplicationValve.java
 Wed Mar 26 11:01:48 2008
@@ -331,10 +331,10 @@
         if(isDoProcessingStats()) {
             totalstart = System.currentTimeMillis();
         }
-        if (primaryIndicator) {
+        Context context = request.getContext();
+        if (primaryIndicator && context != null) {
             createPrimaryIndicator(request) ;
         }
-        Context context = request.getContext();
         boolean isCrossContext = context != null
                 && context instanceof StandardContext
                 && ((StandardContext) context).getCrossContext();
@@ -346,24 +346,26 @@
                 crossContextSessions.set(new ArrayList());
             }
             getNext().invoke(request, response);
-            Manager manager = request.getContext().getManager();
-            if (manager != null && manager instanceof ClusterManager) {
-                ClusterManager clusterManager = (ClusterManager) manager;
-                CatalinaCluster containerCluster = (CatalinaCluster) 
getContainer().getCluster();
-                if (containerCluster == null) {
-                    if (log.isWarnEnabled())
-                        log.warn(sm.getString("ReplicationValve.nocluster"));
-                    return;
-                }
-                // valve cluster can access manager - other cluster handle 
replication 
-                // at host level - hopefully!
-                if(containerCluster.getManager(clusterManager.getName()) == 
null)
-                    return ;
-                if(containerCluster.hasMembers()) {
-                    sendReplicationMessage(request, totalstart, 
isCrossContext, clusterManager, containerCluster);
-                } else {
-                    resetReplicationRequest(request,isCrossContext);
-                }        
+            if(context != null) {
+                   Manager manager = context.getManager();
+                   if (manager != null && manager instanceof ClusterManager) {
+                       ClusterManager clusterManager = (ClusterManager) 
manager;
+                       CatalinaCluster containerCluster = (CatalinaCluster) 
getContainer().getCluster();
+                       if (containerCluster == null) {
+                           if (log.isWarnEnabled())
+                               
log.warn(sm.getString("ReplicationValve.nocluster"));
+                           return;
+                       }
+                       // valve cluster can access manager - other cluster 
handle replication 
+                       // at host level - hopefully!
+                       
if(containerCluster.getManager(clusterManager.getName()) == null)
+                           return ;
+                       if(containerCluster.hasMembers()) {
+                           sendReplicationMessage(request, totalstart, 
isCrossContext, clusterManager, containerCluster);
+                       } else {
+                           resetReplicationRequest(request,isCrossContext);
+                       }        
+                   }
             }
         } finally {
             // Array must be remove: Current master request send endAccess at 
recycle. 
@@ -632,29 +634,32 @@
     protected void createPrimaryIndicator(Request request) throws IOException {
         String id = request.getRequestedSessionId();
         if ((id != null) && (id.length() > 0)) {
-            Manager manager = request.getContext().getManager();
-            Session session = manager.findSession(id);
-            if (session instanceof ClusterSession) {
-                ClusterSession cses = (ClusterSession) session;
-                if (cses != null) {
-                    Boolean isPrimary = new Boolean(cses.isPrimarySession());
-                    if (log.isDebugEnabled())
-                        log.debug(sm.getString(
-                                "ReplicationValve.session.indicator", 
request.getContext().getName(),id,
-                                primaryIndicatorName, isPrimary));
-                    request.setAttribute(primaryIndicatorName, isPrimary);
-                }
-            } else {
-                if (log.isDebugEnabled()) {
-                    if (session != null) {
-                        log.debug(sm.getString(
-                                "ReplicationValve.session.found", 
request.getContext().getName(),id));
-                    } else {
-                        log.debug(sm.getString(
-                                "ReplicationValve.session.invalid", 
request.getContext().getName(),id));
-                    }
-                }
-            }
+               Context context = request.getContext() ;
+               if(context != null) {
+                       Manager manager = context.getManager();
+                   Session session = manager.findSession(id);
+                   if (session instanceof ClusterSession) {
+                       ClusterSession cses = (ClusterSession) session;
+                       if (cses != null) {
+                           Boolean isPrimary = new 
Boolean(cses.isPrimarySession());
+                           if (log.isDebugEnabled())
+                               log.debug(sm.getString(
+                                       "ReplicationValve.session.indicator", 
context.getName(),id,
+                                       primaryIndicatorName, isPrimary));
+                           request.setAttribute(primaryIndicatorName, 
isPrimary);
+                       }
+                   } else {
+                       if (log.isDebugEnabled()) {
+                           if (session != null) {
+                               log.debug(sm.getString(
+                                       "ReplicationValve.session.found", 
context.getName(),id));
+                           } else {
+                               log.debug(sm.getString(
+                                       "ReplicationValve.session.invalid", 
context.getName(),id));
+                           }
+                       }
+                   }
+               }
         }
     }
 



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to