Clean up error handling to make things slightly friendlier on an initial install.
[cfb.git] / prod / net / jaekl / cfb / analyze / HtmlReport.java
index e2e76cb4bae3b1e2f678fd93046931f81c3000ab..166a140886ee824d3c429ac467077867c0f069c7 100644 (file)
@@ -1,12 +1,12 @@
 package net.jaekl.cfb.analyze;
 
 import java.io.File;
-import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.PrintWriter;
 
 import net.jaekl.cfb.CfbBundle;
 import net.jaekl.cfb.store.Location;
+import net.jaekl.cfb.util.Command;
 import net.jaekl.cfb.xml.BugInstance;
 import net.jaekl.cfb.xml.messages.BugPattern;
 import net.jaekl.cfb.xml.messages.MessageCollection;
@@ -27,10 +27,10 @@ public class HtmlReport {
        
        public void write(File output) throws IOException
        {
-               try ( FileOutputStream fos = new FileOutputStream(output);
-                         PrintWriter pw = new PrintWriter(fos); )
+               try ( PrintWriter pw = new PrintWriter(output, Command.UTF_8) )
                {
                        write(pw);
+                       pw.flush();
                }
        }
        
@@ -86,9 +86,7 @@ public class HtmlReport {
                                }
                        }
                        
-                       pw.write("        <TR>");
-                       pw.write("          <TD COLSPAN=\"2\" CLASS=\"Loc\">" + sb.toString() + "</TD>");
-                       pw.write("        </TR>");                                      
+                       pw.println("        <TR><TD COLSPAN=\"2\" CLASS=\"Loc\">" + sb.toString() + "</TD></TR>");                                      
                }
        }
        
@@ -103,21 +101,20 @@ public class HtmlReport {
                for (BugInstance bug : bugs) {
                        BugPattern pattern = m_msgColl.getPattern(bug.getType());
                        
-                       pw.write("    <P>");
-                       pw.write("      <TABLE CLASS=\"bug\">");
-                       pw.write("        <TR>");
-                       pw.write("          <TD WIDTH=\"20%\">" + bug.getCategory() + "</TD>");
-                       pw.write("          <TD>" + bug.getType() + "</TD>");
-                       pw.write("        </TR>");
+                       pw.println("    <P>");
+                       pw.println("      <TABLE CLASS=\"Bug\">");
+                       pw.println("        <TR>");
+                       pw.println("          <TD WIDTH=\"20%\">" + bug.getCategory() + "</TD>");
+                       pw.println("          <TD>" + bug.getType() + "</TD>");
+                       pw.println("        </TR>");
                        writeBugLocations(pw, bug);
-                       pw.write("        <TR>");
-                       pw.write("          <TD COLSPAN=\"2\">" + pattern.getShort() + "</TD>");
-                       pw.write("        </TR>");
-                       pw.write("        <TR>");
-                       pw.write("          <TD COLSPAN=\"2\">" + pattern.getDetails() + "</TD>");
-                       pw.write("        </TR>");
-                       pw.write("      </TABLE>");
-                       pw.write("    </P>");
+                       pw.println("        <TR><TD COLSPAN=\"2\"><B>" + pattern.getShort() + "</B></TD></TR>");
+                       pw.println("        <TR>");
+                       pw.println("          <TD COLSPAN=\"2\">" + pattern.getDetails() + "</TD>");
+                       pw.println("        </TR>");
+                       pw.println("      </TABLE>");
+                       pw.println("    </P>");
+                       pw.println("    <HR/>");
                }
        }
        
@@ -144,6 +141,11 @@ public class HtmlReport {
        {
                final String SEP = ":&nbsp;&nbsp;";
                
+               String earlierVersion = "";
+               if (null != m_delta.getEarlier()) {
+                       earlierVersion = m_delta.getEarlier().constructVersionText(m_bundle);
+               }
+               
                writeSectionHeading(pw, trans(CfbBundle.CFB_REPORT));
                pw.println("    <P>");
                pw.println("      <TABLE>");
@@ -153,7 +155,7 @@ public class HtmlReport {
                pw.println("        </TR>");
                pw.println("        <TR>");
                pw.println("          <TD CLASS=\"CategoryName\">" + trans(CfbBundle.OLD_VERSION) + SEP + "</TD>");
-               pw.println("          <TD CLASS=\"CategoryValue\">" + m_delta.getEarlier().constructVersionText(m_bundle) + "</TD>");
+               pw.println("          <TD CLASS=\"CategoryValue\">" + earlierVersion + "</TD>");
                pw.println("        </TR>");
                pw.println("        <TR><TD>&nbsp;</TD></TR>");
                pw.println("        <TR>");