Program obsługi zdarzenia zmiany projektu JPA Eclipse (oczekiwanie)

136

Dlaczego otrzymuję komunikat „JPA Project Change Event Handler (czekam)”, ilekroć próbuję zbudować mój projekt.

Mam kilka projektów JPA w moim obszarze roboczym i jego zbudowanie zajmuje dużo czasu. Prowadzi to również do przekroczenia limitu przez GC z 6 GB miejsca na sterty przydzielonych na zaćmienie

Obecnie używam Keplera. Ten problem nie wystąpił w Helios.

Istnieje kilka wpisów BugZilli dotyczących powyższego błędu, ale widzę, że zostały one naprawione. Ale niedostępne w 4.3.1?

Jakieś rozwiązania / obejścia powyższego problemu?

Dzięki

Surendran Duraisamy
źródło
1
Ja też to widzę w Lunie.
HDave
1
Przydarza
2
Na tej samej maszynie, co się dzieje w Neonie, ale nie na Marsie dla mnie ...
Bob Yoplait
1
Dzieje się w Neon.2, a nawet nie używa JPA.
Ed Randall,
2
Jest tam również w 2020-03
Vishnudev K

Odpowiedzi:

165

Miałem ten sam problem i ostatecznie odkryłem, że wydaje mi się, że jest to znany błąd w DALI (Eclipse Java Persistence Tools) od czasu co najmniej eclipse 3.8, który może spowodować, że akcja zapisu w edytorze java będzie wyjątkowo powolna .

Ponieważ nie zostało to jeszcze w pełni rozwiązane w Kepler (20130614-0229) i ponieważ nie potrzebuję JPT / DALI w moim zaćmieniu, skończyło się na ręcznym usunięciu org.eclipse.jptfunkcji i wtyczek.

To co zrobiłem to:

1.) zaćmienie wyjścia

2.) przejdź do mojego katalogu instalacyjnego eclipse

cd eclipse

i wykonaj następujące kroki:

*nic:

mkdir disabled
mkdir disabled/features disabled/plugins

mv plugins/org.eclipse.jpt.* disabled/plugins
mv features/org.eclipse.jpt.* disabled/features

okna:

mkdir disabled
mkdir disabled\features 
mkdir disabled\plugins

move plugins\org.eclipse.jpt.* disabled\plugins
for /D /R %D in (features\org.eclipse.jpt.*) do move %D disabled\features

3.) Uruchom ponownie zaćmienie.

Po uruchomieniu i przy pierwszym użyciu eclipse może ostrzegać, że konieczna jest rekonfiguracja obsługi treści . Zrób to w oknie dialogowym preferencji.

Gotowe.

Po odinstalowaniu DALI / JPT moje zaćmienie znów wygląda dobrze. Koniec z blokowaniem interfejsu użytkownika i czekaniem sekund podczas zapisywania pliku.

