Java Mailing List Archive

http://www.junlu.com/

Google
Google
Mailing List
Home
Forum Home
JBoss - Java Application Server
Tomcat - JSP/Servlet container
Struts - A MVC web framework
iText - An open source PDF Java Library
JDOM - JDOM XML Parser
JSP - A mailing list about Java Server Pages specification and reference
J2EE - A mailing list for Java(tm) 2 Platform, Enterprise Edition
J2EE Pattern - An interest list for Sun Java Center J2EE Pattern Catalog
Servlet - A mailing list for discussion about Sun Microsystem's Java Servlet API Technology
Struts & Hibernate
Subjects
JSP editor plugin for eclipse ?
org apache jasper JasperException: Unable to compile class for JSP
Tomcat: Connection reset by peer: socket write error
Cannot retrieve definition for form bean null
Struts Tiles Tutorial (free Struts training)
Where do I download Tomcat 4 0 6?
Data Access Object (DAO) pattern, example DAO 's
Where to download Tomcat v 4 1 24 from?
Tomcat 5 0 16 Requested resource not available
Servlet : Session invalidate
Oracle Connection Pooling in 3 2 2
Servlet action is currently unavailable
Tomcat/Struts Unicode Encoding/Decoding problems
Running a Simple JMS Example
Tomcat and webapplication specific java library path
Mapping in workers2 properties
org apache jasper JasperException
problem with html:text bean throwing exception
Cannot find message resources under key org apache struts action
   MESSAGE
Cannot find message resources under key org apache struts action MESSAGE
invalid direct reference problem with solution
Tool for jsp debug Try Sysdeo Eclipse Plugin
Tomcat 5 Cannot load JDBC driver class 'null ' SQL state: null
weblogic ejbc
java properties file
Jboss 3 2 3 Coyote Can 't re
Tomcat 5, Apache2 and mod jk2 integration problem
JBoss example problem new to J2EE
Value attribute of <html:checkbox
url string for connecting jboss to oracle
javax servlet ServletException: BeanUtils populate
5 0 18: Windows XP Pro vs Windows 2000
HTTP Status 404 The requested resource is not available
 
-none-

-none-

2007-10-01       - By Jon_French@(protected)

 Back
OK: I've fixed the problem.

I'm not sure why this was the case, but here is what was causing the
problem:

In my ModelDriven action, I had a method like this:

   public Collection<ProjectType> getAllProjectTypes(){
       return this.projectTypeDao.getAll();
   }

Notice that instead of returning a simple instance reference, this method
actually returned the result of a JPA query (via the DAO method call).

This method was used by a struts 2 iterator tag to populate a select list
on the form and was thus called when my "input" JSP rendered after an
invalid request.

I noticed that in the stack trace of my Oracle constraint violation, it
was actually this query call that was triggering the Session.flush() call
that was inappropriately saving the invalid entity state to the database.
By "pre-loading" the collection in the prepare() method like so:

   public void prepare() throws Exception {
      ....
      this.allProjectTypes = this.projectTypeDao.getAll();
   }

   public Collection<ProjectType> getAllProjectTypes(){
       return this.allProjectTypes;
   }

... the problematic flush() goes away.

Beats me why this matters. I'm sure a JPA guru could explain something
about the Transaction or EntityManager instance being different in the two
cases, but I don't understand it yet.

Jon French
Programmer
ASRC Management Services
ECOS Development Team
jon_french@(protected)
970-226-9290

Fort Collins Science Center
US Geological Survey
2150 Centre Ave, Building C
Fort Collins, CO 80526-8116



Jon_French@(protected)
10/01/2007 08:29 PM
Please respond to
"Struts Users Mailing List" <user@(protected)>


To
"Struts Users Mailing List" <user@(protected)>
cc

Subject
Re: ModelDriven CRUD validation failure still causes JPA update






Unfortunately, it appears that xworks validation works not on the
ServletRequest parameters, but on the properties already set on the Action

- or in my case the model bean. So moving the interceptor up the stack
would just break validation.


©2008 junlu.com - Jax Systems, LLC, U.S.A.