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

Quartz errors break down the frontend #48

Closed
GoogleCodeExporter opened this issue Jun 21, 2015 · 1 comment
Closed

Quartz errors break down the frontend #48

GoogleCodeExporter opened this issue Jun 21, 2015 · 1 comment

Comments

@GoogleCodeExporter
Copy link

Quartz stores jobs in the database with Java class information. The problem 
occurs if the Java code changes and the class information in the database refer 
to deleted and/or renamed classes. 

What steps will reproduce the problem?
1. Configure an unknown class in the Jobs table of Quartz
2. Startup the server with JavaMelody

What is the expected output? What do you see instead?
I would assume that these jobs are ignored by the frontend or listed with an 
error status. Instead the frontend shows a "HTTP status 500" with the following 
root cause (Stack trace is attached below.

What version of the product are you using? On what application server, JDK,
operating system?
JavaMelody 1.19.0 on JBoss 4, Linux

I hope that this helps to improve this wonderful tool!

Thanks in advance!

Christian


Stack trace:
org.quartz.JobPersistenceException: Couldn't retrieve job because a required 
class was not found: xx.xy.AnUnknownClass [See nested exception: 
java.lang.ClassNotFoundException: xx.xy.AnUnknownClass]
    org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveJob(JobStoreSupport.java:1392)
    org.quartz.impl.jdbcjobstore.JobStoreSupport$7.execute(JobStoreSupport.java:1372)
    org.quartz.impl.jdbcjobstore.JobStoreCMT.executeInLock(JobStoreCMT.java:244)
    org.quartz.impl.jdbcjobstore.JobStoreSupport.executeWithoutLock(JobStoreSupport.java:3665)
    org.quartz.impl.jdbcjobstore.JobStoreSupport.retrieveJob(JobStoreSupport.java:1369)
    org.quartz.core.QuartzScheduler.getJobDetail(QuartzScheduler.java:1318)
    org.quartz.impl.StdScheduler.getJobDetail(StdScheduler.java:561)
    net.bull.javamelody.JobInformations.getAllJobsOfScheduler(JobInformations.java:145)
    net.bull.javamelody.JobInformations.buildJobInformationsList(JobInformations.java:124)
    net.bull.javamelody.JavaInformations.<init>(JavaInformations.java:184)
    net.bull.javamelody.MonitoringFilter.doMonitoring(MonitoringFilter.java:538)
    net.bull.javamelody.MonitoringFilter.doFilter(MonitoringFilter.java:395)
    bflexx.webui.filter.DefaultServletFilter.doFilter(DefaultServletFilter.java:36)
 org.jboss.web.tomcat.filters.ReplyHeaderFilter.doFilter(ReplyHeaderFilter.java:96)

Original issue reported on code.google.com by mobil...@gmail.com on 5 Oct 2010 at 9:20

@GoogleCodeExporter
Copy link
Author

I understand the problem.
It seems a bit strange to me to keep in the database jobs with classes which 
don't exist any more, but the report should be displayed anyway.
Those invalid jobs can't be displayed with an error status, so the invalid jobs 
will be ignored to fix the issue and they will not be displayed in the report 
(the exception above will be logged at "debug" level for each of those jobs).

I have committed the fix in trunk (revision 1304) for the next release (1.21).
I have made a new build, from the current trunk including the fix, which is 
available at:
http://javamelody.googlecode.com/files/javamelody-20101006.jar

Original comment by evernat@free.fr on 6 Oct 2010 at 3:00

  • Changed state: Fixed

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

No branches or pull requests

1 participant