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

Bug 510786

Summary: StackOverflowError in org.eclipse.jdt.internal.compiler.parser.RecoveredBlock
Product: [Eclipse Project] JDT Reporter: Brian de Alwis <bsd>
Component: CoreAssignee: JDT-Core-Inbox <jdt-core-inbox>
Status: CLOSED WONTFIX QA Contact:
Severity: normal    
Priority: P3 CC: jarthana
Version: 4.7   
Target Milestone: ---   
Hardware: PC   
OS: Mac OS X   
Whiteboard: stalebug
Attachments:
Description Flags
org.eclipse.ui.internal's WorkbenchPage.java none

Description Brian de Alwis CLA 2017-01-20 14:02:48 EST
Created attachment 266387 [details]
org.eclipse.ui.internal's WorkbenchPage.java

Eclipse SDK
Version: Oxygen (4.7)
Build id: I20161208-0830
OS: Mac OS X, v.10.11.6, x86_64 / cocoa

I was just making a change to a source file, trying to surround a block with an if() statement.  When I tried tabbing the block in, I hit the following StackOverflowError.  I'd continue to hit this 

Steps to repeat:
  1. Open WorkbenchPage.java (attached)
  2. Scroll to line 5056.
  3. Start typing "if(partReference != null) {"
  4. Move down and start selecting lines 5057 - 5064 to indent. I usually see the StackOverflow.
  5. Try to revert the editor contents.  I always see the StackOverflow.

In case it matters, I've pushed the state of my repo to Gerrit.  You should be able to get it as commit 2edf88d4e3692dfcd074c8a5b4edd7d82749ea70 and fetch it with something like:

   git fetch ssh://<your-id>@git.eclipse.org:29418/platform/eclipse.platform.ui 2edf88d4e3692dfcd074c8a5b4edd7d82749ea70:stack overflow

Exception in thread "org.eclipse.jdt.internal.ui.text.JavaReconciler" java.lang.StackOverflowError
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:184)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:175)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredInitializer.add(RecoveredInitializer.java:187)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:188)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:175)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredInitializer.add(RecoveredInitializer.java:187)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:188)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:175)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredInitializer.add(RecoveredInitializer.java:187)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:188)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:175)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredInitializer.add(RecoveredInitializer.java:187)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:188)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:175)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredInitializer.add(RecoveredInitializer.java:187)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:188)
	at org.eclipse.jdt.internal.compiler.parser.RecoveredBlock.add(RecoveredBlock.java:175)
Comment 1 Brian de Alwis CLA 2017-01-20 14:03:58 EST
Oops, miscategorized.

I should add that removing the if() or completing the if() with a trailing brace makes everything good.
Comment 2 Jay Arthanareeswaran CLA 2017-01-23 03:21:57 EST
Looks same as bug 508951. Can you please try a more recent version?
Comment 3 Eclipse Genie CLA 2019-12-16 12:20:46 EST
This bug hasn't had any activity in quite some time. Maybe the problem got resolved, was a duplicate of something else, or became less pressing for some reason - or maybe it's still relevant but just hasn't been looked at yet.

If you have further information on the current state of the bug, please add it. The information can be, for example, that the problem still occurs, that you still want the feature, that more information is needed, or that the bug is (for whatever reason) no longer relevant.

--
The automated Eclipse Genie.