[ http://issues.apache.org/jira/browse/IBATIS-251?page=all ]
     
Clinton Begin closed IBATIS-251:
--------------------------------

    Resolution: Invalid
     Assign To: Clinton Begin

This is already handled by using the readOnly and/or serialize flags 

Page 32 of the user guide.  

http://internap.dl.sourceforge.net/sourceforge/ibatisdb/iBATIS-SqlMaps-2.pdf

For what you're doing, I'd suggest readOnly="false" and serialize="true"

Remember, all of your beans will need to implement Serializable.

Cheers,
Clinton

> Beans in cache can be changed without persistence
> -------------------------------------------------
>
>          Key: IBATIS-251
>          URL: http://issues.apache.org/jira/browse/IBATIS-251
>      Project: iBatis for Java
>         Type: Bug
>   Components: SQL Maps
>     Versions: 2.1.6
>  Environment: Resin 3/Linux/Spring
>     Reporter: Reuben Firmin
>     Assignee: Clinton Begin

>
> The following code illustrates the problem:
> Foo foo1 = dao.getFoo(fooId);
> foo1.setBah(true);
> try {
>     dao.updateFoo(foo1);
> } catch (Exception e) {
>     Foo foo2 = dao.getFoo(fooId);
>     if (foo2.getBah())
>         System.err.println("The bug!");
> }
> Assume the dao method throws an exception due to validation failure, prior to 
> any calls being made to the database.
> The problem is that because a reference foo1 is obtained from the dao (which 
> uses the built in caching), we are now pointing to the same bean that is in 
> the cache. So, even if we don't persist foo1 to the database, the cached copy 
> of foo1 contains the mutated properties; system wide, our change is instantly 
> propagated. This is IMO a pretty serious issue.
> A fix would be to make the cache return cloned beans, or have the cache build 
> new beans based on the setter/getter properties; or similar. In any case, the 
> desired effect is that the bean that the cache references NOT be mutatable by 
> the rest of the system.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to