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 -~----------~----~----~----~------~----~------~--~---