Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 325727

Summary: [Highlighting] CME in HighlightingPresenter
Product: [Modeling] TMF Reporter: Sebastian Zarnekow <sebastian.zarnekow>
Component: XtextAssignee: Project Inbox <tmf.xtext-inbox>
Status: CLOSED FIXED QA Contact:
Severity: major    
Priority: P3 CC: sven.efftinge
Version: 1.0.0Flags: sebastian.zarnekow: indigo+
Target Milestone: M2   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:

Description Sebastian Zarnekow CLA 2010-09-20 06:02:36 EDT
UnmodifiableCollection is only a view on the actual collection. Changes to the underlying list affect the "unmodifiable" collection as well which leads to concurrent modification.

java.util.ConcurrentModificationException
	at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:449)
	at java.util.AbstractList$Itr.next(AbstractList.java:420)
	at java.util.Collections$UnmodifiableCollection$1.next(Collections.java:1010)
	at org.eclipse.xtext.ui.editor.model.DocumentTokenSource$IRegionIterable$1.computeNext(DocumentTokenSource.java:132)
	at org.eclipse.xtext.ui.editor.model.DocumentTokenSource$IRegionIterable$1.computeNext(DocumentTokenSource.java:1)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:135)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:130)
	at com.google.common.collect.Iterators$7.computeNext(Iterators.java:601)
	at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:135)
	at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:130)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.TokenScanner.nextToken(TokenScanner.java:51)
	at org.eclipse.jface.text.rules.DefaultDamagerRepairer.createPresentation(DefaultDamagerRepairer.java:169)
	at org.eclipse.jface.text.presentation.PresentationReconciler.createPresentation(PresentationReconciler.java:453)
	at org.eclipse.xtext.ui.editor.XtextPresentationReconciler.createRepairDescription(XtextPresentationReconciler.java:30)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingPresenter.createPresentation(HighlightingPresenter.java:332)
	at org.eclipse.xtext.ui.editor.syntaxcoloring.HighlightingReconciler.modelChanged(HighlightingReconciler.java:280)
	at org.eclipse.xtext.ui.editor.model.XtextDocument.notifyModelListeners(XtextDocument.java:114)
	at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.afterModify(XtextDocument.java:166)
	at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.afterModify(XtextDocument.java:1)
	at org.eclipse.xtext.util.concurrent.IStateAccess$AbstractImpl.modify(IStateAccess.java:58)
	at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.modify(XtextDocument.java:173)
	at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.process(XtextDocument.java:194)
	at org.eclipse.xtext.ui.editor.reconciler.XtextReconciler$DocumentListener.performNecessaryUpdates(XtextReconciler.java:77)
	at org.eclipse.xtext.ui.editor.model.XtextDocument.updateContentBeforeRead(XtextDocument.java:131)
	at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.beforeReadOnly(XtextDocument.java:149)
	at org.eclipse.xtext.ui.editor.model.XtextDocument$XtextDocumentLocker.beforeReadOnly(XtextDocument.java:1)
	at org.eclipse.xtext.util.concurrent.IStateAccess$AbstractImpl.readOnly(IStateAccess.java:39)
	at org.eclipse.xtext.ui.editor.model.XtextDocument.readOnly(XtextDocument.java:82)
	at org.eclipse.xtext.ui.editor.validation.ValidationJob.createIssues(ValidationJob.java:75)
	at org.eclipse.xtext.ui.editor.validation.ValidationJob.run(ValidationJob.java:64)
	at org.eclipse.core.internal.jobs.Worker.run(Worker.java:55)
Comment 1 Sebastian Zarnekow CLA 2010-09-20 06:03:01 EDT
Every subsequent operation / attemt to update the highlighting fails.
Comment 2 Sven Efftinge CLA 2010-09-21 03:31:36 EDT
fixed
Comment 3 Karsten Thoms CLA 2017-09-19 16:41:55 EDT
Closing bug which were set to RESOLVED before Eclipse Neon.0.