Java Platform, Standard Edition Troubleshooting Guide
Next
Contents
Title and Copyright Information
Preface
Part I General Java Troubleshooting
1 Prepare Java for Troubleshooting
- 1.1 Set Up Java for Troubleshooting
- 1.2 Enable Options/Flags for JVM Troubleshooting
- 1.3 Gather Relevant Data
2 Diagnostic Tools
- 2.1 Diagnostic Tools Overview
- 2.2 Java Mission Control
- 2.3 What are Java Flight Recordings
- 2.4 How to Produce a Flight Recording
- 2.5 Inspect a Flight Recording
- 2.6 The jcmd Utility
- 2.7 Native Memory Tracking
- 2.8 HPROF
- 2.9 JConsole
- 2.10 Java VisualVM
- 2.11 The jdb Utility
- 2.12 The jhat Utility
- 2.13 The jinfo Utility
- 2.14 The jmap Utility
- 2.15 The jps Utility
- 2.16 The jstack Utility
- 2.17 The jstat Utility
- 2.18 The visualgc Tool
- 2.19 Control+Break Handler
- 2.20 Native Operating System Tools
- 2.21 Custom Diagnostic Tools
- NMT Memory Categories
- Postmortem Diagnostics Tools
- Hung Processes Tools
- Monitoring Tools
- Other Tools, Options, Variables and Properties
- The java.lang.management Package
- The java.lang.instrument Package
- The java.lang.Thread Class
- JVM Tool Interface
- The jrunscript Utility
- The jsadebugd Daemon
- The jstatd Daemon
- Thread States for a Thread Dump
- Troubleshooting Tools Based on Operating System
3 Troubleshoot Memory Leaks
- 3.1 Debug a Memory Leak Using Java Flight Recorder
- 3.2 Understand the OutOfMemoryError Exception
- 3.3 Troubleshoot a Crash Instead of OutOfMemoryError
- 3.4 Diagnose Leaks in Java Language Code
- 3.5 Diagnose Leaks in Native Code
4 Troubleshoot Performance Issues Using JFR
- 4.1 JFR Overhead
- 4.2 Find Bottlenecks
- 4.3 Garbage Collection Performance
- 4.4 Synchronization Performance
- 4.5 I/O Performance
- 4.6 Code Execution Performance
Part II Debug JVM Issues
5 Troubleshoot System Crashes
- 5.1 Determine Where the Crash Occurred
- 5.2 Find a Workaround
- 5.3 Microsoft Visual C++ Version Considerations
6 Troubleshoot Process Hangs and Loops
7 Handle Signals and Exceptions
- 7.1 Handle Signals on Oracle Solaris and Linux
- 7.2 Handle Exceptions on Windows
- 7.3 Signal Chaining
- 7.4 Handle Exceptions using Java HotSpot VM
- Console Handlers
- Signals Used in Oracle Solaris and Linux
Part III Debug Core Library Issues
8 Time Zone Settings in the JRE
- 8.1 Native Time Zone Information and the JRE
- 8.2 Determine the Default Time Zone on Windows
- 8.2.1 Check the Default Time Zone JRE Reports
- 8.2.2 Determine the Setting in the Control Panel
- 8.2.3 Check for Automatic Daylight Saving Time Adjustment
- 8.2.4 Set the Default Time Zone in the Control Panel
- 8.2.5 Check -Duser.timezone System Property
- 8.2.6 Special Tools in Windows 7
- 8.2.7 JRE Internal Representation of Time Zone Mappings
Part IV Debug Client Issues
9 Introduction to Client Issues
- 9.1 Java SE Desktop Technologies
- 9.2 General Steps to Troubleshoot an Issue
- 9.3 Identify the Type of Issue
- 9.4 Basic Tools
- 9.5 JDWP
10 AWT
- 10.1 Debug Tips for AWT
- 10.2 Layout Manager Issues
- 10.3 Key Events
- 10.4 Modality Issues
- 10.5 Memory Leaks
- 10.6 AWT Crashes
- 10.7 Focus Events
- 10.8 Data Transfer
- 10.9 Other Issues
- 10.10 Heavyweight/Lightweight Components Mix
11 Java 2D Pipeline Rendering and Properties
- 11.1 Oracle Solaris and Linux: X11 Pipeline
- 11.2 Windows OS - DirectDraw/GDI Pipeline
- 11.3 Windows OS - Direct3D Pipeline in Full-Screen Mode
- 11.4 OpenGL Pipeline in Oracle Solaris, Linux and Windows
- Latest OpenGL Drivers
12 Java 2D
13 Swing
- 13.1 General Debug Tips for Swing
- 13.2 Specific Debug Tips for Swing
- 13.2.1 Incorrect Threading
- 13.2.2 JComponent Children Overlap
- 13.2.3 Display Update
- 13.2.4 Model Change
- 13.2.5 Add or Remove Components
- 13.2.6 Opaque Override
- 13.2.7 Permanent Changes to Graphics
- 13.2.8 Custom Painting and Double Buffering
- 13.2.9 Opaque Content Pane
- 13.2.10 Renderer Call for Each Cell Performance
- 13.2.11 Possible Leaks
- 13.2.12 Mix Heavywight and Lightweight Components
- 13.2.13 Use Synth
- 13.2.14 Track Activity on Event Dispatch Thread
- 13.2.15 Specify Default Layout Manager
- 13.2.16 Listener Object Dispatched to Incorrect Component
- 13.2.17 Add a Component to Content Pane
- 13.2.18 Drag and Drop Support
- 13.2.19 One Parent for a Component
- 13.2.20 JFileChooser Issues with Windows Shortcuts
14 Internationalization
15 Java Sound
16 Applets and Java Web Start Applications
- 16.1 Configuration Problems
- 16.2 Troubleshoot Applets
- 16.3 Avoid Security Dialogs
- 16.4 Development Tips
Part V Submit Bug Reports
17 Submit a Bug Report
- 17.1 Check for Fixes in Update Releases
- 17.2 Prepare to Submit a Bug Report
- 17.3 Collect Data for a Bug Report
- 17.4 Collect Core Dumps
Part VI Appendix
A Fatal Error Log
- Location of Fatal Error Log
- Description of Fatal Error Log
- Header Format
- Thread Section Format
- Process Section Format
- System Section Format
B Java 2D Properties
C Environment Variables and System Properties
- The
JAVA_HOME
Environment Variable - The
JAVA_TOOL_OPTIONS
Environment Variable - The
java.security.debug
System Property