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