ExceptionHelperTest.java :  » Portal » uPortal-3.1.2 » org » jasig » portal » Java Open Source

Java Open Source » Portal » uPortal 3.1.2 
uPortal 3.1.2 » org » jasig » portal » ExceptionHelperTest.java
/**
 * Copyright (c) 2000-2009, Jasig, Inc.
 * See license distributed with this file and available online at
 * https://www.ja-sig.org/svn/jasig-parent/tags/rel-10/license-header.txt
 */
package org.jasig.portal;

import junit.framework.TestCase;

/**
 * Testcase for ExceptionHelper.
 * @author andrew.petro@yale.edu
 * @version $Revision: 45149 $ $Date: 2009-02-25 00:46:57 -0600 (Wed, 25 Feb 2009) $
 */
public class ExceptionHelperTest extends TestCase {

    /**
     * A trace which requires no trimming.
     */
    private String reallyBasicTrace = "Programming error\n" +
    "   org.jasig.portal.PortalException: java.lang.RuntimeException: java.lang.NullPointerException [based on exception: java.lang.NullPointerException]\n" +
    "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:600)\n" +
    "   at org.jasig.portal.UserInstance.writeContent(UserInstance.java:174)\n" +
    "   at org.jasig.portal.PortalSessionManager.doGet(PortalSessionManager.java:234)\n";
    
    /**
     * An example raw stack trace which has only one throwable.
     */
    private String basicTrace = "Programming error\n" +
            "   org.jasig.portal.PortalException: java.lang.RuntimeException: java.lang.NullPointerException [based on exception: java.lang.NullPointerException]\n" +
            "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:600)\n" +
            "   at org.jasig.portal.UserInstance.writeContent(UserInstance.java:174)\n" +
            "   at org.jasig.portal.PortalSessionManager.doGet(PortalSessionManager.java:234)\n" +
            "   at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)\n" +
            "   at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)\n" +
            "   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)\n" +
            "   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)\n" +
            "   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)\n" +
            "   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)\n" +
            "   at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)\n" +
            "   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)\n" +
            "   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)\n" +
            "   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)\n" +
            "   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)\n" +
            "   at java.lang.Thread.run(Thread.java:534)\n";
    
    /**
     * Excpected result of trimming the basic trace.
     */
    private String basicTraceTrimmed = "Programming error\n" +
            "   org.jasig.portal.PortalException: java.lang.RuntimeException: java.lang.NullPointerException [based on exception: java.lang.NullPointerException]\n" +
            "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:600)\n" +
            "   at org.jasig.portal.UserInstance.writeContent(UserInstance.java:174)\n" +
            "   at org.jasig.portal.PortalSessionManager.doGet(PortalSessionManager.java:234)\n";
    
    /**
     * An example raw stack trace which has two throwables in the chain and 
     * only the first throwable need be trimmed.
     */
    private String rawCauseTrace = "Programming error\n" +
            "   org.jasig.portal.PortalException: java.lang.RuntimeException: java.lang.NullPointerException [based on exception: java.lang.NullPointerException]\n" +
            "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:600)\n" +
            "   at org.jasig.portal.UserInstance.writeContent(UserInstance.java:174)\n" +
            "   at org.jasig.portal.PortalSessionManager.doGet(PortalSessionManager.java:234)\n" +
            "   at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)\n" +
            "   at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)\n" +
            "   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)\n" +
            "   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)\n" +
            "   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)\n" +
            "   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)\n" +
            "   at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)\n" +
            "   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)\n" +
            "   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)\n" +
            "   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)\n" +
            "   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)\n" +
            "   at java.lang.Thread.run(Thread.java:534)\n" +
            "Caused by: java.lang.RuntimeException: java.lang.NullPointerException\n" +
            "   at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3407)\n" +
            "   at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:433)\n" +
            "   at org.jasig.portal.utils.SAX2FilterImpl.endDocument(SAX2FilterImpl.java:654)\n" +
            "   at org.jasig.portal.utils.SAX2BufferImpl.outputBuffer(SAX2BufferImpl.java:181)\n" +
            "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:557)\n";
    
