commons-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Phil Steitz (Commented) (JIRA)" <>
Subject [jira] [Commented] (POOL-203) GenericKeyedObjectPool.ObjectDeque could be better encapsulated
Date Mon, 19 Dec 2011 08:14:30 GMT


Phil Steitz commented on POOL-203:

I tend to agree with Mark on this.  It may be a matter of taste; but I see it as desirable
actually that "the main code" be aware of the internals of this particular data structure.
 It makes the code easier for me to understand and trace.  There are a lot of things that
you have to hold in your head when working with this code, no matter how you cut it and having
more of the structure immediately evident makes it a little easier to work with. Better in-line
and javadoc documentation explaining all of the invariants and contracts is definitely needed;
but I am not sure more data abstraction will really help much at this point.  Also, the first
two above are likely trivial because they are not accessed that frequently, but the last one
might have a slight negative performance impact, as it is very frequently activated and, like
the other two, forces an additional stack operation to activate the wrapper function.
> GenericKeyedObjectPool.ObjectDeque could be better encapsulated
> ---------------------------------------------------------------
>                 Key: POOL-203
>                 URL:
>             Project: Commons Pool
>          Issue Type: Improvement
>            Reporter: Sebb
>            Priority: Minor
> GenericKeyedObjectPool.ObjectDeque is currently basically just a collection of Objects
with getters.
> This necessarily exposes the implementation, and makes adding invariant checks a lot
harder - e.g. ensuring createCount >=0.
> The suggestion is to replace the getters with functional methods, for example:
> objectDeque.getCreateCount().incrementAndGet() => objectDeque.createdEntry();
> objectDeque.getAllObjects().put(t, p); => objectDeque.addNew(t, p);
> objectDeque.getIdleObjects().addFirst(p)/addLast(p) => objectDeque.idle(p,getLifo())
> The new methods could include assertions for invariants, and adding debug would be a

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:!default.jspa
For more information on JIRA, see:


View raw message