Я пишу загрузчик классов для долго работающего экземпляра сервера.Если пользователь еще не загрузил определение класса, я выбрасываю исключение ClassNotFoundException;кажется разумным.
Проблема заключается в следующем: Есть три класса (C1, C2 и C3).C1 зависит от C2, C2 зависит от C3.C1 и C2 разрешимы, C3 нет (пока).С1 загружен.Впоследствии C1 выполняет действие, которое требует C2, поэтому C2 загружается.C2 впоследствии выполняет действие, которое требует C3, поэтому загрузчик классов пытается загрузить C3, но не может разрешить его, и выдается исключение.Теперь C3 добавляется в путь к классам, и последовательность перезапускается (начиная с первоначально загруженного C1).Проблема в том, что C2, кажется, помнит, что C3 не может быть загружен, и не беспокоит просьбу загрузчика классов найти класс ... он просто повторно выдает запомненное исключение.
Очевидно, что я могу 't перезагрузите C1 или C2, потому что другие классы могут быть связаны с ними (поскольку C1 уже связался с C2).
Я пытался выдавать различные типы ошибок, надеясь, что класс не запомнит их.К сожалению, такой удачи нет.
Есть ли способ предотвратить привязку загруженного класса к исключению?То есть я хочу, чтобы загрузчик классов мог продолжать попытки, если это не удалось в первый раз.
Спасибо!