com.userweave.application.UserWeaveWebRequestCycle.java Source code

Java tutorial

Introduction

Here is the source code for com.userweave.application.UserWeaveWebRequestCycle.java

Source

/*******************************************************************************
 * This file is part of UserWeave.
 *
 *     UserWeave is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU Affero General Public License as published by
 *     the Free Software Foundation, either version 3 of the License, or
 *     (at your option) any later version.
 *
 *     UserWeave is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU Affero General Public License for more details.
 *
 *     You should have received a copy of the GNU Affero General Public License
 *     along with UserWeave.  If not, see <http://www.gnu.org/licenses/>.
 *
 * Copyright 2012 User Prompt GmbH | Psychologic IT Expertise
 *******************************************************************************/
package com.userweave.application;

import org.apache.wicket.Application;
import org.apache.wicket.RuntimeConfigurationType;
import org.apache.wicket.Session;
import org.apache.wicket.request.cycle.RequestCycle;
import org.apache.wicket.request.cycle.RequestCycleContext;

import com.userweave.domain.util.ExceptionHandlingHelper;

public class UserWeaveWebRequestCycle extends RequestCycle {
    private final ExceptionHandlingHelper exceptionHandlingHelper = new ExceptionHandlingHelper();

    private boolean ignoreNextException;

    public UserWeaveWebRequestCycle(RequestCycleContext context) {
        super(context);
    }

    public static UserWeaveWebRequestCycle get() {
        return (UserWeaveWebRequestCycle) RequestCycle.get();
    }

    public void handleRuntimeException(RuntimeException e) {
        if (!ignoreNextException) {
            if ((Application.get().getConfigurationType() == RuntimeConfigurationType.DEPLOYMENT)) {
                exceptionHandlingHelper.sendRuntimeException(e);
            }
        }
        ignoreNextException = false;
    }

    //   @Override
    //   protected void logRuntimeException(RuntimeException e) {
    //      if(!ignoreNextException) {
    //         super.logRuntimeException(e);
    //         if(Application.DEPLOYMENT.equalsIgnoreCase(getApplication().getConfigurationType())) {
    //            exceptionHandlingHelper.sendRuntimeException(e);
    //         }
    //      }
    //      ignoreNextException = false;
    //   }

    @Override
    protected void onEndRequest() {
        super.onEndRequest();
        ((UserWeaveSession) Session.get()).invalidateUser();
        ((UserWeaveSession) Session.get()).invalidateProject();
    }

    /**
     * sometimes we force errors while developing. These errors are annoying. This is a 
     * way how to ignore the next Exception once. Call this method only if you *know* what
     * you are doing. Else it WILL swallow some useful exception messages!
     */
    public void ignoreNextException() {
        this.ignoreNextException = true;
    }
}