Проблем с JDeveloper и TortoiseSVN

В този пост ще обясня, за грешките (“java.lang.IllegalStateException: Timer already cancelled.” и “java.lang.OutOfMemoryError: Java heap space”), които се получават при инсталиране на TortoiseSVN  1.7.7 ако използвате JDeveloper 11.1.1.4 или JDeveloper 11.1.1.5. Как да оправите проблема без преинсталация и без да загубите проектите си.

Нормалната ситуация

JDeveloper logoМасово хора, които използват JDeveloper използват JDeveloper 11.1.1.4 или JDeveloper 11.1.1.5, защото съответните WebLogic сървъри са със стабилна версия. Всички разработчици използват някакъв вид сорс контрол система и много често това е SVN. Масово към SVN се използва и безплатната програма TortoiseSVN, която не е лоша. Нормално е човек и особено ИТ специалист в TortoiseSVN logoконкретния случай разработчици на софтуер, да обновяват версията на софтуера си. Затова когато на човек му излезе, че TortoiseSVN има нова версия, особено когато не само крайното дясно число е променено, е нормално да сложи по новата версия.

Какъв е проблема ?

Когато сте си качили проекта с TortoiseSVN в SVN и същевременно работите по него, т.е. сте го заредили в JDeveloper, на дървовидната структура на проекта, която е заредена в менюто ”Application” в ляво на работния екран (по стандартни настройки), се появява номер на ревизия (revision). Не, че това Ви е необходимо, но аз лично като го видях първия път и ми хареса, все пак виждаш повече информация за проекта, кой файл коя “revision” е и т.н.

JDeveloper file revision image

Когато се използва TortoiseSVN 1.6.*, няма никакъв проблем и сиитуацията е точно каквато я описах. В момента в който направите update на TortoiseSVN с последната версия (към момента версия 1.7.7), JDeveloper 11.1.1.4 спира да работи. В момента, в който се опитате да отворите структурата на проекта си се получава култовия диалогов прозорец за грешка

JDeveloper Error dialog image

След преглеждане на километричния “Error stack“ всичко, което разбирате, е че в един път грешката е “java.lang.IllegalStateException: Timer already cancelled. JDeveloper”, а другия път е “java.lang.OutOfMemoryError: Java heap space”. Което лично на мен нищо неми говори от къде може да е проблема, а най – лошото е че не съм пипал нищо по проектите, до предния ден съм работил без никакъв проблем, на следващия с включването на JDeveloper – а изскача “красивия” диалогов прозорец с тези “толкова говорящи” грешки. Въобще не се сещам, че може да е от обновяването на TortoiseSVN – а, все пак това е толкова рутинно, елементарно действие, което неправя за първи път.

След задълбочено търсене установих, че не само на мен ми е “изгърмял” JDeveloper – а по този начин. В повечето постове, които намерих по темата, хората обясняваха, че това се получава при преминаване от TortoiseSVN 1.6.* на TortoiseSVN 1.7.* и го има при JDeveloper 11.1.1.4 и JDeveloper 11.1.1.5. Оказа се, че JDeveloper има неподозирани от мен функционалности, като това да работи със сорс контрол система, от където и идвала възможност да изписва “revision” – a на файла. Незнам дали може да се прави “Commit” към SVN директно от JDeveloper – а, но не мисля че е и необходимо да може. Проблема е там, че явно има голяма промяна в работата на TortoiseSVN 1.7.*, и по конкретно как си пази информацията в “hidden” директориите, която промяна е несъвместима с version control – а на JDeveloper –а .

Как да решим проблема ?

Оказа се, че решението е много просто и елементарно. Просто трябва да изключим функцията на JDeveloper – а за следене на версията. За жалост загубваме възможността да гледаме revision – а на файловете. Ако толкова държите на тази опция, е необходимо да се деинсталира TortoiseSVN, да се инсталира по старата версия, след което да се направи нов Checkout на проектите.

Аз предпочетох да загубя revision номера и да си продължа работата, от колкото да деинсталирам, инсталирам и т.н. За това от меню “Tools” избираме “Preferences…”

JDeveloper Tools Preferences image

От лявата част в дървовидната структура има категория “Versioning” и под категория “General”.

JDeveloper Versioning General image

В отворилото се меню, трябва да махнем отметките на “Use Navigator State Overlay Icons” и “Use Navigator State Overlay Labels” след което натискаме “OK” .

JDeveloper Versioning General image correct

Може да се наложи да изключите и да включите отново JDeveloper (т.е. да го рестартирате) и проблема вече е решен.

Надявам се информацията да е Ви е била полезна.