Friday, 17 April 2015

[RCP] Workspace not clear 시, Main Toolbar 오른쪽으로 정렬되는 버그 해결법

그림 출처 : https://www.eclipse.org/forums/index.php/t/366870/

1. View Title이 안 보이는 현상
2. Main Toolbar의 위치가 오른쪽 정렬 되는 현상
3. 추가하지 않은 Quick Access가 나타나는 현상

Eclipse 4.2 버전 이후 위와 같은 3가지 버그가 발생한다.

그 중 2번 Main Toolbar가 오른쪽 정렬되는 문제는 workspace를 clear 하지 않을 경우 발생한다.
workspace를 clear하면 문제되지 않으나 preference를 통해 저장된 설정값들이 workspace에 저장되기 때문에 clear를 하게 되면 이전에 설정해준 값들이 날아가버린다.
그래서 workspace를 clear하지 않고 실행해야하는 상황.

Eclipse 4.X는 Workbench 의 Menu, View, Editor, Commands, Handler, Model에 대한 정보를 종료될 때 EMF 모델로 저장한다. 이 정보는 <workspace>/.metadata/.plugins/org.eclipse.e4.workbench/workbench.xmi에 저장된다.
처음 실행 이후 다시 Workbench가 올라올 때 workbench.xmi을 참조하여 빠른 실행을 도운다는 개념인데, 그로인해 발생하는 버그들도 많은 듯 하다.

내가 겪은 문제는 workbench.xmi에 정보가 저장될 때 SearchField, Search-PS Glue 등의 정의하지 않은 불필요 Entry들이 Toolbar 항목에 추가가 되면서 정의된 요소들의 Entry보다 앞에 값들이 생기면서 순서가 틀어져 발생한 것이다. 즉, 오른쪽으로 정렬된 것이 아니라 공백 Entry와 Search Entry가 먼저 그려지고 이후에 정의한 Toolbar Item들이 그려지다보니 밀린 것처럼 보이는 것이다.

이를 해결하기 위해선 Program Argument로 -clearPersistedState 옵션을 주면 된다.
이 옵션은 Workbench가 올라올 때 workbench.xmi 파일을 삭제하고 올라온다. 간단하게 옵션 하나로 해결!

추가로 Workbench를 재시작할 경우, 이 옵션을 주는 방법은

System .setProperty E4Workbench .CLEAR_PERSISTED_STATE, "true" );
PlatformUI .getWorkbench (). restart();    

와 같이 구현해 주면 된다.

No comments:

Post a Comment