Jeżeli w trakcie finalizacji obiektu [czyli momentu gdy finalizer wywoła metodę
finalize()
z naszego obiektu] konieczne jest załadowanie jakiejś klasy która teoretycznie jest dostępna dla ClassLoader'a ładującego klasę tworzącą nasz finalizowany właśnie obiekt to leci ClassNotDefFoundError [albo ten drugi ;-) ClassNotFoundError, nie pamiętam :-)]. Co ciekawe, jeżeli później spróbujemy użyć gdzieś tej klasy, to nigdy się to nie uda z racji tego ClassNotFoundError.
Obejściem jest załadowanie klasy jakoś tak wcześniej, rozwiązaniem przepisanie
finalize()
tak by nie potrzebowało niezaładowanych klas ;-) [ale to nie zawsze będzie możliwe :-)].Żeby było zabawnie, problem nie występuje na Tomcat'cie, wydaje się też nie występować na Jetty'm :-)
Podobne postybeta
finalize() - do czego służy, a do czego nie i z czym to się je.
Programowanie pomaga :-)
Nieznane ścieżki ClassLoader'a ;-)
Samochód jako zmniejszacz temperatury.... GC i jak to możliwe, że Young Generation może być zbyt duże, strzeż się finalize() i muzyczka :-) Czyli potok świadomości....
Darmowy hosting JSP
Brak komentarzy:
Prześlij komentarz