cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Emanuele Maiarelli" <>
Subject data synch problem with cayenne 2.0.4.
Date Wed, 17 Mar 2010 13:59:50 GMT
I found a data synchronization issue with cayenne 2.0.4


The system consist in many swing applications interfacing with cayenne using
ROPs. Plus a series of servelts that exposes data as XML or webservices.


I found that an xml servlet was exposing a previous image of data, I
verified that datas using the Swing/ROP client and they was updated.


So  inorder to verify the source of the problem I had to restart the servlet
container (Tomcat, that contain the Hessian servlet too).


As I restarted tomcat the XML data go in synch with both Database and
swing/rop data.


Then I started checking the servlet code and I found an error.


Servelt processed data as follow:


protected void processRequest(HttpServletRequest request,
HttpServletResponse response)

    throws ServletException, IOException {



        HttpSession sess=request.getSession();

        DataContext dc= ServletUtil.getSessionContext(sess);

        String serviceType=request.getParameter("service");


        try {


            CayenneServiceInterface serv = (CayenneServiceInterface)




            sb.append(serv.getData(dc, params));


        } catch (Exception ex) {




So far servlet instance various objects implementing my
CayenneServiceInterface interface, pass to instanced object a context
obtained with DataContext dc= ServletUtil.getSessionContext(sess), so a
session bound context, the instanced object elaborates the xml response.


Looking into the specific object that created the inconsistent xml I found
this error:

The method serv.getData instead of using the DataContext obtained via
ServletUtil.getSessionContext(sess),  create a DataContext on spot


DataContext context = DataContext.createDataContext();

        List v = context.performQuery(q);

        Iterator it = v.iterator();



My question is if this error could lead to the inconsistency I found


Thanks in advice,










  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message