Bug 530722 - ConcurrentModificationException below PHPUnitElementTreeContentProvider.get (thrown in LinkedHashMap$LinkedHashIterator.nextNode)
Summary: ConcurrentModificationException below PHPUnitElementTreeContentProvider.get (...
Status: CLOSED FIXED
Alias: None
Product: z_Archived
Classification: Eclipse Foundation
Component: PDT (show other bugs)
Version: unspecified   Edit
Hardware: All All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: PHP UI CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2018-02-05 06:56 EST by EPP Error Reports CLA
Modified: 2020-05-14 13:16 EDT (History)
3 users (show)

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description EPP Error Reports CLA 2018-02-05 06:56:44 EST
The following problem was reported via the automated error reporting:

Message: Unhandled event loop exception
java.util.ConcurrentModificationException: null
    at java.util.LinkedHashMap$LinkedHashIterator.nextNode(null:-1)
    at java.util.LinkedHashMap$LinkedKeyIterator.next(null:-1)
    at java.util.AbstractCollection.toArray(null:-1)
    at java.util.ArrayList.addAll(null:-1)
    at org.eclipse.php.phpunit.model.providers.PHPUnitElementTreeContentProvider.get(PHPUnitElementTreeContentProvider.java:42)
    at org.eclipse.php.phpunit.model.providers.PHPUnitElementTreeContentProvider.getElements(PHPUnitElementTreeContentProvider.java:33)
    at org.eclipse.jface.viewers.StructuredViewer.getRawChildren(StructuredViewer.java:1001)
    at org.eclipse.jface.viewers.ColumnViewer.getRawChildren(ColumnViewer.java:701)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getRawChildren(AbstractTreeViewer.java:1349)
    at org.eclipse.jface.viewers.TreeViewer.getRawChildren(TreeViewer.java:341)
    at org.eclipse.jface.viewers.StructuredViewer.getFilteredChildren(StructuredViewer.java:907)
    at org.eclipse.jface.viewers.AbstractTreeViewer.getSortedChildren(AbstractTreeViewer.java:621)
    at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren(AbstractTreeViewer.java:2635)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct(AbstractTreeViewer.java:1913)
    at org.eclipse.jface.viewers.TreeViewer.internalRefreshStruct(TreeViewer.java:669)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1888)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1845)
    at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh(AbstractTreeViewer.java:1831)
    at org.eclipse.jface.viewers.StructuredViewer.lambda$0(StructuredViewer.java:1519)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1458)
    at org.eclipse.jface.viewers.TreeViewer.preservingSelection(TreeViewer.java:354)
    at org.eclipse.jface.viewers.StructuredViewer.preservingSelection(StructuredViewer.java:1419)
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1519)
    at org.eclipse.jface.viewers.ColumnViewer.refresh(ColumnViewer.java:523)
    at org.eclipse.jface.viewers.StructuredViewer.refresh(StructuredViewer.java:1478)
    at org.eclipse.php.phpunit.ui.view.TestViewer.processChangesInUI(TestViewer.java:383)
    at org.eclipse.php.phpunit.ui.view.PHPUnitView.processChangesInUI(PHPUnitView.java:244)
    at org.eclipse.php.phpunit.ui.view.PHPUnitView.lambda$1(PHPUnitView.java:252)
    at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
    at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182)
    at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4211)



Bundles:
| org.eclipse.jface | 3.12.2.v20170113-2113 | 3.12.2.v20170113-2113 |
| org.eclipse.php.phpunit | 5.3.0.201801312350 | 5.3.0.201801312350 |
| org.eclipse.swt | 3.105.3.v20170228-0512 | 3.105.3.v20170228-0512 |

Operating Systems:
| Windows | 6.3.0 | 6.3.0 |


The above information is a snapshot of the collected data. Visit https://dev.eclipse.org/recommenders/committers/aeri/v2/#!/problems/5a73854ae4b02aaf8b28439f for the latest data.

Thank you for your assistance.
 Your friendly error-reports-inbox.


Created on behalf of Dawid Pakula
Comment 1 Thierry BLIND CLA 2018-02-05 12:01:08 EST
Hi Dawid,
do you have an example or a way to reproduce this bug?

Thierry.
Comment 2 Dawid Pakula CLA 2018-02-06 05:36:49 EST
No, but I can easy imagine. PHPUnit waiting for PHPUnitEvent. After each one schedule entire view refresh, if during this new element will be added to PHPUnitTestGroup you will see such error.
Comment 3 Thierry BLIND CLA 2018-02-06 10:14:23 EST
Ok thank you Dawid for your explanation ;)
I won't work on this one, so if you have a solution... ;)
Comment 4 Szczepan Holyszewski CLA 2018-08-29 20:21:38 EDT
Like bump? PHPUnit runner is 100% nonworking due to this bug. I was just considering migrating back from PHPStorm (because they STILL don't have the whole "multiple projects in one window" thing sorted right), and this is a showstopper.
Comment 5 Eclipse Genie CLA 2019-11-30 13:24:55 EST
New Gerrit change created: https://git.eclipse.org/r/153597
Comment 7 Dawid Pakula CLA 2019-11-30 13:41:07 EST
I implemented two things using eclipse job api
1. Message parsing lock UI updates and vice versa
2. UI updates are delayed for 50s, so if you run big but fast test suite, PDT will no longer be bottleneck.

Punic (https://github.com/punic/punic) have nice and fast test suite. Try to compare with and without path ;)