HotSwapAgent - IncompatibleClassChangeError Type HeaderPanel $ 1 не является элементом гнезда HeaderPanel: текущий тип не указан как элемент гнезда - PullRequest
0 голосов
/ 19 ноября 2018

У меня проблема с агентом HotSwap.Это не работает правильно.

Настройка:

  • JDK 11 от HotswapAgent.org
  • Widlfly 14
  • NetBeans 9
  • HotSwapAgent 1.3.1-SNAPSHOT

При запуске i

HOTSWAP AGENT: 08: 17: 59.098 INFO (org.hotswap.agent.HotswapAgent) - Загрузка агента Hotswap {1.3.1-SNAPSHOT} - неограниченное переопределение класса времени выполнения.

В середине я получаю странное сообщение:

08: 18: 56,713 INFO [stdout] (Пул потоков ServerService - 77) АГЕНТ HOTSWAP:08: 18: 56.713 ПРЕДУПРЕЖДЕНИЕ (org.hotswap.agent.watch.nio.TreeWatcherNIO) - Невозможно найти путь vfs: / C: /Java/wildfly-14.0.0.Final/bin/content/application.war/WEB-INF / classes / com / company /, а не локальный обычный файл или каталог.

Но все идет хорошо.Я изменяю код, нажимаю применить изменения кода.Кажется, он изменяет код:

Classes to reload:
 com.company.web.HeaderPanel$13
 com.company.web.HeaderPanel$2
 com.company.web.HeaderPanel$3
 com.company.web.HeaderPanel$4
 com.company.web.HeaderPanel
 com.company.web.HeaderPanel$5
 com.company.web.HeaderPanel$10
 com.company.web.HeaderPanel$11
 com.company.web.HeaderPanel$1
 com.company.web.HeaderPanel$12
 com.company.web.HeaderPanel$6
 com.company.web.HeaderPanel$7
 com.company.web.HeaderPanel$8
 com.company.web.HeaderPanel$9

Code updated

Во время выполнения он выдает несовместимую ошибку изменения класса при переходе к измененному классу:

java.lang.IncompatibleClassChangeError: Type com.company.web.HeaderPanel$1 is not a nest member of com.company.web.HeaderPanel: current type is not listed as a nest member
    at deployment.application.war//com.company.web.HeaderPanel$1.onConfigure(HeaderPanel.java:110) 

Соответствующая строка исходного кода переопределяетсяфункция в анонимном классе, супер.вызов:

 @Override
 protected void onConfigure() {
    super.onConfigure(); 
    setVisible(!ssoService.isEnabled());
 }

Это не та строка, которую я изменил.Я изменил совершенно другую строку.

...