package de.flower.rmt.ui.page.error; import de.flower.common.ui.panel.BasePanel; import de.flower.common.ui.util.LoggingUtils; import de.flower.rmt.security.ISecurityService; import de.flower.rmt.ui.app.IPropertyProvider; import de.flower.rmt.ui.app.Links; import org.apache.wicket.Application; import org.apache.wicket.AttributeModifier; import org.apache.wicket.RuntimeConfigurationType; import org.apache.wicket.request.cycle.RequestCycle; import org.apache.wicket.spring.injection.annot.SpringBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; /** * @author flowerrrr */ public class InternalError500Panel extends BasePanel { private final static Logger log = LoggerFactory.getLogger(InternalError500Panel.class); @SpringBean private IPropertyProvider propertyProvider; @SpringBean private ISecurityService securityService; public InternalError500Panel(final Exception exception) { add(Links.contextRoot("home")); add(Links.mailLink("adminMail", propertyProvider.getAdminEmail(), true)); add(new StacktracePanel(exception) { { String display = Application.get().getConfigurationType() == RuntimeConfigurationType.DEVELOPMENT ? "inline" : "none"; add(AttributeModifier.replace("style", "display: " + display + ";")); } @Override public boolean isVisible() { return exception != null; } }); } @Override protected void onBeforeRender() { log.warn("Server error 500 [{}]", LoggingUtils.toString(RequestCycle.get().getRequest())); log.warn("Userdetails: " + securityService.getCurrentUser()); super.onBeforeRender(); } }