weaver      2004/11/29 11:14:45

  Modified:    portal/src/java/org/apache/jetspeed/engine
                        JetspeedServlet.java AbstractEngine.java
               portal/src/java/org/apache/jetspeed/security/impl
                        SecurityValveImpl.java
  Log:
  Removed repetitive logging of exceptions and allow exceptions to bubble all 
the way up to the JetspeedServlet so that they can be reported to the user 
instead of just getting a blank web page.
  
  Revision  Changes    Path
  1.9       +13 -14    
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/engine/JetspeedServlet.java
  
  Index: JetspeedServlet.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/engine/JetspeedServlet.java,v
  retrieving revision 1.8
  retrieving revision 1.9
  diff -u -r1.8 -r1.9
  --- JetspeedServlet.java      16 Aug 2004 13:27:03 -0000      1.8
  +++ JetspeedServlet.java      29 Nov 2004 19:14:44 -0000      1.9
  @@ -17,20 +17,18 @@
   
   import java.io.IOException;
   
  -import javax.servlet.http.HttpServlet;
  -import javax.servlet.ServletException;
   import javax.servlet.ServletConfig;
   import javax.servlet.ServletContext;
  +import javax.servlet.ServletException;
  +import javax.servlet.http.HttpServlet;
   import javax.servlet.http.HttpServletRequest;
   import javax.servlet.http.HttpServletResponse;
   
   import org.apache.commons.configuration.Configuration;
   import org.apache.commons.configuration.PropertiesConfiguration;
   import org.apache.commons.lang.exception.ExceptionUtils;
  -
   import org.apache.commons.logging.Log;
   import org.apache.commons.logging.LogFactory;
  -
   import org.apache.jetspeed.Jetspeed;
   import org.apache.jetspeed.engine.servlet.ServletHelper;
   import org.apache.jetspeed.exception.JetspeedException;
  @@ -151,11 +149,11 @@
               catch (Throwable e)
               {
                   // save the exception to complain loudly later :-)
  -                initFailure = e;
  -                log.fatal("Jetspeed: init() failed: ", e);
  -                console.fatal("Jetspeed: init() failed: ", e);
  -                System.err.println(ExceptionUtils.getStackTrace(e));
  -                throw new ServletException("Jetspeed: init() failed", e);
  +                final String msg = "Jetspeed: init() failed: ";
  +                initFailure = e;               
  +                log.fatal(msg, e);
  +                console.fatal(msg, e);
  +
               }
   
               console.info(INIT_DONE_MSG);
  @@ -205,7 +203,7 @@
               // Check to make sure that we started up properly.
               if (initFailure != null)
               {
  -                throw initFailure;
  +                throw new ServletException("Failed to initalize jetspeed.  
"+initFailure.toString(), initFailure);
               }
   
               // If this is the first invocation, perform some late
  @@ -229,10 +227,11 @@
               }
   
           }
  -        catch (Throwable t)
  +        catch (JetspeedException e)
           {
  -            t.printStackTrace();
  -            //handleException(data, req, res, t);
  +            final String msg = "Fatal error encountered while processing 
portal request: "+e.toString();
  +            log.fatal(msg, e);
  +            throw new ServletException(msg, e);
           }
       }
   
  
  
  
  1.12      +12 -20    
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/engine/AbstractEngine.java
  
  Index: AbstractEngine.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/engine/AbstractEngine.java,v
  retrieving revision 1.11
  retrieving revision 1.12
  diff -u -r1.11 -r1.12
  --- AbstractEngine.java       11 Nov 2004 19:20:45 -0000      1.11
  +++ AbstractEngine.java       29 Nov 2004 19:14:44 -0000      1.12
  @@ -221,8 +221,8 @@
       public void service( RequestContext context ) throws JetspeedException
       {
           // requestContextPerThread.put(Thread.currentThread(), context);
  -        try
  -        {
  +
  +
               if (useInternalJNDI)
               {
                   // bind the current JNDI context to this service thread.
  @@ -230,7 +230,14 @@
                           .getComponent(JNDIComponent.class);
                   if (jndi != null)
                   {
  -                    jndi.bindToCurrentThread();
  +                    try
  +                    {
  +                        jndi.bindToCurrentThread();
  +                    }
  +                    catch (NamingException e)
  +                    {
  +                        throw new JetspeedException("Unable bind jndi: 
"+e.toString(), e);
  +                    }
                   }
               }
               String targetPipeline = context
  @@ -250,22 +257,7 @@
                   }
               }
               pipeline.invoke(context);
  -        }
  -        catch (Throwable t)
  -        {
  -            String msg = "JetspeedEngine unable to service request: "
  -                    + t.toString();
  -            log.error(msg, t);
  -            try
  -            {
  -                // throw new JetspeedException(msg, t);
  -                t.printStackTrace(context.getResponse().getWriter());
  -            }
  -            catch (IOException e)
  -            {
  -                log.error("Failed to write error to response "+e.toString(), 
e);
  -            }
  -        }
  +   
       }
   
       /**
  
  
  
  1.11      +25 -24    
jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java
  
  Index: SecurityValveImpl.java
  ===================================================================
  RCS file: 
/home/cvs/jakarta-jetspeed-2/portal/src/java/org/apache/jetspeed/security/impl/SecurityValveImpl.java,v
  retrieving revision 1.10
  retrieving revision 1.11
  diff -u -r1.10 -r1.11
  --- SecurityValveImpl.java    25 Nov 2004 02:25:58 -0000      1.10
  +++ SecurityValveImpl.java    29 Nov 2004 19:14:45 -0000      1.11
  @@ -31,6 +31,7 @@
   import org.apache.jetspeed.pipeline.valve.ValveContext;
   import org.apache.jetspeed.profiler.Profiler;
   import org.apache.jetspeed.request.RequestContext;
  +import org.apache.jetspeed.security.SecurityException;
   import org.apache.jetspeed.security.SecurityHelper;
   import org.apache.jetspeed.security.User;
   import org.apache.jetspeed.security.UserManager;
  @@ -38,8 +39,8 @@
   
   /**
    * SecurityValve
  - *
  - * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor</a>
  + * 
  + * @author <a href="mailto:[EMAIL PROTECTED]">David Sean Taylor </a>
    * @version $Id$
    */
   public class SecurityValveImpl extends AbstractValve implements 