mwhs
źródło
9
Na marginesie: zespół eclipse powinien prawdopodobnie spróbować rozpocząć dyskusję na temat liczby włączonych i niemożliwych do odznaczenia funkcji / projektów zawartych w wydaniu. Powinien też omówić sposoby wyłączenia funkcji w pakiecie (takich jak JPT).
mwhs
2
Ten sam problem z „JPA Project Change Event Handler” blokującym Eclipse Luna Build 4.4.0. @mwhs działa również z Luna, jeśli nie potrzebujesz narzędzi JPA (zamiast tego zainstaluj JBoss Hibernate Tools, które i tak są znacznie bardziej wydajne, jeśli pracujesz z Hibernate)
Stefan Haberl
3
Niezłe znalezisko! Niestety błąd DALI jest zamknięty od 2012-08-29, ale 2 lata później nadal miałem te same problemy w Luna / STS 3.6.1 (z repozytorium Git poza obszarem roboczym). Nie próbowałem twojego rozwiązania, ponieważ ciągle spowalniałem Remote System Explorer (mimo że próbowałem to wyłączyć), więc w końcu po prostu zainstalowałem waniliowe Eclipse dla Javy (nawet JEE), dodałem JST Server Adapters & rozszerzenia, m2e-wtp i narzędzia programistyczne AspectJ za pomocą download.eclipse.org/tools/ajdt/44/dev/update . Nareszcie błyskawicznie.
Arjan,
11
Zapomniałem wspomnieć, że polecenie move features\org.eclipse.jpt.* disabled\featuresnie działa dla mnie (na Win7 x64) i musiałem zarządzać nimi ręcznie. Podejrzewam, że dzieje się tak dlatego, że zawiera foldery zamiast plików i ... cóż, powiedzmy, że po napisaniu wystarczającej liczby skryptów wsadowych systemu Windows, prawdopodobnie zaczniesz zastanawiać się, czy język został faktycznie zaprojektowany przez eksperymentalny zespół Microsoft składa się w całości z pijanych szympansów niepiśmiennych z ciężkim ADHD. Albo możesz się po prostu zastanawiać, dlaczego obsługa OOTB Unix nie została dodana do wiersza poleceń w wersjach NTFS systemu Windows.
zpangwin
3
O dziwo, ten problem nadal występuje w przypadku zaćmienia tlenu (wrzesień 2017), a twoje rozwiązanie załatwiło sprawę.
Michaël Vreux
67

Nie wiem dlaczego, mój Neon Eclipse nadal ma ten problem, wydaje się, że nie został on naprawiony w wersji Mars, jak twierdziło wiele osób.

Zauważyłem, że użycie polecenia jest zbyt kłopotliwe, usuwam wtyczkę za pomocą Menedżera instalacji Eclipse.

Neon: [Pomoc> Szczegóły instalacji> Zainstalowane oprogramowanie]

Oxygen: [Preferencje> Instalacja / aktualizacja> Zainstalowane oprogramowanie]

Wystarczy wybrać wtyczkę „Dali Java Persistence Tools -JPA Support” i kliknąć „odinstaluj”. Zwróć uwagę, że mój ekran poniżej nie ma tego, ponieważ już odinstalowałem.

wprowadź opis obrazu tutaj

GMsoF
źródło
5
Usunąłem również „Wsparcie EclipseLink JPA”
Venu Madhav
24

Nadal mam ten sam problem w Neon.2 Moim rozwiązaniem jest wyłączenie konfiguratora JPA.

Otwórz preferencje Eclipse (nie ustawienia projektu!). Przejdź do Maven -> Integracja z Java EE i wyłącz JPA Configurator. Wyłączyłem również JAX-RS Configurator i JSF Configurator.

Od tego momentu program obsługi zdarzeń zmiany projektu JPA już się nie pojawia.

Uruchom ponownie Eclipse, jeśli zmiana nie odniesie natychmiastowego skutku.

M46
źródło
Świetnie, dziękuję, wciąż widziałem ten problem w Photonie 4.8.0 na Macu i jest to jedyne proponowane rozwiązanie, które działa dla mnie.
wydra606
19

Wyłączyłem (odznaczyłem) walidator JPA.

Teraz za każdym razem, gdy zapisuję plik, wyświetla tylko jedno zadanie dla programu obsługi zdarzeń zmiany projektu JPA i tylko 2 lub 3 dla programu obsługi zdarzeń zmiany języka JPA w języku Java.

A co najważniejsze, problem z zawieszaniem się interfejsu użytkownika został rozwiązany.

Proszę zapoznać się z poniższym zrzutem ekranu dla ustawień, które wprowadziłem:

wprowadź opis obrazu tutaj

Anil Bharadia
źródło
9
Niesamowite - mam odznaczoną weryfikację JPA, ale nadal otrzymuję narzędzie do obsługi zdarzeń zmiany JPA!
Magick
1
To zadziałało dla mnie. W rzeczywistości lepiej WYŁĄCZ WSZYSTKO i włącz TYLKO to, co jest wymagane. Na przykład, jeśli nie pracujesz z „projektami internetowymi”, nie potrzebujesz żadnego rodzaju jsp *, jsf *, html itp. Pomogło to w precyzyjnym dostosowaniu walidacji dla każdego modułu / projektu. Oszczędność cennego czasu - dużo.
RafiAlhamd
14

