Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 264189 - [StyledText] ArrayIndexOutOfBoundsException in StyledTextRenderer.calculateClientArea
Summary: [StyledText] ArrayIndexOutOfBoundsException in StyledTextRenderer.calculateCl...
Status: CLOSED DUPLICATE of bug 471192
Alias: None
Product: Platform
Classification: Eclipse Project
Component: SWT (show other bugs)
Version: 3.5   Edit
Hardware: PC All
: P3 normal (vote)
Target Milestone: ---   Edit
Assignee: Platform-SWT-Inbox CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2009-02-09 10:00 EST by Michael Schneider CLA
Modified: 2017-07-14 07:36 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 Michael Schneider CLA 2009-02-09 10:00:46 EST
Build ID: I20090129-1800

Created a new interface, added a method to it, saved. Then changed the copyright year from 2008 to 2009, saved again and got the exception below.
was not able to reproduce, sorry.

java.lang.ArrayIndexOutOfBoundsException: 23
	at org.eclipse.swt.custom.StyledTextRenderer.calculateClientArea(StyledTextRenderer.java:221)
	at org.eclipse.swt.custom.StyledText.resetCache(StyledText.java:7086)
	at org.eclipse.swt.custom.StyledText.setStyleRanges(StyledText.java:8728)
	at org.eclipse.swt.custom.StyledText.replaceStyleRanges(StyledText.java:7008)
	at org.eclipse.jface.text.TextViewer.addPresentation(TextViewer.java:4496)
	at org.eclipse.jface.text.TextViewer.changeTextPresentation(TextViewer.java:4575)
	at org.eclipse.jface.text.presentation.PresentationReconciler.applyTextRegionCollection(PresentationReconciler.java:579)
	at org.eclipse.jface.text.presentation.PresentationReconciler.processDamage(PresentationReconciler.java:568)
	at org.eclipse.jface.text.presentation.PresentationReconciler.access$3(PresentationReconciler.java:564)
	at org.eclipse.jface.text.presentation.PresentationReconciler$InternalListener.textChanged(PresentationReconciler.java:225)
	at org.eclipse.jface.text.TextViewer.updateTextListeners(TextViewer.java:2695)
	at org.eclipse.jface.text.TextViewer.fireRedrawChanged(TextViewer.java:4742)
	at org.eclipse.jface.text.TextViewer.enabledRedrawing(TextViewer.java:4782)
	at org.eclipse.jface.text.TextViewer.enabledRedrawing(TextViewer.java:4750)
	at org.eclipse.jface.text.TextViewer.setRedraw(TextViewer.java:4835)
	at org.eclipse.jface.text.TextViewer.setRedraw(TextViewer.java:4809)
	at org.eclipse.jface.text.TextViewer$RewriteTarget.setRedraw(TextViewer.java:1058)
	at org.eclipse.jface.text.TextViewer$DocumentRewriteSessionListener.documentRewriteSessionChanged(TextViewer.java:1428)
	at org.eclipse.jface.text.AbstractDocument.fireRewriteSessionChanged(AbstractDocument.java:1524)
	at org.eclipse.jface.text.AbstractDocument.stopRewriteSession(AbstractDocument.java:1610)
	at org.eclipse.core.internal.filebuffers.SynchronizableDocument.stopRewriteSession(SynchronizableDocument.java:114)
	at org.eclipse.ltk.core.refactoring.TextChange.performEdits(TextChange.java:281)
	at org.eclipse.ltk.core.refactoring.TextFileChange.access$0(TextFileChange.java:1)
	at org.eclipse.ltk.core.refactoring.TextFileChange$1.run(TextFileChange.java:274)
	at org.eclipse.ui.internal.editors.text.UISynchronizationContext.run(UISynchronizationContext.java:34)
	at org.eclipse.core.internal.filebuffers.TextFileBufferManager.execute(TextFileBufferManager.java:634)
	at org.eclipse.ltk.core.refactoring.TextFileChange.performEdits(TextFileChange.java:286)
	at org.eclipse.ltk.core.refactoring.TextChange.perform(TextChange.java:238)
	at org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring$CleanUpChange.perform(CleanUpRefactoring.java:160)
	at org.eclipse.ltk.core.refactoring.PerformChangeOperation$1.run(PerformChangeOperation.java:260)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
	at org.eclipse.ltk.core.refactoring.PerformChangeOperation.executeChange(PerformChangeOperation.java:308)
	at org.eclipse.ltk.core.refactoring.PerformChangeOperation.run(PerformChangeOperation.java:225)
	at org.eclipse.jdt.internal.corext.fix.CleanUpPostSaveListener.saved(CleanUpPostSaveListener.java:380)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$5.run(CompilationUnitDocumentProvider.java:1539)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:37)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.notifyPostSaveListeners(CompilationUnitDocumentProvider.java:1534)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider.commitWorkingCopy(CompilationUnitDocumentProvider.java:1331)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitDocumentProvider$4.execute(CompilationUnitDocumentProvider.java:1400)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider$DocumentProviderOperation.run(TextFileDocumentProvider.java:131)
	at org.eclipse.ui.actions.WorkspaceModifyDelegatingOperation.execute(WorkspaceModifyDelegatingOperation.java:69)
	at org.eclipse.ui.actions.WorkspaceModifyOperation$1.run(WorkspaceModifyOperation.java:106)
	at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
	at org.eclipse.ui.actions.WorkspaceModifyOperation.run(WorkspaceModifyOperation.java:118)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:75)
	at org.eclipse.ui.internal.editors.text.WorkspaceOperationRunner.run(WorkspaceOperationRunner.java:65)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.executeOperation(TextFileDocumentProvider.java:455)
	at org.eclipse.ui.editors.text.TextFileDocumentProvider.saveDocument(TextFileDocumentProvider.java:771)
	at org.eclipse.ui.texteditor.AbstractTextEditor.performSave(AbstractTextEditor.java:4890)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.performSave(CompilationUnitEditor.java:1230)
	at org.eclipse.jdt.internal.ui.javaeditor.CompilationUnitEditor.doSave(CompilationUnitEditor.java:1283)
	at org.eclipse.ui.texteditor.AbstractTextEditor$TextEditorSavable.doSave(AbstractTextEditor.java:6998)
	at org.eclipse.ui.Saveable.doSave(Saveable.java:212)
	at org.eclipse.ui.internal.SaveableHelper.doSaveModel(SaveableHelper.java:339)
	at org.eclipse.ui.internal.SaveableHelper$2.run(SaveableHelper.java:185)
	at org.eclipse.ui.internal.SaveableHelper$4.run(SaveableHelper.java:266)
	at org.eclipse.jface.operation.ModalContext.runInCurrentThread(ModalContext.java:464)
	at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:372)
	at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756)
	at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2577)
	at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:274)
	at org.eclipse.ui.internal.SaveableHelper.runProgressMonitorOperation(SaveableHelper.java:253)
	at org.eclipse.ui.internal.SaveableHelper.saveModels(SaveableHelper.java:196)
	at org.eclipse.ui.internal.SaveableHelper.savePart(SaveableHelper.java:136)
	at org.eclipse.ui.internal.EditorManager.savePart(EditorManager.java:1353)
	at org.eclipse.ui.internal.WorkbenchPage.savePart(WorkbenchPage.java:3322)
	at org.eclipse.ui.internal.WorkbenchPage.saveEditor(WorkbenchPage.java:3335)
	at org.eclipse.ui.internal.SaveAction.run(SaveAction.java:74)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	at org.eclipse.ui.commands.ActionHandler.execute(ActionHandler.java:185)
	at org.eclipse.ui.internal.handlers.LegacyHandlerWrapper.execute(LegacyHandlerWrapper.java:109)
	at org.eclipse.core.commands.Command.executeWithChecks(Command.java:476)
	at org.eclipse.core.commands.ParameterizedCommand.executeWithChecks(ParameterizedCommand.java:508)
	at org.eclipse.ui.internal.handlers.HandlerService.executeCommand(HandlerService.java:169)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.executeCommand(WorkbenchKeyboard.java:471)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.press(WorkbenchKeyboard.java:823)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.processKeyEvent(WorkbenchKeyboard.java:879)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.filterKeySequenceBindings(WorkbenchKeyboard.java:570)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard.access$3(WorkbenchKeyboard.java:511)
	at org.eclipse.ui.internal.keys.WorkbenchKeyboard$KeyDownFilter.handleEvent(WorkbenchKeyboard.java:126)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.filterEvent(Display.java:1190)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1002)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1027)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1012)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1040)
	at org.eclipse.swt.widgets.Widget.sendKeyEvent(Widget.java:1036)
	at org.eclipse.swt.widgets.Widget.wmChar(Widget.java:1358)
	at org.eclipse.swt.widgets.Control.WM_CHAR(Control.java:4019)
	at org.eclipse.swt.widgets.Canvas.WM_CHAR(Canvas.java:346)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:3912)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:342)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:4584)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2393)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3468)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2388)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2352)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2204)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:499)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:333)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:492)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:113)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:194)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:368)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:556)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:511)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1270)
Comment 1 Dani Megert CLA 2009-02-09 10:11:03 EST
We call StyledText.replaceStyleRanges(int, int, StyleRange[]) which is not spec'ed to throw an AIOOBE. If the range is invalid we should get an IAE.
Comment 2 Felipe Heidrich CLA 2009-02-18 16:09:44 EST
I checked the code and the stack, I can't see how this happened. Without steps there is nothing else I can do for now. 
Comment 3 Felipe Heidrich CLA 2009-08-14 08:58:19 EDT
Your bug has been moved to triage, visit http://www.eclipse.org/swt/triage.php for more info.
Comment 4 Niraj Modi CLA 2017-07-14 07:36:19 EDT
Fix for bug 471192 already added the required checks to avoid ArrayIndexOutOfBoundsException.

*** This bug has been marked as a duplicate of bug 471192 ***