db-jdo-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Bin Sun <sun2...@yahoo.com>
Subject Re: [VOTE]: Should FetchPlan.getGroups return a copy or a reference?
Date Mon, 31 Jul 2006 01:07:22 GMT
[X] Require the jdo implementation to return a
read-only copy of the underlying Set of groups as it
exists at the time of the call.

FetchPlan.getGroups() should be a state investigation,
keeping the state read-only with no more change from
either inside or outside.

--- Craig L Russell <Craig.Russell@Sun.COM> wrote:

> Javadogs,
> 
> During testing of FetchPlan, Ilan Kirsh discovered
> that the jdo  
> specification doesn't specify whether getGroups
> returns a read-only  
> copy of the set of fetch groups or can return a
> read-only reference  
> to the actual set of fetch groups. [The
> specification does require  
> returning a read-only Set.]
> 
> The TCK as it was written requires a read-only
> reference, not a copy.
> 
> This can result in non-portable behavior, if the
> application code  
> expects a "live" reference instead of a copy. The
> TCK currently has  
> the following code, which depends on the jdo
> implementation returning  
> a "live" reference:
> 
>      public void checkRemoveGroup() {
>          Set expectedGroups = new HashSet();
>          FetchPlan fp = getPM().getFetchPlan();
>          Collection groups = fp.getGroups(); // this
> assumes that  
> groups is updated by the following line
>          fp.removeGroup("default");
>          if (!setEquals(expectedGroups, groups)) {
>              failCompare(
>                  "checkRemoveGroup(): wrong
> getGroups() " +
>                      "after removeGroup.",
>                      expectedGroups, groups);
>          }
>          cleanupPM();
>      }
> 
> Please advise:
> 
> [ ] Leave it alone.
> 
> [ ] Update the specification to note that getGroups
> returns a Set  
> that might change if the underlying Set of groups
> changes (via  
> addGroup, addGroups, removeGroup, removeGroups,
> clearGroups).
> 
> [ ] Require the jdo implementation to return a
> read-only reference to  
> the underlying implementation that will continue to
> track  
> modifications made to the Set of groups.
> 
> [ ] Require the jdo implementation to return a
> read-only copy of the  
> underlying Set of groups as it exists at the time of
> the call.
> 
> Thanks,
> 
> Craig
> 
> Craig Russell
> Architect, Sun Java Enterprise System
> http://java.sun.com/products/jdo
> 408 276-5638 mailto:Craig.Russell@sun.com
> P.S. A good JDO? O, Gasp!
> 
> 


__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com 

Mime
View raw message