JDK-8016222 : Enable all Exceptions disables errors Errors
  • Type: Bug
  • Component: hotspot
  • Sub-Component: jfr
  • Affected Version: 7u40,8
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-06-10
  • Updated: 2014-02-12
  • Resolved: 2013-06-24
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
7u40Fixed 8 b98Fixed
The control element "exception-level" has 3 levels:

Off - Turns off all exceptions and errors (works)
Errors Only - Turns on Errors and off Exceptions (works)
All Exceptions - Should turn on both Errors and Exceptions. However, it turns off Errors.

This is a bug in the jfc files, found in b28 of 7u40.
SQE ok. It seems important to show both errors and exceptions. Low risk change.

The text "All Exceptions" should be changed to "All Exceptions, including Errors" to avoid confusion.

7u40-critical-request justification: Being able to see Error Exceptions is important when analyzing a flight recording, i.e if a StackOverflowError has occured or not, so a change to the jfc-file is needed. It's a small fix, only a few lines of XML. Low risk. Fix ready.

After further discussions with David, I think we should fix the issue. Sorry for any confusion i have caused.. What was not clear (to me at least) at our previous discussion was that it's not possible to create a GUI for the default case with the current design. 1) The reason we have two events (Java Errors and Java Exceptions) is because we can't have exception on by default because of pathological cases, i.e. a loop where Long.parse() throw NFE all the time filling up the buffers 2) So if we emit "Java Error" we want to display it in Mission Control, othervise the event would be meaningless. 3) Mission Control can't aggregate exception and errors in the same table since some exception would occur twice, so they must make two tables; "Errors" and "Exceptions". 4) Now if we turn off Error in "All Exceptions" selection the Error table would be empty, which makes no sense to user.

Works as designed.