This Bugzilla instance is a read-only archive of historic NetBeans bug reports. To report a bug in NetBeans please follow the project's instructions for reporting issues.

Bug 233916 - Persistent breakpoint at java.lang.Throwable with jrebel
Summary: Persistent breakpoint at java.lang.Throwable with jrebel
Status: VERIFIED WORKSFORME
Alias: None
Product: javaee
Classification: Unclassified
Component: Debugger (show other bugs)
Version: 7.4
Hardware: PC Linux
: P3 normal (vote)
Assignee: Martin Entlicher
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2013-08-04 14:16 UTC by everflux
Modified: 2013-09-15 15:53 UTC (History)
0 users

See Also:
Issue Type: DEFECT
Exception Reporter:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description everflux 2013-08-04 14:16:36 UTC
Product Version: NetBeans IDE Dev (Build 201308032300)
Java: 1.7.0_25; Java HotSpot(TM) 64-Bit Server VM 23.25-b01
Runtime: Java(TM) SE Runtime Environment 1.7.0_25-b15

I have a maven web project which I launch through Netbeans on Tomcat. For some reason I get breakspoint hits "at exception breakpoint java.lang.Throwable".
This leads to continous context switches to the breakpoint during my development.

When ever I switch to a class from my project I get an error dialog:
"The debugger does not support Hot Fix action. details: schema change not implemented"

In the tomcat log I get exceptions:

2013-08-04 16:11:45 Test: ERROR An error occured in org.zeroturnaround.javarebel.integration.util.WeakUtil$WeakClassEventListenerAdapter@11fb27ac[org.zeroturnaround.javarebel.integration.util.ClassEventListenerUtil$BoundClassEventListener@7d5d7384(org.apache.catalina.loader.WebappClassLoader@3a1f93b)[org.hibernate.validator.internal.engine.ValidatorFactoryImpl@24b1f69]] a null plugin while handling a class reload event:: java.lang.NoClassDefFoundError: org/hibernate/validator/internal/util/ConcurrentReferenceHashMap$KeySet
	at org.hibernate.validator.internal.util.ConcurrentReferenceHashMap.keySet(ConcurrentReferenceHashMap.java:1351)
	at org.hibernate.validator.internal.metadata.BeanMetaDataManager.__resetBeanMetaData(BeanMetaDataManager.java)
	at org.hibernate.validator.internal.engine.ValidatorFactoryImpl.onClassEvent(ValidatorFactoryImpl.java)
	at org.zeroturnaround.javarebel.integration.util.ClassEventListenerUtil$BoundClassEventListener.onClassEvent(JRebel:74)
	at org.zeroturnaround.javarebel.integration.util.WeakUtil$WeakClassEventListenerAdapter.onClassEvent(JRebel:319)
	at com.zeroturnaround.javarebel.wA.a(JRebel:149)
	at com.zeroturnaround.javarebel.wt.a(JRebel:78)
	at com.zeroturnaround.javarebel.SDKReloaderImpl.firePendingReloadListeners(JRebel:48)
	at com.zeroturnaround.javarebel.SDKReloaderImpl.fireReloadListeners(JRebel:103)
	at com.zeroturnaround.javarebel.Dj.reloadClass(JRebel:800)
	at com.zeroturnaround.javarebel.Dx.a(JRebel:241)
	at com.zeroturnaround.javarebel.Dx.b(JRebel:223)
	at com.zeroturnaround.javarebel.Dx.b(JRebel:214)
	at com.zeroturnaround.javarebel.DC.b(JRebel:87)
	at com.zeroturnaround.javarebel.SDKReloaderImpl.checkAndReload(JRebel:64)
	at org.zeroturnaround.javarebel.integration.spring.SpringBeanReloader.beforeRegisterBeanDefinition(SpringBeanReloader.java:404)
	at org.zeroturnaround.javarebel.integration.spring.SpringBeanReloader.beforeRegisterBeanDefinition(SpringBeanReloader.java:373)
	at org.springframework.beans.factory.support.DefaultListableBeanFactory.registerBeanDefinition(DefaultListableBeanFactory.java)
	at org.springframework.beans.factory.support.BeanDefinitionReaderUtils.registerBeanDefinition(BeanDefinitionReaderUtils.java:148)
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.registerBeanDefinition(ClassPathBeanDefinitionScanner.java:285)
	at org.springframework.context.annotation.ClassPathBeanDefinitionScanner.doScan(ClassPathBeanDefinitionScanner.java:257)
	at org.springframework.context.annotation.ComponentScanBeanDefinitionParser.reparse(ComponentScanBeanDefinitionParser.java:84)
	at org.zeroturnaround.javarebel.integration.spring.annotations.ComponentScannerXml.scan(ComponentScannerXml.java:44)
	at org.zeroturnaround.javarebel.integration.spring.annotations.AnnotationBeanDefinitionManager.doRescan(AnnotationBeanDefinitionManager.java:113)
	at org.zeroturnaround.javarebel.integration.spring.annotations.AnnotationBeanDefinitionManager.rescan(AnnotationBeanDefinitionManager.java:93)
	at org.zeroturnaround.javarebel.integration.spring.annotations.AnnotationBeanDefinitionManager.checkRescan(AnnotationBeanDefinitionManager.java:78)
	at org.zeroturnaround.javarebel.integration.spring.SpringBeanReloader.reloadBeanDefinitionsInternal(SpringBeanReloader.java:522)
	at org.zeroturnaround.javarebel.integration.spring.SpringBeanReloader.reloadBeanDefinitions(SpringBeanReloader.java:503)
	at org.zeroturnaround.javarebel.integration.spring.SpringBeanReloader.doCheckAndReloadBeanDefinitions(SpringBeanReloader.java:469)
	at org.zeroturnaround.javarebel.integration.spring.SpringBeanReloader.beforeRequest(SpringBeanReloader.java:182)
	at org.zeroturnaround.javarebel.integration.util.RequestListenerUtil$BoundRequestListener.beforeRequest(JRebel:88)
	at org.zeroturnaround.javarebel.integration.util.WeakUtil$WeakRequestListener.beforeRequest(JRebel:374)
	at com.zeroturnaround.javarebel.xf.a(JRebel:124)
	at com.zeroturnaround.javarebel.xf.a(JRebel:81)
	at com.zeroturnaround.javarebel.xf.fireBeforeRequest(JRebel:64)
	at org.apache.catalina.core.StandardHostValve.__invoke(StandardHostValve.java:167)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
	at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
	at java.lang.Thread.run(Thread.java:724)

