Issue Details (XML | Word | Printable)

Key: JDO-398
Type: Task Task
Status: Resolved Resolved
Resolution: Fixed
Priority: Minor Minor
Assignee: Michael Bouschen
Reporter: Michael Bouschen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
JDO

Add servlet Filter utility class managing a PersistenceManager per request

Created: 19/Jul/06 07:28 PM   Updated: 23/Jul/06 08:56 PM
Return to search
Component/s: util2
Affects Version/s: JDO 2 final
Fix Version/s: JDO 2 maintenance release 1

Time Tracking:
Not Specified

File Attachments:
  Size
Text File Licensed for inclusion in ASF works JDO-398.patch 2006-07-19 07:32 PM Michael Bouschen 14 kB

Resolution Date: 23/Jul/06 08:56 PM


 Description  « Hide
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.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Michael Bouschen added a comment - 19/Jul/06 07:32 PM
Attached is a patch JDO-398.patch for review. It adds a new class JDOFilter to the util20 subproject.

Craig Russell added a comment - 19/Jul/06 09:03 PM
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.


Michael Bouschen added a comment - 23/Jul/06 08:56 PM
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).