/* (c) 2014 - 2016 Open Source Geospatial Foundation - all rights reserved
* (c) 2001 - 2013 OpenPlans
* This code is licensed under the GPL 2.0 license, available at the root
* application directory.
*/
package org.geoserver.cluster.impl.web;
import org.apache.wicket.Session;
import org.apache.wicket.markup.html.panel.FeedbackPanel;
import org.geoserver.cluster.client.JMSContainerHandlerExceptionListener;
/**
*
* @author carlo cancellieri - geosolutions sas
*
*/
public class JMSContainerHandlerExceptionListenerImpl
implements JMSContainerHandlerExceptionListener {
private FeedbackPanel fp;
private Session session;
public JMSContainerHandlerExceptionListenerImpl() {
}
public void setFeedbackPanel(FeedbackPanel fp) {
this.fp = fp;
}
public void setSession(Session s) {
if (session != null) {
synchronized (this.session) {
this.session = s;
}
} else {
synchronized (s) {
this.session = s;
}
}
}
//
@Override
public void handleListenerSetupFailure(Throwable ex, boolean alreadyRecovered) {
if (session != null) {
synchronized (session) {
if (session.isSessionInvalidated()) {
return; // skip
}
// what was this doing...
// Session.set(session);
if (fp != null) {
if (alreadyRecovered) {
fp.warn("There was an error which seems already fixed: "
+ ex.getLocalizedMessage());
} else {
fp.error(ex.getLocalizedMessage());
}
}
}
}
}
}