Package railo.runtime.listener

Source Code of railo.runtime.listener.ModernAppListenerException

package railo.runtime.listener;

import java.io.PrintStream;
import java.io.PrintWriter;

import railo.runtime.PageContext;
import railo.runtime.PageSource;
import railo.runtime.config.Config;
import railo.runtime.config.Constants;
import railo.runtime.dump.DumpData;
import railo.runtime.dump.DumpProperties;
import railo.runtime.engine.ThreadLocalPageContext;
import railo.runtime.err.ErrorPage;
import railo.runtime.exp.CatchBlock;
import railo.runtime.exp.PageException;
import railo.runtime.exp.PageExceptionImpl;
import railo.runtime.op.Duplicator;
import railo.runtime.type.Collection;
import railo.runtime.type.KeyImpl;
import railo.runtime.type.Struct;
import railo.runtime.type.util.KeyConstants;

public final class ModernAppListenerException extends PageException {

  private static final Collection.Key ROOT_CAUSE = KeyImpl.intern("rootCause");
  private static final Collection.Key CAUSE = KeyImpl.intern("cause");
  private PageException rootCause;
  private String eventName;

  /**
   * Constructor of the class
   * @param pe
   * @param eventName
   */
  public ModernAppListenerException(PageException pe, String eventName) {
        super(pe.getMessage());
        setStackTrace(pe.getStackTrace());
    this.rootCause=pe;
    this.eventName=eventName;
  }

  @Override
  public void addContext(PageSource pageSource, int line, int column, StackTraceElement ste) {
    rootCause.addContext(pageSource, line, column,ste);
  }

  @Override
  public Struct getAdditional() {
    return rootCause.getAddional();
  }
 
  @Override
  public Struct getAddional() {
    return rootCause.getAddional();
  }

  public Struct getCatchBlock() {
    return getCatchBlock(ThreadLocalPageContext.getConfig());
  }
 
  @Override
  public Struct getCatchBlock(PageContext pc) {
    return getCatchBlock(pc.getConfig());
  }
 
  @Override
  public CatchBlock getCatchBlock(Config config) {
    CatchBlock cb=rootCause.getCatchBlock(config);
    Collection cause = (Collection) Duplicator.duplicate(cb,false);
    //rtn.setEL("message", getMessage());
    if(!cb.containsKey(KeyConstants._detail))cb.setEL(KeyConstants._detail, "Exception throwed while invoking function ["+eventName+"] from "+Constants.APP_CFC);
    cb.setEL(ROOT_CAUSE, cause);
    cb.setEL(CAUSE, cause);
    //cb.setEL("stacktrace", getStackTraceAsString());
    //rtn.setEL("tagcontext", new ArrayImpl());
    //rtn.setEL("type", getTypeAsString());
    cb.setEL(KeyConstants._name, eventName);
    return cb;
  }

  @Override
  public String getCustomTypeAsString() {
    return rootCause.getCustomTypeAsString();
  }

  @Override
  public String getDetail() {
    return rootCause.getDetail();
  }

  @Override
  public Struct getErrorBlock(PageContext pc, ErrorPage ep) {
    return rootCause.getErrorBlock(pc, ep);
  }

  @Override
  public String getErrorCode() {
    return rootCause.getErrorCode();
  }

  @Override
  public String getExtendedInfo() {
    return rootCause.getExtendedInfo();
  }

  @Override
  public String getStackTraceAsString() {
    return rootCause.getStackTraceAsString();
  }

  @Override
  public int getTracePointer() {
    return rootCause.getTracePointer();
  }

  @Override
  public String getTypeAsString() {
    return rootCause.getTypeAsString();
  }

  @Override
  public void setDetail(String detail) {
    rootCause.setDetail(detail);
  }

  @Override
  public void setErrorCode(String errorCode) {
    rootCause.setErrorCode(errorCode);
  }

  @Override
  public void setExtendedInfo(String extendedInfo) {
    rootCause.setExtendedInfo(extendedInfo);
  }

  @Override
  public void setTracePointer(int tracePointer) {
    rootCause.setTracePointer(tracePointer);
  }

  @Override
  public boolean typeEqual(String type) {
    return rootCause.equals(type);
  }

  @Override
  public DumpData toDumpData(PageContext pageContext, int maxlevel, DumpProperties dp) {
    return rootCause.toDumpData(pageContext,maxlevel,dp);
  }

  /**
   * @return the eventName
   */
  public String getEventName() {
    return eventName;
  }

  public String getLine(Config config) {
    return ((PageExceptionImpl)rootCause).getLine(config);
  }

  @Override
  public Throwable getRootCause() {
    return rootCause.getRootCause();
  }

  @Override
  public StackTraceElement[] getStackTrace() {
    return rootCause.getStackTrace();
  }

  @Override
  public void printStackTrace() {
    rootCause.printStackTrace();
  }

  @Override
  public void printStackTrace(PrintStream s) {
    rootCause.printStackTrace(s);
  }

  @Override
  public void printStackTrace(PrintWriter s) {
    rootCause.printStackTrace(s);
  }

  public PageException getPageException() {
    return rootCause;
  }

}
TOP

Related Classes of railo.runtime.listener.ModernAppListenerException

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.