001 package railo.runtime.ext.tag; 002 003 import javax.servlet.jsp.tagext.TryCatchFinally; 004 005 import railo.loader.engine.CFMLEngineFactory; 006 import railo.runtime.exp.PageServletException; 007 import railo.runtime.util.Excepton; 008 009 010 /** 011 * extends Body Support Tag eith TryCatchFinally Functionality 012 */ 013 public abstract class BodyTagTryCatchFinallySupport extends BodyTagSupport implements TryCatchFinally { 014 015 /** 016 * @see javax.servlet.jsp.tagext.TryCatchFinally#doCatch(java.lang.Throwable) 017 */ 018 public void doCatch(Throwable t) throws Throwable { 019 if(t instanceof PageServletException) { 020 PageServletException pse=(PageServletException)t; 021 t=pse.getPageException(); 022 } 023 if(bodyContent!=null) { 024 Excepton util = CFMLEngineFactory.getInstance().getExceptionUtil(); 025 if(util.isOfType(Excepton.TYPE_ABORT,t)) { 026 bodyContent.writeOut(bodyContent.getEnclosingWriter()); 027 } 028 bodyContent.clearBuffer(); 029 } 030 throw t; 031 } 032 033 /** 034 * @see javax.servlet.jsp.tagext.TryCatchFinally#doFinally() 035 */ 036 public void doFinally() { 037 038 } 039 040 }