public static void dumpStackTraceXML(Throwable t, PrintOutputStream pos) { XMLWriter xmlw = new XMLWriter(pos); xmlw.write(t.getMessage() + "\n"); StackTraceElement[] elements = t.getStackTrace(); for (int i = 0; i < elements.length; ++ i) { xmlw.write(elements[i] + "\n"); } } }
public static String handleFatalErrorStatic(Throwable t, PrintOutputStream pos) { // We may have such a fatal misconfiguration that we can't even rely on // IKAT to format this error message Logger.log.fatal("Completely fatal error populating view root", t); pos.println("<html><head><title>Internal Error</title></head></body><pre>"); pos.println(ERROR_STRING); StringWriter todump = new StringWriter(); t.printStackTrace(new PrintWriter(todump)); XMLWriter xml = new XMLWriter(pos); xml.write(todump.toString()); pos.println("</pre></body></html>"); pos.close(); return HANDLED; }
/** A slow method for XML-encoding text * * @param toencode text to encode * @return encoded text */ public static String encode(String toencode) { StringPOS pos = new StringPOS(); XMLWriter xmlw = new XMLWriter(pos); xmlw.write(toencode); return pos.toString(); }
/** * Copies text from input to output, converting newlines into XHTML * <br/> elements. The supplied streams WILL be closed! */ public void copyReader(Reader r, PrintOutputStream pos) { BufferedReader br = new BufferedReader(r); XMLWriter xmlw = new XMLWriter(pos); try { while (true) { String line = br.readLine(); if (line == null) break; xmlw.write(line); // TODO: make some kind of "XMLFilterWriter" architecture if necessary // writeEncodeLinks(xmlw, line); xmlw.writeRaw("<br/>"); } } catch (Throwable t) { throw UniversalRuntimeException.accumulate(t, "Error rendering text as HTML"); } finally { StreamCloseUtil.closeReader(r); pos.close(); } }
public void render(PrintOutputStream pos) { IDassigner = new IDAssigner(debugrender ? ContentTypeInfo.ID_FORCE : contenttypeinfo.IDStrategy); // Add and remove the flyweight immediately around "resolveBranches" - instances of it // will be dynamically "invented" around the tree wherever there are messages messageFlyweight = new MessageFlyweight(view.viewroot); branchmap = BranchResolver.resolveBranches(globalmap, view.viewroot, roott.rootlump, idrewritemap); view.viewroot.remove(messageFlyweight.rsfMessages); messagelump = (XMLLump) branchmap.get(messageFlyweight.rsfMessages); collectContributions(); messagetargets = MessageTargetter.targetMessages(branchmap, view, messagelist, globalmessagetarget); String declaration = contenttypeinfo.get().declaration; if (declaration != null) pos.print(declaration); this.pos = pos; this.xmlw = new XMLWriter(pos); rsc = new RenderSystemContext(debugrender, view, pos, xmlw, IDassigner, collected, idrewritemap); rendereddeadletters = false; if (debugrender) { debugGlobalTargets(); } renderRecurse(view.viewroot, roott.rootlump, roott.lumps[roott.roottagindex]); }
this.xmlw = new XMLWriter(os); if (indentlevel == 0) { xmlw.writeDeclaration();