Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Error when reloading Jersey resource #167

Closed
oranheim opened this issue Jan 15, 2017 · 7 comments
Closed

Error when reloading Jersey resource #167

oranheim opened this issue Jan 15, 2017 · 7 comments

Comments

@oranheim
Copy link

oranheim commented Jan 15, 2017

My deps:

  • Undertow 1.2.11
  • Weld 2.4.1
  • Deltaspike 1.7.2
  • Jersey 2.25

I'm getting a NoSuchFieldException exception when I modify a Jersey Resource:

HOTSWAP AGENT: 15:42:53.941 RELOAD (org.hotswap.agent.config.PluginManager) - Reloading classes [io.descoped.mvc.book.BookController] (autoHotswap)
Non Static io.descoped.mvc.book.BookController
15:42:54.161 [Thread-12] TRACE i.d.c.s.j.DescopedHk2LocatorManager - Register HK2 CDI Locator Manager: ServiceLocatorImpl(__HK2_Generated_2,3,824457065)
HOTSWAP AGENT: 15:42:54.202 WARNING (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Context org.jboss.weld.context.unbound.DependentContextImpl@69b50a4c is not patched. Can not add Managed Bean [class io.descoped.mvc.book.BookController] with qualifiers [@Any @Default] to reload set
java.lang.NoSuchFieldException: _toReload
	at java.lang.Class.getDeclaredField(Class.java:2070)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.addToReloadSet(ContextualReloadHelper.java:52)
	at org.hotswap.agent.plugin.weld.command.BeanDeploymentArchiveAgent.reloadManagedBeanInContexts(BeanDeploymentArchiveAgent.java:322)
	at org.hotswap.agent.plugin.weld.command.BeanDeploymentArchiveAgent.reloadManagedBean(BeanDeploymentArchiveAgent.java:293)
	at org.hotswap.agent.plugin.weld.command.BeanDeploymentArchiveAgent.reloadBean(BeanDeploymentArchiveAgent.java:231)
	at org.hotswap.agent.plugin.weld.command.BeanDeploymentArchiveAgent.refreshBeanClass(BeanDeploymentArchiveAgent.java:192)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.hotswap.agent.plugin.weld.command.BeanClassRefreshCommand.executeCommand(BeanClassRefreshCommand.java:93)
	at org.hotswap.agent.command.impl.CommandExecutor.run(CommandExecutor.java:25)

15:42:54.362 [Thread-12] TRACE i.d.c.s.j.DescopedHk2LocatorManager - Register HK2 CDI Locator Manager: ServiceLocatorImpl(__HK2_Generated_3,4,1927315480)
HOTSWAP AGENT: 15:42:54.440 INFO (org.hotswap.agent.plugin.jersey2.Jersey2Plugin) - Reloaded Jersey Containers
@oranheim
Copy link
Author

Wow! That was fast @skybber :) Thank you, I'll test it right away..

@skybber
Copy link
Contributor

skybber commented Jan 15, 2017

Thanks, too.

@oranheim
Copy link
Author

Ouch.. that introduced a new StackOverflowError:

HOTSWAP AGENT: 16:12:17.616 RELOAD (org.hotswap.agent.config.PluginManager) - Reloading classes [io.descoped.mvc.book.BookController] (autoHotswap)
Non Static io.descoped.mvc.book.BookController
16:12:17.898 [Thread-12] TRACE i.d.c.s.j.DescopedHk2LocatorManager - Register HK2 CDI Locator Manager: ServiceLocatorImpl(__HK2_Generated_2,3,357343875)
16:12:18.008 [Thread-12] WARN  org.glassfish.jersey.internal.Errors - The following warnings have been detected: WARNING: Unknown HK2 failure detected:
MultiException stack 1 of 1
java.lang.StackOverflowError
	at org.hotswap.agent.logging.AgentLogger.debug(AgentLogger.java:137)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.reload(ContextualReloadHelper.java:26)
	at org.jboss.weld.context.unbound.DependentContextImpl._reload(DependentContextImpl.java)
	at org.jboss.weld.context.unbound.DependentContextImpl.isActive(DependentContextImpl.java)
	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:66)
	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:121)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.destroy(ContextualReloadHelper.java:75)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.reload(ContextualReloadHelper.java:31)
    ..(cut many many lines)...
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.destroy(ContextualReloadHelper.java:75)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.reload(ContextualReloadHelper.java:31)
	at org.jboss.weld.context.unbound.DependentContextImpl._reload(DependentContextImpl.java)
	at org.jboss.weld.context.unbound.DependentContextImpl.isActive(DependentContextImpl.java)
	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:66)
	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:121)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.destroy(ContextualReloadHelper.java:75)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.reload(ContextualReloadHelper.java:31)
	at org.jboss.weld.context.unbound.DependentContextImpl._reload(DependentContextImpl.java)
	at org.jboss.weld.context.unbound.DependentContextImpl.isActive(DependentContextImpl.java)
	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:66)
	at org.jboss.weld.context.unbound.DependentContextImpl.get(DependentContextImpl.java:121)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.destroy(ContextualReloadHelper.java:75)
	at org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper.reload(ContextualReloadHelper.java:31)
	at org.jboss.weld.context.unbound.DependentContextImpl._reload(DependentContextImpl.java)
	at org.jboss.weld.context.unbound.DependentContextImpl.isActive(DependentContextImpl.java)

@skybber
Copy link
Contributor

skybber commented Jan 15, 2017

I've push a fix of it. Could you please check it ? Thanks

@oranheim
Copy link
Author

Great. Changed log level to debug and found that there is an infinite loop:

HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Starting re-loading Contextuals in org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33, 1
HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Removing Contextual from Context........ Managed Bean [class io.descoped.mvc.book.BookController] with qualifiers [@Any @Default],: org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33
HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Starting re-loading Contextuals in org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33, 1
HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Removing Contextual from Context........ Managed Bean [class io.descoped.mvc.book.BookController] with qualifiers [@Any @Default],: org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33
HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Starting re-loading Contextuals in org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33, 1
HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Removing Contextual from Context........ Managed Bean [class io.descoped.mvc.book.BookController] with qualifiers [@Any @Default],: org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33
HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Starting re-loading Contextuals in org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33, 1
HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Removing Contextual from Context........ Managed Bean [class io.descoped.mvc.book.BookController] with qualifiers [@Any @Default],: org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33
HOTSWAP AGENT: 16:35:35.994 DEBUG (org.hotswap.agent.plugin.weld.beans.ContextualReloadHelper) - Starting re-loading Contextuals in org.jboss.weld.context.unbound.DependentContextImpl@3d8e0f33, 1

@oranheim
Copy link
Author

The last fix works perfect :) Thanks again @skybber !

@skybber
Copy link
Contributor

skybber commented Jan 15, 2017

Not at all, thanks for perfect feedback.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants