Commit 0d10c6d4 authored by Tom Evans's avatar Tom Evans Committed by tevans

OF-590: Avoid console errors caused by stop/restart of other cluster members

git-svn-id: http://svn.igniterealtime.org/svn/repos/openfire/trunk@13369 b35dd754-fafc-0310-a699-88a17e54d16e
parent 6605d358
...@@ -219,6 +219,7 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy { ...@@ -219,6 +219,7 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy {
* task, as the task is run asynchronously across the cluster. * task, as the task is run asynchronously across the cluster.
*/ */
public void doClusterTask(final ClusterTask task) { public void doClusterTask(final ClusterTask task) {
if (cluster == null) { return; }
Set<Member> members = new HashSet<Member>(); Set<Member> members = new HashSet<Member>();
Member current = cluster.getLocalMember(); Member current = cluster.getLocalMember();
for(Member member : cluster.getMembers()) { for(Member member : cluster.getMembers()) {
...@@ -242,6 +243,7 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy { ...@@ -242,6 +243,7 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy {
* task, as the task is run asynchronously across the cluster. * task, as the task is run asynchronously across the cluster.
*/ */
public boolean doClusterTask(final ClusterTask task, byte[] nodeID) { public boolean doClusterTask(final ClusterTask task, byte[] nodeID) {
if (cluster == null) { return false; }
Member target = null; Member target = null;
for(Member member: cluster.getMembers()) { for(Member member: cluster.getMembers()) {
if (Arrays.equals(member.getUuid().getBytes(), nodeID)) { if (Arrays.equals(member.getUuid().getBytes(), nodeID)) {
...@@ -266,6 +268,8 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy { ...@@ -266,6 +268,8 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy {
* (seconds) until the task is run on all members. * (seconds) until the task is run on all members.
*/ */
public Collection<Object> doSynchronousClusterTask(ClusterTask task, boolean includeLocalMember) { public Collection<Object> doSynchronousClusterTask(ClusterTask task, boolean includeLocalMember) {
Collection<Object> result = Collections.emptyList();
if (cluster == null) { return result; }
Set<Member> members = new HashSet<Member>(); Set<Member> members = new HashSet<Member>();
Member current = cluster.getLocalMember(); Member current = cluster.getLocalMember();
for(Member member : cluster.getMembers()) { for(Member member : cluster.getMembers()) {
...@@ -273,7 +277,6 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy { ...@@ -273,7 +277,6 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy {
members.add(member); members.add(member);
} }
} }
Collection<Object> result = Collections.emptyList();
if (members.size() > 0) { if (members.size() > 0) {
// Asynchronously execute the task on the other cluster members // Asynchronously execute the task on the other cluster members
MultiTask<Object> multiTask = new MultiTask<Object>( MultiTask<Object> multiTask = new MultiTask<Object>(
...@@ -300,6 +303,7 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy { ...@@ -300,6 +303,7 @@ public class ClusteredCacheFactory implements CacheFactoryStrategy {
* (seconds) until the task is run on the given member. * (seconds) until the task is run on the given member.
*/ */
public Object doSynchronousClusterTask(ClusterTask task, byte[] nodeID) { public Object doSynchronousClusterTask(ClusterTask task, byte[] nodeID) {
if (cluster == null) { return null; }
Member target = null; Member target = null;
for(Member member: cluster.getMembers()) { for(Member member: cluster.getMembers()) {
if (Arrays.equals(member.getUuid().getBytes(), nodeID)) { if (Arrays.equals(member.getUuid().getBytes(), nodeID)) {
......
...@@ -250,6 +250,11 @@ ...@@ -250,6 +250,11 @@
boolean current = false; // needed in session-row.jspf boolean current = false; // needed in session-row.jspf
String linkURL = "session-details.jsp"; String linkURL = "session-details.jsp";
for (ClientSession sess : sessions) { for (ClientSession sess : sessions) {
try { // skip invalid sessions (OF-590)
if (!sess.validate()) continue;
} catch (IllegalStateException ise) {
continue;
}
count++; count++;
%> %>
<%@ include file="session-row.jspf" %> <%@ include file="session-row.jspf" %>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment