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


1
Ja też to widzę w Lunie.
— HDave


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.


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


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.


Ś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


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.


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"
)

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


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)

0

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

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.