org.apache.jetspeed.pipeline.valve.SecurityValve
  @@ -47,20 +48,20 @@
       private static final Log log = 
LogFactory.getLog(SecurityValveImpl.class);
       private Profiler profiler;
       private UserManager userMgr;
  -    
  -    public SecurityValveImpl(Profiler profiler, UserManager userMgr)
  +
  +    public SecurityValveImpl( Profiler profiler, UserManager userMgr )
       {
           this.profiler = profiler;
           this.userMgr = userMgr;
       }
   
       /**
  -     * @see 
org.apache.jetspeed.pipeline.valve.Valve#invoke(org.apache.jetspeed.request.RequestContext,
 org.apache.jetspeed.pipeline.valve.ValveContext)
  +     * @see 
org.apache.jetspeed.pipeline.valve.Valve#invoke(org.apache.jetspeed.request.RequestContext,
  +     *          org.apache.jetspeed.pipeline.valve.ValveContext)
        */
  -    public void invoke(RequestContext request, ValveContext context) throws 
PipelineException
  +public void invoke(RequestContext request, ValveContext context) throws 
PipelineException
       {
  -        try
  -        {
  +
               // initialize/validate security subject
   
               // access request user principal if defined or default
  @@ -102,6 +103,7 @@
                   {
                       subject = null;
                   }
  +           
                   
                   // if subject not available, generate default subject using
                   // request or default profiler anonymous user principal
  @@ -119,33 +121,32 @@
               // set request context subject
               request.setSubject(subject);
               
  -            // Pass control to the next Valve in the Pipeline and execute 
under the current subject
  +            // Pass control to the next Valve in the Pipeline and execute 
under
  +            // the current subject
               final ValveContext vc = context;
               final RequestContext rc = request;            
  -            Subject.doAsPrivileged(subject, new PrivilegedAction()
  +            PipelineException pe = (PipelineException) 
Subject.doAsPrivileged(subject, new PrivilegedAction()
               {
  -                public Object run()
  +                public Object run() 
                   {
  -                    try 
  +                     try
                       {
  -                        vc.invokeNext(rc);
  +                        vc.invokeNext(rc);                 
  +                        return null;
                       }
                       catch (PipelineException e)
  -                    {                        
  -                    }
  -                    return null;                    
  +                    {
  +                        return e;
  +                    }                    
                   }
               }, null);
               
  -        }
  -        catch (Throwable t)
  -        {
  -            // TODO: valve exception handling formalized
  -            t.printStackTrace();
  -        }
  +            if(pe != null)
  +            {
  +                throw pe;
  +            }       
   
       }
  -
       public String toString()
       {
           return "SecurityValve";
  
  
  

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to