Aug 04, 2013 4:11:45 PM org.apache.catalina.core.StandardContext reload
INFO: Reloading Context with name [/pricetool-app] has started

The application is responsive and seems to work, though.

When not launching from the IDE but from CLI with "maven jetty:run" and jrebel java agent, Netbeans doing compile on save, everything works smoothly.

I am not sure if this is Netbeans, maven, tomcat or jrebel related.
Comment 1 everflux 2013-08-04 14:18:55 UTC
BTW: I have removed all breakpoints and made sure that I did not have any set at java.lang.Throwable.
Comment 2 arhan 2013-08-22 20:33:12 UTC
This is not a debugger problem. The stacktrace refers to Hibernate/Spring integration in JRebel. Please report this issue to JRebel forum (if you haven't yet).
Comment 5 Martin Entlicher 2013-08-31 16:35:53 UTC
Please check Tools -> Options -> Java -> Java Debugger -> General -> "Stop on uncaught exceptions" option. It's likely checked on, unchecking this should solve the exception breakpoint problem.
"schema change not implemented" likely means, that the next option "Apply code changes after save" is also turned on. Debugger is then trying to apply code changes in JVM, which does not support schema changes. Since it does not have sense when you use JRebel, turn this off.
These options should solve this issue.
Comment 6 everflux 2013-09-01 09:22:15 UTC
Awesome, thank you very very much!
Comment 7 everflux 2013-09-13 19:38:22 UTC
Works great with jrebel+tomcat+netbeans 7.4rc1 (I did not use the jrebel plugin, but configured the apache platform arguments)
Comment 8 Martin Entlicher 2013-09-15 15:53:08 UTC
Thanks for confirmation.