Author: pero Date: Fri Nov 7 13:29:21 2008 New Revision: 712274 URL: http://svn.apache.org/viewvc?rev=712274&view=rev Log: FIX possible NPE as Engine level configuration, as context dosen't exists!
Modified: tomcat/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java Modified: tomcat/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java?rev=712274&r1=712273&r2=712274&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/tcp/ReplicationValve.java Fri Nov 7 13:29:21 2008 @@ -345,24 +345,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; + 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); + } } - // 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. --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]