Don,

I've tried to produce a unit test to open an issue for Jasper... and failed.

I'm now quite sure that this is a bug in the JVM used for GAE.

The JavaDoc of AccessController.doPrivileged (which is a native method) 
says that it propagates unchecked exceptions and throws a 
PrivilegedActionException only if a *checked* exception was thrown. 
Therefore Jasper code is correct not to await a RuntimeException as a 
PrivilegedActionException can't contain a NullPointerException and GAE's 
JVM is buggy here.

Cheers,
Marc.

Don Schwarz a écrit :
> Ah, you're right actually.  I hadn't looked closely enough at that bug.
> 
> We'll have to get the Jasper guys to fix that and then upgrade.
> 
> Thanks,
> Don
> 
> On Mon, Oct 19, 2009 at 10:39 AM, Marc Guillemot <mguille...@yahoo.fr 
> <mailto:mguille...@yahoo.fr>> wrote:
> 
> 
>     This seems to be a really old issue that relates to something
>     different... or do you mean that GAE uses a 5 years old version of
>     Jasper?
> 
>     I've just look at the current sources of PageContextImpl
>     
> http://svn.apache.org/repos/asf/tomcat/trunk/java/org/apache/jasper/runtime/PageContextImpl.java
>     and it seems to me that the problem still exists there.
> 
>     Cheers,
>     Marc.
> 
>     Don Schwarz a écrit :
>      > Yes, this is:
>      >
>      > https://issues.apache.org/bugzilla/show_bug.cgi?id=31171
>      >
>      > We need to bundle a later version of Jasper with the App Engine
>     SDK to
>      > fix this.
>      >
>      > On Mon, Oct 19, 2009 at 10:24 AM, Marc Guillemot
>     <mguille...@yahoo.fr <mailto:mguille...@yahoo.fr>
>      > <mailto:mguille...@yahoo.fr <mailto:mguille...@yahoo.fr>>> wrote:
>      >
>      >
>      >     Hi,
>      >
>      >     any progress on this issue?
>      >
>      >     Is it possible that it comes from a bug in Jasper, not able
>     to recognize
>      >     RuntimeException occurring in a PrivilegedExceptionAction?
>      >
>      >     // org.apache.jasper.runtime.PageContextImpl
>      >
>      >     public void handlePageException(final Throwable t) throws
>     IOException,
>      >         ServletException {
>      >       if (t == null)
>      >         throw new NullPointerException("null Throwable");
>      >
>      >       if (SecurityUtil.isPackageProtectionEnabled()) {
>      >         try {
>      >           AccessController.doPrivileged(
>      >               new PrivilegedExceptionAction<Void>() {
>      >             public Void run() throws Exception {
>      >               doHandlePageException(t);
>      >               return null;
>      >             }
>      >           });
>      >         } catch (PrivilegedActionException e) {
>      >           Exception ex = e.getException();
>      >           if (ex instanceof IOException) {
>      >             throw (IOException) ex;
>      >           } else {
>      >             throw (ServletException) ex; <------ here?
>      >           }
>      >         }
>      >       } else {
>      >         doHandlePageException(t);
>      >       }
>      >
>      >     }
>      >
>      >     Cheers,
>      >     Marc.
>      >
>      >     Toby Reyelts a écrit :
>      >      > There's an outstanding issue in the version of Jasper App
>     Engine is
>      >      > currently using that can cause exceptions escaping a JSP to be
>      >      > incorrectly cast to ServletException. As a temporary
>     workaround,
>      >     you can
>      >      > wrap the body of your JSP in a try-catch block to get the
>     actual
>      >     exception.
>      >      >
>      >      > On Thu, Jul 30, 2009 at 1:13 PM, Blessed Geek
>      >     <blessedg...@gmail.com <mailto:blessedg...@gmail.com>
>     <mailto:blessedg...@gmail.com <mailto:blessedg...@gmail.com>>
>      >      > <mailto:blessedg...@gmail.com
>     <mailto:blessedg...@gmail.com> <mailto:blessedg...@gmail.com
>     <mailto:blessedg...@gmail.com>>>> wrote:
>      >      >
>      >      >
>      >      >    
>     http://cuckooberra.blessed-are-the-geek.com/TableMgr/TableMgr.jsp
>      >      >
>      >      >     Any idea what this error log means? LoggedIn.jsp is a
>     rather
>      >     simple
>      >      >     jsp, getting a temp authtoken and exchanging it for a
>      >     permanent one.
>      >      >     My app runs fine on local eclipse plugin, but on
>     deployment
>      >     this error
>      >      >     resulted.
>      >      >
>      >      >     07-30 07:30AM 49.848
>      >      >     /TableMgr/LoggedIn.jsp
>      >      >     java.lang.ClassCastException:
>     java.lang.NullPointerException
>      >     cannot be
>      >      >     cast to javax.servlet.ServletException
>      >      >            at
>      >     org.apache.jasper.runtime.PageContextImpl.handlePageException
>      >      >     (PageContextImpl.java:754)
>      >      >
>      >      >
>      >      >
>      >      >
>      >      > >
>      >
>      >
>      >
>      >
>      >
>      > >
> 
> 
> 
> 
> 
> > 


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-java@googlegroups.com
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to