https://issues.apache.org/bugzilla/show_bug.cgi?id=53606
Priority: P2 Bug ID: 53606 Assignee: dev@tomcat.apache.org Summary: NullPointerException in TcpPingInterceptor Severity: blocker Classification: Unclassified Reporter: frederic.arn...@gmail.com Hardware: PC Status: NEW Version: unspecified Component: Cluster Product: Tomcat 7 start(int) method initializes failureDetector (resp. staticMembers) only if TcpFailureDetector (resp. StaticMembershipInterceptor) was found in channel interceptors stack. Without TcpFailureDetector (resp. StaticMembershipInterceptor), futur calls to sendPing() will fail because failureDetector (resp. staticMembers) wasn't initialized at least to new WeakReference<StaticMembershipInterceptor>(null). Fix: v1) initializes weak references containers: Replace: WeakReference<TcpFailureDetector> failureDetector = null; WeakReference<StaticMembershipInterceptor> staticMembers = null; for: WeakReference<TcpFailureDetector> failureDetector = new WeakReference<TcpFailureDetector>(); WeakReference<StaticMembershipInterceptor> staticMembers = new WeakReference<StaticMembershipInterceptor>(); v2) checks field before dereferencing it: sendPing becomes: protected void sendPing() { if (failureDetector!=null && failureDetector.get()!=null) { //we have a reference to the failure detector //piggy back on that dude failureDetector.get().checkMembers(true); }else { if (staticOnly && staticMembers!=null && staticMembers.get()!=null) { sendPingMessage(staticMembers.get().getMembers()); } else { sendPingMessage(getMembers()); } } } affect also tomcat 6 regards fred arnoud -- You are receiving this mail because: You are the assignee for the bug. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org