事象 : Problem During Content Assist
- 環境
- Windows 10 Pro 64bit バージョン1909
- Payara Server 5.194
- Eclipse Version 2020-03
- openjdk version 11
エラーメッセージ
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
他の対応
今回はやらなかったけどいつかのために・・・eclipse.iniの-Xmx
の値を大きくして使えるメモリを増やす対応もあるらしい。
- java - Eclipseネオン - コンテンツアシストタイミングアウト
- about billson: Seems resolved: Code Assists exception, org.eclipse.recommenders.completion.rc
事象 : 保存パーティシパントで問題が発生しました。
- 環境
- 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