Eclipse 완성으로 오류가 발생했을 때의 대응 방법

5261 단어 이클립스자바

이벤트 : Problem During Content Assist


  • 환경
  • Windows 10 Pro 64bit 버전 1909
  • Payara Server 5.194
  • Eclipse Version 2020-03
  • openjdk 버전 11


  • 어느 날 Java 코드를 작성하기 시작하면 대화 상자가 나타났습니다.



    오류 메시지
    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
    141457 – Time out error message when doing content assist

    해결책 : Java 입력 완성 시간 초과 시간을 늘리도록 eclipse.ini로 설정


  • 참고 : Eclipse Java Content Assist not working - Stack Overflow

  • eclipse.ini
    ; ...省略...
    -vmargs
    -Dosgi.requiredJavaVersion=1.11
    -Xms4096m
    -Xmx4096m
    ; ↓↓↓↓↓↓-vmargsにここを追記する↓↓↓↓↓↓↓↓↓
    -Dorg.eclipse.jdt.ui.codeAssistTimeout=60000
    
  • 며칠 후에 다시 오류가 발생합니다.
  • 디버깅하는 동안 코드를 작성하면 오류가 발생합니다.


  • 기타 대응



    이번은 하지 않았지만 언젠가를 위해서・・・eclipse.ini의 -Xmx 의 값을 크게 해 사용할 수 있는 메모리를 늘리는 대응도 있는 것 같다.
  • java - 이클립스 네온 - 콘텐츠 지원 타이밍 아웃
  • 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


  • 해결 : 저장 작업을 "모든 행 형식"으로 설정

    좋은 웹페이지 즐겨찾기