JDK-7147666 : High lock time for com.sun.org.apache.xerces.internal.impl.dv.DTDDVFactory.getInstance()
  • Type: Bug
  • Component: xml
  • Sub-Component: javax.xml.parsers
  • Affected Version: 7u4
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: solaris
  • CPU: sparc
  • Submitted: 2012-02-22
  • Updated: 2014-11-27
  • Resolved: 2012-06-03
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.
Other JDK 6 JDK 7 JDK 8
5.0u81Fixed 6u35Fixed 7u4 b16Fixed 8Fixed
Notice: A previous bug report has been submitted according to CR 7080954. According to CR 7080954, it should be fixed in jdk7u4 b07 with JAXP 1.4.5 update 1, but per my testing on build b07 and b12 it is not fixed.

This lock is discovered by parsing files(approximately 13KB size) with DOM parsers on T4, using a benchmark called XMLTest. With jdk7u4 b07, com.sun.org.apache.xerces.internal.impl.dv.DTDDVFactory.getInstance() is listed as a top lock class, occupied approximately 57% of total thread time; similar observation in b12.

SQE OK to take the fix to jdk5 backport as far as we already well tested it in jdk6 and later.

JAXP in JDK8 was sync-ed with that in 7u4

EVALUATION synchronization is unnecessary (historical changes), removed.

WORK AROUND This lock can be completely removed by manually subsititute the class file in runtime library (rt.jar) with the one in a JAXP engineering build provided by Joe Wang, increasing DOM parsing throughput by 36%.

PUBLIC COMMENTS This lock is previously discovered in jdk7 with similar performance. CR 7080954 suggested that it is fixed with JAXP 1.4.5 update 1. Since now jdk7u4 b07 and b12 gave similar performance and work around, JAXP 1.4.5 update 1 might not be in place.