-
Bug
-
Resolution: Fixed
-
P3
-
6, 6u18
-
h1200
-
x86
-
solaris_8, windows_xp
-
Verified
Issue | Fix Version | Assignee | Priority | Status | Resolution | Resolved In Build |
---|---|---|---|---|---|---|
JDK-2207319 | 7 | Joe Wang | P3 | Closed | Fixed | b112 |
JDK-2200221 | 6u23 | Abhijit Saha | P3 | Resolved | Fixed | b02 |
JDK-2199476 | 6u22-rev | Abhijit Saha | P3 | Closed | Fixed | b05 |
JDK-2194004 | 6u21-rev | Abhijit Saha | P3 | Resolved | Fixed | b11 |
FULL PRODUCT VERSION :
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7600]
A DESCRIPTION OF THE PROBLEM :
A change to com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.java in 1.6.0_18 appears to cause a performance regression when the output encoding is US-ASCII.
I noticed this when running ant junitreport tasks with output on file servers -- the time to process junit output jumped from a few seconds to tens of minutes. I tracked it down to com.sun.org.apache.xml.internal.serializer.WriterToASCI being initialized with a non-buffered FileOutputStream.
As far as I can tell the source of this problem is a change on line 554 of AbstractTranslet.java:
factory.setWriter(new FileWriter(filename, append));
became
factory.setOutputStream(new FileOutputStream(filename, append));
This change from a Writer to an OutputStream triggers com.sun.org.apache.xml.internal.serializer.ToStream to create a WriterToAsci on top of the unbuffered stream.
Subsequent writes of one byte at a time to this unbuffered stream cause lots of network traffic, but not much progress ;-)
REPRODUCIBILITY :
This bug can be reproduced always.
Release Regression From : 6u17
The above release value was the last known release where this
bug was not reproducible. Since then there has been a regression.
java version "1.6.0_18"
Java(TM) SE Runtime Environment (build 1.6.0_18-b07)
Java HotSpot(TM) 64-Bit Server VM (build 16.0-b13, mixed mode)
ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7600]
A DESCRIPTION OF THE PROBLEM :
A change to com.sun.org.apache.xalan.internal.xsltc.runtime.AbstractTranslet.java in 1.6.0_18 appears to cause a performance regression when the output encoding is US-ASCII.
I noticed this when running ant junitreport tasks with output on file servers -- the time to process junit output jumped from a few seconds to tens of minutes. I tracked it down to com.sun.org.apache.xml.internal.serializer.WriterToASCI being initialized with a non-buffered FileOutputStream.
As far as I can tell the source of this problem is a change on line 554 of AbstractTranslet.java:
factory.setWriter(new FileWriter(filename, append));
became
factory.setOutputStream(new FileOutputStream(filename, append));
This change from a Writer to an OutputStream triggers com.sun.org.apache.xml.internal.serializer.ToStream to create a WriterToAsci on top of the unbuffered stream.
Subsequent writes of one byte at a time to this unbuffered stream cause lots of network traffic, but not much progress ;-)
REPRODUCIBILITY :
This bug can be reproduced always.
Release Regression From : 6u17
The above release value was the last known release where this
bug was not reproducible. Since then there has been a regression.
- backported by
-
JDK-2194004 XSLTC performance regression in 1.6.0_18
- Resolved
-
JDK-2200221 XSLTC performance regression in 1.6.0_18
- Resolved
-
JDK-2199476 XSLTC performance regression in 1.6.0_18
- Closed
-
JDK-2207319 XSLTC performance regression in 1.6.0_18
- Closed