    private String trimmedCauseStackTrace = "Programming error\n" +
    "   org.jasig.portal.PortalException: java.lang.RuntimeException: java.lang.NullPointerException [based on exception: java.lang.NullPointerException]\n" +
    "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:600)\n" +
    "   at org.jasig.portal.UserInstance.writeContent(UserInstance.java:174)\n" +
    "   at org.jasig.portal.PortalSessionManager.doGet(PortalSessionManager.java:234)\n" +
    "Caused by: java.lang.RuntimeException: java.lang.NullPointerException\n" +
    "   at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3407)\n" +
    "   at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:433)\n" +
    "   at org.jasig.portal.utils.SAX2FilterImpl.endDocument(SAX2FilterImpl.java:654)\n" +
    "   at org.jasig.portal.utils.SAX2BufferImpl.outputBuffer(SAX2BufferImpl.java:181)\n" +
    "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:557)\n";
    
    
    /**
     * An example raw stack trace which has two throwables in the chain and 
     * both need to be trimmed
     */
    private String complexCauseTrace = "Programming error\n" +
            "   org.jasig.portal.PortalException: java.lang.RuntimeException: java.lang.NullPointerException [based on exception: java.lang.NullPointerException]\n" +
            "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:600)\n" +
            "   at org.jasig.portal.UserInstance.writeContent(UserInstance.java:174)\n" +
            "   at org.jasig.portal.PortalSessionManager.doGet(PortalSessionManager.java:234)\n" +
            "   at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)\n" +
            "   at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)\n" +
            "   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)\n" +
            "   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)\n" +
            "   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)\n" +
            "   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929)\n" +
            "   at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160)\n" +
            "   at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:793)\n" +
            "   at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:702)\n" +
            "   at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:571)\n" +
            "   at org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:644)\n" +
            "   at java.lang.Thread.run(Thread.java:534)\n" +
            "Caused by: java.lang.RuntimeException: java.lang.NullPointerException\n" +
            "   at org.apache.xalan.transformer.TransformerImpl.run(TransformerImpl.java:3407)\n" +
            "   at org.apache.xalan.transformer.TransformerHandlerImpl.endDocument(TransformerHandlerImpl.java:433)\n" +
            "   at org.jasig.portal.utils.SAX2FilterImpl.endDocument(SAX2FilterImpl.java:654)\n" +
            "   at org.jasig.portal.utils.SAX2BufferImpl.outputBuffer(SAX2BufferImpl.java:181)\n" +
            "   at org.jasig.portal.UserInstance.renderState(UserInstance.java:557)\n" +
            "   at javax.servlet.http.HttpServlet.service(HttpServlet.java:697)\n" +
            "   at javax.servlet.http.HttpServlet.service(HttpServlet.java:810)\n" +
            "   at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)\n" +
            "   at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)\n" +
            "   at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)\n" +
            "   at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)\n" +
            "   at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117)\n" +
            "   at org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)\n" +
            "   at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520)\n" +
            "   at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)\n";
    
    /**
     * Test ability to refrain from trimming stack trace where
     * no trimming is necessary.
     */
    public void testNoTrim(){
        assertEquals(this.reallyBasicTrace, 
                ExceptionHelper.trimStackTrace(this.reallyBasicTrace));
    }
    
    /**
     * Test ability to trim a basic stack trace.
     */
    public void testTrimStackTrace(){
        assertEquals(this.basicTraceTrimmed, 
                ExceptionHelper.trimStackTrace(this.basicTrace));
    }
    
    /**
     * Test that a Cause after trimming is maintained.
     */
    public void testCauseTrace() {
       assertEquals(this.trimmedCauseStackTrace, 
               ExceptionHelper.trimStackTrace(this.rawCauseTrace));
    }
    
    /**
     * Test that causes are also properly trimmed.
     */
    public void testTrimCauseTrace() {
        assertEquals(this.trimmedCauseStackTrace, 
                ExceptionHelper.trimStackTrace(this.complexCauseTrace));
    }

}
java2s.com  | Contact Us | Privacy Policy
Copyright 2009 - 12 Demo Source and Support. All rights reserved.
All other trademarks are property of their respective owners.