Istnieje inny sposób na wyłączenie narzędzi JPA dla projektu, który nie wymaga odinstalowywania funkcji / wtyczek JPA. Testowałem na https://github.com/Jasig/uPortal projekcie, o którym wspomniano w https://bugs.eclipse.org/bugs/show_bug.cgi?id=386171 i twierdzi, że ma podobne problemy:

  1. Przejdź do widoku Eksploratora projektów Eclipse, aby zobaczyć projekty z włączonym aspektem JPA (powinien znajdować się węzeł „Zawartość JPA”);
  2. Wybierz interesujący projekt, który ma węzeł „Zawartość JPA” i wybierz Właściwości z menu kontekstowego lub naciśnij Alt + Enter, aby wyświetlić okno dialogowe Właściwości projektu;
  3. Wybierz węzeł „Aspekty projektu” w drzewie z kategoriami;
  4. Wyczyść pole wyboru JPA na liście aspektów projektu i naciśnij OK.

Po wyłączeniu aspektu JPA dla repozytorium formularzy projektów uportal-war powyżej nie widzę żadnych zadań związanych z JPA w widoku postępu Eclipse.

dgolovin
źródło
5
To może zadziałać dla niektórych, ale dla większości nie zadziała. Usunąłem aspekt JPA ze wszystkich moich projektów, ale nadal mam zawieszone środowisko. Przyczyna może być związana z przywracaniem JPA przez Mavena lub czymś w tym rodzaju, ale faktem jest, że to nie działa nawet po wykonaniu tych bardzo logicznych kroków.
Calabacin
powyższe rozwiązanie działało u mnie w eclipse 2020-03. Dzięki @dgolovin.
Alfaz Jikani
8

drobna korekta odpowiedzi mwhs dla okien części ...

Polecenie move nie działa dla folderu. \ Features, ponieważ ... no cóż, szczerze, ponieważ system Windows jest opóźniony (możesz używać symboli wieloznacznych z 'move' na plikach, ale najwyraźniej symbole wieloznaczne + foldery == ignoruj ​​polecenie). W każdym razie powinno to działać jako alternatywa dla fragmentu kodu systemu Windows podanego w kroku 2 w jego odpowiedzi.

jako plik wsadowy:

@echo off
set eclipse_dir=C:\eclipse_luna

mkdir disabled
mkdir disabled\features 
mkdir disabled\plugins

move plugins\org.eclipse.jpt.* disabled\plugins
for /f %%i in ('dir "%eclipse_dir%\features\org.eclipse.jpt.*" /ad /b') do (
    move "%eclipse_dir%\features\%%i" "%eclipse_dir%\disabled\features\%%i"
)
zpangwin
źródło
2

Jeśli nie możesz znaleźć swojego zaćmienia, reż. Ponieważ miałem taki problem na Macu, pamiętamy, że eclipse korzysta z OSGi, więc możemy przejść do platformy docelowej i wyłączyć funkcje / wtyczki, które zostały opisane powyżej: org.eclipse.jpt. * wprowadź opis obrazu tutaj

Igor Masternoy
źródło
0

Wydaje się, że rozwiązaniem dla fotonu zaćmienia jest:

  1. otwórz ./eclipse/configuration/org.eclipse.equinox.simpleconfigurator/bundles.info
  2. usuń linie zaczynające się od org.eclipse.jpt (może działać tylko w celu usunięcia org.eclipse.jpt.jpa)
Olard
źródło
0

Wydaje się, że problem został rozwiązany dzięki nowemu Eclipse. Wtyczka nie jest dostępna w pakiecie Java Enterprise.

ha9u63ar
źródło