LoginSignup
3
1

More than 3 years have passed since last update.

Eclipseの補完でエラーになったときの対応方法

Last updated at Posted at 2020-07-15

事象 : Problem During Content Assist

  • 環境
    • Windows 10 Pro 64bit バージョン1909
    • Payara Server 5.194
    • Eclipse Version 2020-03
    • openjdk version 11

ある日、Javaコードを書き始めたらダイアログが現れた。
image.png
image (1).png

エラーメッセージ
The 'org.eclipse.jdt.ui.org.eclipse.jdt.ui.javaCompletionProposalComputer.chain' proposal computer from the 'org.eclipse.jdt.ui' plug-in did not complete normally. The extension has thrown a runtime exception.
To avoid this message, disable the 'org.eclipse.jdt.ui' plug in or disable the 'Chain Template Proposals' category on the content assist preference page.

原因 : 不明

この辺が原因かもしれないけれど古いバグだから違うかもしれない

We currently flag a processor that takes longer than 5s as unacceptable for a user since content assist is a typing assistant. Note that we do not disable the processor, we leave that up to the user i.e. if it happens often he can disable it.
141457 – Time out error message when doing content assist

対応 : Javaの入力補完のタイムアウト時間を伸ばすようにeclipse.iniに設定する

eclipse.ini
; ...省略...
-vmargs
-Dosgi.requiredJavaVersion=1.11
-Xms4096m
-Xmx4096m
; ↓↓↓↓↓↓-vmargsにここを追記する↓↓↓↓↓↓↓↓↓
-Dorg.eclipse.jdt.ui.codeAssistTimeout=60000
  • 数日後にまたエラーが・・・
    • デバック中にコードを書いていたらまたエラーが・・・デバックを止めて他のアプリをいくつか落としたらエラーが出なくなった・・・
    • image.png

他の対応

今回はやらなかったけどいつかのために・・・eclipse.iniの-Xmxの値を大きくして使えるメモリを増やす対応もあるらしい。

事象 : 保存パーティシパントで問題が発生しました。

  • 環境
    • Windows10 Pro 64bit
    • Eclipse Version: Oxygen.3a Release (4.7.3a)
    • Java 1.7
    • Lombok Version : 1.16.18

EclipseでJavaのソースを保存したら怒られた

ダイアログメッセージ
保存パーティシパントで問題が発生しました。
  保存パーティシパント 'コード・クリーンアップ' で例外発生: java.lang.IndexOutOfBoundsException: Index: 87, Size: 87. 詳細はエラー・ログを参照してください。
{ワークスペースのディレクトリ}/.metadata/.log
!ENTRY org.eclipse.jdt.ui 4 10006 2019-10-25 13:18:27.511
!MESSAGE The save participant 'org.eclipse.jdt.ui.postsavelistener.cleanup' caused an exception: java.lang.ArrayIndexOutOfBoundsException: -1
!STACK 0
java.lang.ArrayIndexOutOfBoundsException: -1
    at java.util.ArrayList.elementData(Unknown Source)
    at java.util.ArrayList.get(Unknown Source)
    at org.eclipse.jdt.internal.formatter.TokenManager.get(TokenManager.java:73)
    at org.eclipse.jdt.internal.formatter.TokenManager.findIndex(TokenManager.java:166)
    at org.eclipse.jdt.internal.formatter.TokenManager.lastIndexIn(TokenManager.java:203)
    at org.eclipse.jdt.internal.formatter.LineBreaksPreparator.handleBracedCode(LineBreaksPreparator.java:710)
    at org.eclipse.jdt.internal.formatter.LineBreaksPreparator.visit(LineBreaksPreparator.java:275)
...省略...

原因 : Lombokを使っている & 保管アクションを「編集した行をフォーマット」に設定しているから

参考 : Working with lombok and eclipse cleanup fails: "A save participant caused problems.

  • エラー時の設定は、[設定] > [Java] > [エディター] > [保管アクション]で以下
    • 「保存時に選択したアクションを実行」: ON
    • 「ソース・コードのフォーマット」: ON
    • 「編集した行をフォーマット」: ON

対応 : 保管アクションを「すべての行をフォーマット」に設定する

3
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
1