7006270: Several javadoc regression tests are failing on windows
Reviewed-by: jjg
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/ClassWriterImpl.java Mon Dec 13 13:44:47 2010 -0800
@@ -239,7 +239,7 @@
Type superclass = Util.getFirstVisibleSuperClass(classDoc,
configuration());
if (superclass != null) {
- pre.addContent("\n");
+ pre.addContent(DocletConstants.NL);
pre.addContent("extends ");
Content link = new RawHtml(getLink(new LinkInfoImpl(
LinkInfoImpl.CONTEXT_CLASS_SIGNATURE_PARENT_NAME,
@@ -257,7 +257,7 @@
continue;
}
if (counter == 0) {
- pre.addContent("\n");
+ pre.addContent(DocletConstants.NL);
pre.addContent(isInterface? "extends " : "implements ");
} else {
pre.addContent(", ");
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDoclet.java Mon Dec 13 13:44:47 2010 -0800
@@ -144,11 +144,12 @@
!configuration.nohelp) {
HelpWriter.generate(configuration);
}
- // If a stylesheet file is not specified, copy the default stylesheet.
+ // If a stylesheet file is not specified, copy the default stylesheet
+ // and replace newline with platform-specific newline.
if (configuration.stylesheetfile.length() == 0) {
Util.copyFile(configuration, "stylesheet.css", Util.RESOURCESDIR,
(configdestdir.isEmpty()) ?
- System.getProperty("user.dir") : configdestdir, false);
+ System.getProperty("user.dir") : configdestdir, false, true);
}
}
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/HtmlDocletWriter.java Mon Dec 13 13:44:47 2010 -0800
@@ -216,15 +216,15 @@
public Content getAllClassesLinkScript(String id) {
HtmlTree script = new HtmlTree(HtmlTag.SCRIPT);
script.addAttr(HtmlAttr.TYPE, "text/javascript");
- String scriptCode = "<!--\n" +
- " allClassesLink = document.getElementById(\"" + id + "\");\n" +
- " if(window==top) {\n" +
- " allClassesLink.style.display = \"block\";\n" +
- " }\n" +
- " else {\n" +
- " allClassesLink.style.display = \"none\";\n" +
- " }\n" +
- " //-->\n";
+ String scriptCode = "<!--" + DocletConstants.NL +
+ " allClassesLink = document.getElementById(\"" + id + "\");" + DocletConstants.NL +
+ " if(window==top) {" + DocletConstants.NL +
+ " allClassesLink.style.display = \"block\";" + DocletConstants.NL +
+ " }" + DocletConstants.NL +
+ " else {" + DocletConstants.NL +
+ " allClassesLink.style.display = \"none\";" + DocletConstants.NL +
+ " }" + DocletConstants.NL +
+ " //-->" + DocletConstants.NL;
Content scriptContent = new RawHtml(scriptCode);
script.addContent(scriptContent);
Content div = HtmlTree.DIV(script);
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/Comment.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/Comment.java Mon Dec 13 13:44:47 2010 -0800
@@ -82,9 +82,9 @@
*/
public void write(StringBuilder contentBuilder) {
if (!endsWithNewLine(contentBuilder))
- contentBuilder.append("\n");
+ contentBuilder.append(DocletConstants.NL);
contentBuilder.append("<!-- ");
contentBuilder.append(commentText);
- contentBuilder.append(" -->\n");
+ contentBuilder.append(" -->" + DocletConstants.NL);
}
}
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/DocType.java Mon Dec 13 13:44:47 2010 -0800
@@ -48,7 +48,7 @@
*/
private DocType(String type, String dtd) {
docType = "<!DOCTYPE HTML PUBLIC \"-//W3C//DTD HTML 4.01 " + type +
- "//EN\" \"" + dtd + "\">\n";
+ "//EN\" \"" + dtd + "\">" + DocletConstants.NL;
}
/**
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlTree.java Mon Dec 13 13:44:47 2010 -0800
@@ -753,7 +753,7 @@
*/
public void write(StringBuilder contentBuilder) {
if (!isInline() && !endsWithNewLine(contentBuilder))
- contentBuilder.append("\n");
+ contentBuilder.append(DocletConstants.NL);
String tagString = htmlTag.toString();
contentBuilder.append("<" + tagString);
Iterator<HtmlAttr> iterator = attrs.keySet().iterator();
@@ -772,6 +772,6 @@
if (htmlTag.endTagRequired())
contentBuilder.append("</" + tagString + ">");
if (!isInline())
- contentBuilder.append("\n");
+ contentBuilder.append(DocletConstants.NL);
}
}
--- a/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/formats/html/markup/HtmlWriter.java Mon Dec 13 13:44:47 2010 -0800
@@ -287,11 +287,11 @@
HtmlTree script = new HtmlTree(HtmlTag.SCRIPT);
if(winTitle != null && winTitle.length() > 0) {
script.addAttr(HtmlAttr.TYPE, "text/javascript");
- String scriptCode = "<!--\n" +
- " if (location.href.indexOf('is-external=true') == -1) {\n" +
- " parent.document.title=\"" + winTitle + "\";\n" +
- " }\n" +
- "//-->\n";
+ String scriptCode = "<!--" + DocletConstants.NL +
+ " if (location.href.indexOf('is-external=true') == -1) {" + DocletConstants.NL +
+ " parent.document.title=\"" + winTitle + "\";" + DocletConstants.NL +
+ " }" + DocletConstants.NL +
+ "//-->" + DocletConstants.NL;
RawHtml scriptContent = new RawHtml(scriptCode);
script.addContent(scriptContent);
}
@@ -306,15 +306,15 @@
protected Content getFramesetJavaScript(){
HtmlTree script = new HtmlTree(HtmlTag.SCRIPT);
script.addAttr(HtmlAttr.TYPE, "text/javascript");
- String scriptCode = "\n targetPage = \"\" + window.location.search;\n" +
- " if (targetPage != \"\" && targetPage != \"undefined\")\n" +
- " targetPage = targetPage.substring(1);\n" +
- " if (targetPage.indexOf(\":\") != -1)\n" +
- " targetPage = \"undefined\";\n" +
- " function loadFrames() {\n" +
- " if (targetPage != \"\" && targetPage != \"undefined\")\n" +
- " top.classFrame.location = top.targetPage;\n" +
- " }\n";
+ String scriptCode = DocletConstants.NL + " targetPage = \"\" + window.location.search;" + DocletConstants.NL +
+ " if (targetPage != \"\" && targetPage != \"undefined\")" + DocletConstants.NL +
+ " targetPage = targetPage.substring(1);" + DocletConstants.NL +
+ " if (targetPage.indexOf(\":\") != -1)" + DocletConstants.NL +
+ " targetPage = \"undefined\";" + DocletConstants.NL +
+ " function loadFrames() {" + DocletConstants.NL +
+ " if (targetPage != \"\" && targetPage != \"undefined\")" + DocletConstants.NL +
+ " top.classFrame.location = top.targetPage;" + DocletConstants.NL +
+ " }" + DocletConstants.NL;
RawHtml scriptContent = new RawHtml(scriptCode);
script.addContent(scriptContent);
return script;
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/Content.java Mon Dec 13 13:44:47 2010 -0800
@@ -101,6 +101,6 @@
*/
public boolean endsWithNewLine(StringBuilder contentBuilder) {
return ((contentBuilder.length() == 0) ||
- (contentBuilder.substring(contentBuilder.length() - 1).equals("\n")));
+ (contentBuilder.toString().endsWith(DocletConstants.NL)));
}
}
--- a/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/src/share/classes/com/sun/tools/doclets/internal/toolkit/util/Util.java Mon Dec 13 13:44:47 2010 -0800
@@ -211,14 +211,14 @@
try {
while ((len = input.read(bytearr)) != -1) {
output.write(bytearr, 0, len);
- }
+ }
} catch (FileNotFoundException exc) {
} catch (SecurityException exc) {
- } finally {
+ } finally {
input.close();
output.close();
+ }
}
- }
/**
* Copy the given directory contents from the source package directory
@@ -330,7 +330,7 @@
String resourcefile, boolean overwrite) {
String destresourcesdir = configuration.destDirName + RESOURCESDIR;
copyFile(configuration, resourcefile, RESOURCESDIR, destresourcesdir,
- overwrite);
+ overwrite, false);
}
/**
@@ -345,23 +345,46 @@
* @param overwrite A flag to indicate whether the file in the
* destination directory will be overwritten if
* it already exists.
+ * @param replaceNewLine true if the newline needs to be replaced with platform-
+ * specific newline.
*/
public static void copyFile(Configuration configuration, String file, String source,
- String destination, boolean overwrite) {
+ String destination, boolean overwrite, boolean replaceNewLine) {
DirectoryManager.createDirectory(configuration, destination);
File destfile = new File(destination, file);
if(destfile.exists() && (! overwrite)) return;
try {
InputStream in = Configuration.class.getResourceAsStream(
- source + DirectoryManager.URL_FILE_SEPARATOR + file);
+ source + DirectoryManager.URL_FILE_SEPARATOR + file);
if(in==null) return;
OutputStream out = new FileOutputStream(destfile);
- byte[] buf = new byte[2048];
- int n;
- while((n = in.read(buf))>0) out.write(buf,0,n);
- in.close();
- out.close();
- } catch(Throwable t) {}
+ try {
+ if (!replaceNewLine) {
+ byte[] buf = new byte[2048];
+ int n;
+ while((n = in.read(buf))>0) out.write(buf,0,n);
+ } else {
+ BufferedReader reader = new BufferedReader(new InputStreamReader(in));
+ BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(out));
+ try {
+ String line;
+ while ((line = reader.readLine()) != null) {
+ writer.write(line);
+ writer.write(DocletConstants.NL);
+ }
+ } finally {
+ reader.close();
+ writer.close();
+ }
+ }
+ } finally {
+ in.close();
+ out.close();
+ }
+ } catch (IOException ie) {
+ ie.printStackTrace();
+ throw new DocletAbortException();
+ }
}
/**
--- a/langtools/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java Fri Dec 10 07:38:28 2010 -0800
+++ b/langtools/test/com/sun/javadoc/testHtmlDocument/TestHtmlDocument.java Mon Dec 13 13:44:47 2010 -0800
@@ -44,6 +44,7 @@
private static final String BUGID = "6851834";
private static final String BUGNAME = "TestHtmlDocument";
private static final String FS = System.getProperty("file.separator");
+ private static final String LS = System.getProperty("line.separator");
private static String srcdir = System.getProperty("test.src", ".");
// Entry point
@@ -143,13 +144,17 @@
System.out.println("\nFILE DOES NOT EXIST: " + filename);
}
BufferedReader in = new BufferedReader(new FileReader(file));
+ StringBuilder fileString = new StringBuilder();
// Create an array of characters the size of the file
- char[] allChars = new char[(int)file.length()];
- // Read the characters into the allChars array
- in.read(allChars, 0, (int)file.length());
- in.close();
- // Convert to a string
- String allCharsString = new String(allChars);
- return allCharsString;
+ try {
+ String line;
+ while ((line = in.readLine()) != null) {
+ fileString.append(line);
+ fileString.append(LS);
+ }
+ } finally {
+ in.close();
+ }
+ return fileString.toString();
}
}