2013-05-23 17 views
5

Używam Spring (3.2.2) + AspectJ (1.7.2) Load Time Weaving. Rozwijanie przy użyciu Netbeans 7.3.Debugowanie, przejście przez metody klas tkankowych AspectJ

Zauważyłem, że nie mogę "przekroczyć" podczas debugowania metod w klasach, które zostały utkane przez AspectJ, na przykład wewnątrz metod opatrzonych adnotacją @Transactional.

Jestem w stanie wprowadzić punkty przełamania, ale kiedy "przejdę", przepływ debugowania przeskakuje do linii 1 klasy, a po ponownym kliknięciu "Krok po kroku" przechodzi do innych klas.

próbował uruchomić go w IntelliJ 12.1.3, sam problem jak w Netbeans ...

Podczas debugowania tego samego projektu w Eclipse Juno SR2, w „krok nad” będzie w porządku, z wyjątkiem tego, że dla pierwszy wiersz metody muszę kliknąć dwa razy.

Próbowałem dodać opcję -XnoInline do pliku aop.xml, ale to nie pomogło.

Znalazłem podobne pytanie Eclipse debug stepping with AspectJ ale uważam, że odpowiedź nie jest kompletny:

  1. Jaki jest problem id/link?
  2. Do jakich wersji ma zastosowanie?
  3. Kiedy to zostanie naprawione?
  4. Czy są inne sposoby obejścia problemu?
  5. Dlaczego działa w środowisku Eclipse, czy ma obejście/funkcję?

Update 1

nie wspominając, że debugowania w IntelliJ IDEA była przez zdalnego debugowania. Kiedy debugowałem bezpośrednio w IDE, nadepnęłam na ...

W Eclipse próbowałem i działa dobrze zarówno podczas normalnego, jak i zdalnego debugowania.

W protokole Netbeans neigher normalne/lokalne lub zdalne debugowanie nad fine (linia po linii) - nadal problem.

Aktualizacja 2

Znalazłem się, co jest problemem w debugowania tego kodu.

Sprężyna w wersji 3.2.2 zmieniła aspekt @Transactional, zastąpił @Before i @ Po połączeniu z @Around.

Podczas wykonywania testów ze sprężyną < 3.2.2, debugowanie działa dobrze.

Szkoda, że ​​@Around sprawia, że ​​metody @Transactional są prawie niemożliwe do debugowania.

Czy jest to znany problem (przy użyciu @Around) w AspectJ?

Dodałem wiosenny numer związany z tym problemem: https://jira.springsource.org/browse/SPR-10596

Update 3

w NetBeans 7.4, możliwe jest, aby używać "krok nad ekspresją (Shift + F8)" zamiast "Krok po kroku (F8)", aby przejść przez kod.

Odpowiedz

Powiązane problemy