aboutsummaryrefslogtreecommitdiffstats
path: root/trunk/infrastructure/framework-src/modules/exceptionutils.js
diff options
context:
space:
mode:
Diffstat (limited to 'trunk/infrastructure/framework-src/modules/exceptionutils.js')
-rw-r--r--trunk/infrastructure/framework-src/modules/exceptionutils.js210
1 files changed, 0 insertions, 210 deletions
diff --git a/trunk/infrastructure/framework-src/modules/exceptionutils.js b/trunk/infrastructure/framework-src/modules/exceptionutils.js
deleted file mode 100644
index b572a3a..0000000
--- a/trunk/infrastructure/framework-src/modules/exceptionutils.js
+++ /dev/null
@@ -1,210 +0,0 @@
-/**
- * Copyright 2009 Google Inc.
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS-IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-import("ejs.EJS");
-import("funhtml.*");
-import("jsutils.{scalaF0,scalaF1}");
-import("stringutils.{toHTML,sprintf}");
-
-function _getException(ex) {
- if (ex instanceof java.lang.Throwable) {
- return new net.appjet.bodylock.JSRuntimeException(ex.getMessage(), ex);
- } else if (ex.javaException) {
- return new net.appjet.bodylock.JSRuntimeException(ex.javaException.getMessage(), ex.javaException);
- } else if (ex.rhinoException) {
- return new net.appjet.bodylock.JSRuntimeException(ex.rhinoException.getMessage(), ex.rhinoException);
- } else {
- return ex;
- }
-}
-
-function _convertStackFrameToTable(id, frame) {
- var r = frame.errorContext(4);
- var out = [];
- var t = TABLE({className: "codecontext"});
- var counter = r._1();
- r._3().foreach(scalaF1(function(s) {
- var row = TR(TD({className: "linecell"}, counter++), TD(String(s)));
- if (counter-1 == frame.errorLine())
- row[1].attribs['class'] = "offendingline";
- t.push(row);
- }));
- if (id != 0)
- out.push(DIV({className: "errorframe",
- onclick: "toggleFrameView('"+id+"')"},
- IMG({className: "zippy", style: "margin-right: 0.5em;", align: "top", src: "http://appjet.com/img/open-arrow.png", id: "image"+id}),
- SPAN({className: "errordetail"}, "...was called from "+frame.name()+ " (line "+frame.errorLine()+"):"),
- SPAN({className: "sourceline"}, " "+frame.errorContext(0)._3().first())));
- out.push(DIV({id: 'frame'+id, style: (id == 0 ? "" : "display: none;")}, t));
- return out.map(function(tag) { return toHTML(tag); }).join("");
-}
-
-function getStackTraceHTML(ex) {
- ex = _getException(ex);
- if (ex.frames().isEmpty())
- return "No stack trace available.";
- var out = [];
- var counter = 0;
- var firstFrame = ex.frames().first();
- out.push(toHTML(DIV({id: "errortitle"}, "Error in "+firstFrame.name())));
- out.push(toHTML(DIV({id: "errormessage"}, ""+ex.cause().getMessage()+" at "+firstFrame.name()+" (Line "+firstFrame.errorLine()+")")));
- ex.frames().foreach(scalaF1(function(frame) {
- out.push(_convertStackFrameToTable(counter++, frame));
- }));
- return out.join("");
-}
-
-function getStackTraceFullpage(ex) {
- var tmpl = new EJS({text: _tmpl});
- return tmpl.render({trace: getStackTraceHTML(ex)});
-}
-
-function getStackTracePlain(ex) {
- ex = _getException(ex);
- if (ex.frames().isEmpty()) {
- var cause = ex.cause();
- var sw = new java.io.StringWriter();
- cause.printStackTrace(new java.io.PrintWriter(sw));
- return sw.toString();
- }
- var out = [];
- var firstFrame = ex.frames().first();
- out.push("Error in "+firstFrame.name());
- out.push(""+ex.cause().getMessage()+" at "+firstFrame.name()+" (Line "+firstFrame.errorLine()+")");
- var counter = 0;
- ex.frames().foreach(scalaF1(function(frame) {
- if (counter++ > 0) {
- out.push("");
- out.push("...was called from "+frame.name()+" (line "+frame.errorLine()+"): "+frame.errorContext(0)._3().first());
- }
- var r = frame.errorContext(4);
- var c2 = r._1();
- r._3().foreach(scalaF1(function(s) {
- var pre = " ";
- if (c2 == frame.errorLine())
- pre = ">";
- out.push(sprintf("%s %4s | %s", pre, ""+c2, s));
- c2++;
- }));
- }));
- return out.join("\n");
-}
-
-/* template follows */
-var _tmpl = """<!DOCTYPE HTML PUBLIC
- "-//W3C//DTD XHTML 1.0 Strict//EN"
- "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
-<head>
- <title>AppJet Error</title>
- <meta http-equiv="Content-type" content="text/html; charset=utf-8" />
- <meta http-equiv="Content-Language" content="en-us" />
- <script type="text/javascript" src="http://appjet.com/js/343607636acfee88faa2b638330a3370/jquery-1.2.6.js"></script>
- <script type="text/javascript">
-function toggleFrameView(frameId) {
- var hidden = $("#frame"+frameId+":hidden")
- var visible = $("#frame"+frameId+":visible")
- if (hidden.length > 0) {
- hidden.show("normal")
- $("#image"+frameId).attr("src", "http://appjet.com/img/close-arrow.png")
- } else {
- visible.hide("normal")
- $("#image"+frameId).attr("src", "http://appjet.com/img/open-arrow.png")
- }
-}
-
-function toggleErrorView() {
- var hidden = $("#hiddentrace:hidden");
- var visible = $("#hiddentrace:visible");
- if (hidden.length > 0) {
- hidden.slideDown("normal");
- } else {
- visible.slideUp("normal");
- }
- return false;
-}
-
-function load() {
- $(".zippy").attr("src", "http://appjet.com/img/open-arrow.png")
-}
-</script>
-<style>
-body {
- font-family: verdana, helvetica, sans-serif;
- font-size: 60%;
- margin: 1em;
-}
-#header { border-bottom: 1px solid red; margin-bottom: 0.8em; }
-#errortitle { font-weight: bold; font-size: 1.6em; margin-bottom: 0.76em;}
-#errormessage { font-size: 1.4em; margin-bottom: 1.0em}
-#errorexplanation {
- background-color: #ffd; margin: 1em; padding: 0 1em;
- border: 1px solid #cc9;
- line-height: 150%;
-}
-#errorexplanation ul, #errorexplanation li { margin: 0; padding: 0; }
-#errorexplanation ul { padding-left: 2em; }
-#errorexplanation { font-size: 9pt; }
-#errorexplanation code { font-size: 10pt; }
-#errorexplanation code { padding: 1px; background: #ddc; margin: 0 5px;
- white-space:nowrap; }
-#errorexplanation code.quote { background: #fcc; }
-#errorexplanation p, #errorexplanation li { margin: 1em 0 }
-#frame0 { margin-top: 2.0em; }
-.errorframe {
- margin-bottom: 0.5em;
- margin-top: 1em;
- cursor: pointer;
- color: blue;
-}
-.errordetail {
- text-decoration: underline;
-}
-.errorframe:hover {
- color: #c47827;
-}
-.sourceline {
- font-size: 1.4em;
- color: black;
- font-family: monospace;
-}
-#statuscode {
- float: right;
- font-size: 2.4em;
- font-weight: bold;
-}
-.codecontext {
- border: 1px solid black;
- font-family: monospace;
- font-size: 1.4em;
-}
-.codecontext td { padding: 0.1em 0.3em; }
-.codecontext .linecell { border-right: 1px solid #888; }
-.codecontext .offendingline { background-color: #ffcccc; }
-.errotemplate .codecontext .linecell { border-right: 1px solid black; }
-pre {
- margin: 0px;
- padding: 0px;
- border: 0px;
-}
-
-#errorexplanation tt { font-size: 85%; color: #666; }
-</style>
-</head>
-<body onload="load()">
-<%= trace %>
-</body>
-</html>"""