harmony-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Prashanth KS (JIRA)" <j...@apache.org>
Subject [jira] Commented: (HARMONY-6678) [classlib][concurrent]ArrayIndexOutofBounds exception reported in ConcurrentSkipListSet during load test
Date Fri, 26 Nov 2010 06:42:17 GMT

    [ https://issues.apache.org/jira/browse/HARMONY-6678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12935942#action_12935942

Prashanth KS commented on HARMONY-6678:

Hi Regis
Could you explain in detail about your comments?
1) Could the two level loops be simplified to one level?  Which two levels?
The while loop and the for loop? These levels have been introduced for
clearly demarcating the array resizing and the copy portions.

2) I had the same thought about making the trim method generic, but was also
having a thought on why we should be repeating the code in toArray() to
toArray(T[]). Moreover, the docs say,

"If this collection fits in the specified array with room to spare (i.e.,
the array has more elements than this collection), the element in the array
immediately following the end of the collection is set to null. (This is
useful in determining the length of this collection *only* if the caller
knows that this collection does not contain any null elements.) "

If I employ the array resizing technique, then I have to again add logic to
implement the above, because the arrays are resized perfectly as per the
above technique. The patch that I have provided takes care of this, though
it takes an extra copy. I will try to work this out and reduce the copy.

We can commit this patch for now and probably discuss the improvements of
these methods in a separate mail chain.



> [classlib][concurrent]ArrayIndexOutofBounds exception reported in ConcurrentSkipListSet
during load test
> --------------------------------------------------------------------------------------------------------
>                 Key: HARMONY-6678
>                 URL: https://issues.apache.org/jira/browse/HARMONY-6678
>             Project: Harmony
>          Issue Type: Bug
>          Components: Classlib
>    Affects Versions: 6.0M3
>         Environment: All Operating Systems
>            Reporter: Prashanth KS
>             Fix For: 6.0M3
>         Attachments: 001_HARMONY_6678.patch, 002_HARMONY_6678.patch
> An ArrayIndexOutofBoundsException is thrown when the toArray(T[]) method is invoked,
under load test with multiple threads. Concurrent updates to the collection results in changing
Iterator sizes. As per the Javadocs, the result of the toArray(T[]) should return as much
elements possible from the Collection. 
> A toArray(T[]) method override has been implemented in ConcurrentSkipListSet and the
bounds check has been included in the base class AbstractCollection to prevent this exception.

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message