Skip to content

IndexOutOfBoundsException when saving changes #10

@fedejeanne

Description

@fedejeanne

This exception popped up when saving content in a Java class

!ENTRY org.eclipse.jdt.ui 4 10006 2023-08-10 13:47:57.221
!MESSAGE The save participant 'org.eclipse.jdt.ui.postsavelistener.cleanup' caused an exception: java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 570
!STACK 0
java.lang.IndexOutOfBoundsException: Index -1 out of bounds for length 570
	at java.base/jdk.internal.util.Preconditions.outOfBounds(Preconditions.java:64)
	at java.base/jdk.internal.util.Preconditions.outOfBoundsCheckIndex(Preconditions.java:70)
	at java.base/jdk.internal.util.Preconditions.checkIndex(Preconditions.java:248)
	at java.base/java.util.Objects.checkIndex(Objects.java:372)
	at java.base/java.util.ArrayList.get(ArrayList.java:459)
	at org.eclipse.jdt.internal.formatter.TokenManager.get(TokenManager.java:77)
	at org.eclipse.jdt.internal.formatter.TokenManager.findIndex(TokenManager.java:170)
	at org.eclipse.jdt.internal.formatter.TokenManager.lastIndexIn(TokenManager.java:196)
	at org.eclipse.jdt.internal.formatter.LineBreaksPreparator.handleBracedCode(LineBreaksPreparator.java:713)
	at org.eclipse.jdt.internal.formatter.LineBreaksPreparator.handleBracedCode(LineBreaksPreparator.java:705)
	at org.eclipse.jdt.internal.formatter.LineBreaksPreparator.visit(LineBreaksPreparator.java:155)
	at org.eclipse.jdt.core.dom.TypeDeclaration.accept0(TypeDeclaration.java:482)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3214)
	at org.eclipse.jdt.core.dom.ASTNode.acceptChildren(ASTNode.java:3285)
	at org.eclipse.jdt.core.dom.CompilationUnit.accept0(CompilationUnit.java:258)
	at org.eclipse.jdt.core.dom.ASTNode.accept(ASTNode.java:3214)
	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.prepareLineBreaks(DefaultCodeFormatter.java:417)
	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.prepareFormattedCode(DefaultCodeFormatter.java:229)
	at org.eclipse.jdt.internal.formatter.DefaultCodeFormatter.format(DefaultCodeFormatter.java:185)
	at org.eclipse.jdt.internal.corext.util.CodeFormatterUtil.reformat(CodeFormatterUtil.java:396)
	at org.eclipse.jdt.internal.corext.fix.CodeFormatFix.createCleanUp(CodeFormatFix.java:81)
	at org.eclipse.jdt.internal.ui.fix.CodeFormatCleanUp.createFix(CodeFormatCleanUp.java:64)
	at org.eclipse.jdt.internal.corext.fix.CleanUpRefactoring.calculateChange(CleanUpRefactoring.java:768)
	at org.eclipse.jdt.internal.corext.fix.CleanUpPostSaveListener.saved(CleanUpPostSaveListener.java:384)

Image

Expected behavior

The exception shouldn't happen

How to reproduce

The problem happens seldom but a possible way of reproducing it could be:

  • Open Java class
  • Create a syntax problem
  • Save

Metadata

Metadata

Assignees

No one assigned

    Labels

    BugA Derivation of Expected BehaviorHelp WantedRequest for HelpJDTIssues for JDT

    Type

    No type

    Projects

    Status

    🔖 Ready: Atomic

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions