[
https://issues.apache.org/jira/browse/PDFBOX-4664?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16948229#comment-16948229
]
Andreas Lehmkühler commented on PDFBOX-4664:
--------------------------------------------
[~msahyoun] No objection, please go ahead. Maybe you want to start with some
code I've already hacked down for the Iterator
{code:java}
private class Iter implements Iterator<E> {
private final Iterator<E> actualIterator;
final COSArray array;
E lastReturnedElement = null;
Iter(Iterator<E> actualIterator, COSArray array)
{
this.actualIterator = actualIterator;
this.array = array;
}
@Override
public boolean hasNext()
{
return actualIterator.hasNext();
}
@Override
public E next()
{
lastReturnedElement = actualIterator.next();
return lastReturnedElement;
}
@Override
public void remove()
{
if (lastReturnedElement != null)
{
actualIterator.remove();
array.remove((COSBase)lastReturnedElement);
lastReturnedElement = null;
}
else
{
throw new IllegalStateException();
}
}
@Override
public void forEachRemaining(Consumer<? super E> action)
{
actualIterator.forEachRemaining(action);
}
}
{code}
> Iterator.remove() does not work in COSArrayList
> -----------------------------------------------
>
> Key: PDFBOX-4664
> URL: https://issues.apache.org/jira/browse/PDFBOX-4664
> Project: PDFBox
> Issue Type: Bug
> Affects Versions: 2.0.17
> Reporter: Zhichao Yang
> Assignee: Andreas Lehmkühler
> Priority: Minor
>
> {code:java}
> for (Iterator itr = pdfPage.getAnnotations().iterator(); itr.hasNext(); ) {
> itr.remove();
> }
> {code}
> This is not working on annotations list because cosArrayList.iterator() is
> cosArrayList.actual.iterator(), but when convert to a COSArray it uses
> cosArrayList.array, which is not affected by iterator.remove(). A iterator to
> sync the actual and the array would be nice.
--
This message was sent by Atlassian Jira
(v8.3.4#803005)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]