I did end up making a fix that seems to be working. I changed the
org.apache.jetspeed.page.document.impl.NodeSetImpl constructor to use the
toArray() instead of iterator()
public NodeSetImpl(List nodes, Comparator comparator)
{
this.nodes = new TreeMap(comparator);
Object[] nodeToCopy = nodes.toArray();
for (Object n : nodeToCopy)
{
Node node = (Node)n;
if (!this.nodes.containsKey( node.getName()))
{
this.nodes.put(node.getName(), node);
}
}
this.comparator = comparator;
}
I have been pushing about 10 page requests per second through for about
24hrs and haven't seen any issues.
On 12/5/06, Ethan Adams <[EMAIL PROTECTED] > wrote:
Unfortunately, I haven't been able to put the time into resolving this. I
think the affects multiple places due to the Fail-safe nature of the
iterator. I could be wrong though...
On 12/4/06, David Sean Taylor <[EMAIL PROTECTED]> wrote:
>
> Ethan Adams wrote:
> > I often run into ConcurrentModificationExceptions around
> RemovalAwareLists
> > while Portal is under load.
> >
> > My first thought is that DatabasePageManagerUtils.createList() should
> wrap
> > RemovalAwareList objects to make them thread safe. Is there a reason
> this
> > isn't done?
> >
> Im going to make a concurrency pass over the code base this month.
> I'll add that to the list of areas to synchronize
> Or if you would like to send patch...
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>