Jun 20 2012
Проблем с 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 използват JDeveloper 11.1.1.4 или JDeveloper 11.1.1.5, защото съответните WebLogic сървъри са със стабилна версия. Всички разработчици използват някакъв вид сорс контрол система и много често това е SVN. Масово към SVN се използва и безплатната програма TortoiseSVN, която не е лоша. Нормално е човек и особено ИТ специалист в конкретния случай разработчици на софтуер, да обновяват версията на софтуера си. Затова когато на човек му излезе, че TortoiseSVN има нова версия, особено когато не само крайното дясно число е променено, е нормално да сложи по новата версия.
Какъв е проблема ?
Когато сте си качили проекта с TortoiseSVN в SVN и същевременно работите по него, т.е. сте го заредили в JDeveloper, на дървовидната структура на проекта, която е заредена в менюто ”Application” в ляво на работния екран (по стандартни настройки), се появява номер на ревизия (revision). Не, че това Ви е необходимо, но аз лично като го видях първия път и ми хареса, все пак виждаш повече информация за проекта, кой файл коя “revision” е и т.н.
Когато се използва TortoiseSVN 1.6.*, няма никакъв проблем и сиитуацията е точно каквато я описах. В момента в който направите update на TortoiseSVN с последната версия (към момента версия 1.7.7), JDeveloper 11.1.1.4 спира да работи. В момента, в който се опитате да отворите структурата на проекта си се получава култовия диалогов прозорец за грешка
След преглеждане на километричния “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…”
От лявата част в дървовидната структура има категория “Versioning” и под категория “General”.
В отворилото се меню, трябва да махнем отметките на “Use Navigator State Overlay Icons” и “Use Navigator State Overlay Labels” след което натискаме “OK” .
Може да се наложи да изключите и да включите отново JDeveloper (т.е. да го рестартирате) и проблема вече е решен.
Надявам се информацията да е Ви е била полезна.
David
Jun 04, 2013 @ 18:41:51
I don’t speak Russian but your screen shots saved me! Thanks for the help, this solved the problem for me.
David
Jun 04, 2013 @ 18:43:12
Sorry….Bulgarian (I don’t speak that either)
Boris Gutsev
Jun 04, 2013 @ 23:13:26
I am happy that I can help. 🙂