JDO
  1. JDO
  2. JDO-398

Add servlet Filter utility class managing a PersistenceManager per request

    Details

      Description

      I propose to add a new class JDOFilter implementing a servlet filter (interface javax.servlet.Filter) to a new package org.apache.jdo.util.web for web support utility classes. The filter init method creates a PMF instance. Method doFilter creates a PersistenceManager, stores it as a request attribute and then calls the filter chain. It closes the PersistenceManager after the chain returns. The PMF is closed in the filter method destroy.

      1. JDO-398.patch
        14 kB
        Michael Bouschen

        Activity

        Hide
        Michael Bouschen added a comment -

        Any failure in initialization of the PMF results in a ServletException or in a JDOException which is a RuntimeException. Both get logged by the web container, if logging is configured to print error logs.

        I updated the implementation and checked it in (see revision 424813).

        Show
        Michael Bouschen added a comment - Any failure in initialization of the PMF results in a ServletException or in a JDOException which is a RuntimeException. Both get logged by the web container, if logging is configured to print error logs. I updated the implementation and checked it in (see revision 424813).
        Hide
        Craig L Russell added a comment -

        The filter looks good. It is vaguely familiar. I recall seeing similar code in a JavaOne presentation a few years back.

        If the init getPersistenceManagerFactory call fails, have you looked at how the error is reported? You have special code to log some configuration errors, but nothing explicit for the getPersistenceManagerFactory call, which in my experience is the most likely API to fail. It might be good to wrap the call with try/catch and log the exception at level SEVERE. If you've already tested that a failure in init does the appropriate logging, you can ignore this.

        There are several >80 character lines.

        Show
        Craig L Russell added a comment - The filter looks good. It is vaguely familiar. I recall seeing similar code in a JavaOne presentation a few years back. If the init getPersistenceManagerFactory call fails, have you looked at how the error is reported? You have special code to log some configuration errors, but nothing explicit for the getPersistenceManagerFactory call, which in my experience is the most likely API to fail. It might be good to wrap the call with try/catch and log the exception at level SEVERE. If you've already tested that a failure in init does the appropriate logging, you can ignore this. There are several >80 character lines.
        Hide
        Michael Bouschen added a comment -

        Attached is a patch JDO-398.patch for review. It adds a new class JDOFilter to the util20 subproject.

        Show
        Michael Bouschen added a comment - Attached is a patch JDO-398 .patch for review. It adds a new class JDOFilter to the util20 subproject.

          People

          • Assignee:
            Michael Bouschen
            Reporter:
            Michael Bouschen
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development