You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@couchdb.apache.org by jc...@apache.org on 2009/04/16 08:02:13 UTC

svn commit: r765479 - in /couchdb/trunk: share/server/main.js src/couchdb/couch_js.c src/couchdb/couch_os_process.erl

Author: jchris
Date: Thu Apr 16 06:02:12 2009
New Revision: 765479

URL: http://svn.apache.org/viewvc?rev=765479&view=rev
Log:
Baby steps toward better reporting of os_process errors (and JavaScript syntax errors)

Modified:
    couchdb/trunk/share/server/main.js
    couchdb/trunk/src/couchdb/couch_js.c
    couchdb/trunk/src/couchdb/couch_os_process.erl

Modified: couchdb/trunk/share/server/main.js
URL: http://svn.apache.org/viewvc/couchdb/trunk/share/server/main.js?rev=765479&r1=765478&r2=765479&view=diff
==============================================================================
--- couchdb/trunk/share/server/main.js [utf-8] (original)
+++ couchdb/trunk/share/server/main.js [utf-8] Thu Apr 16 06:02:12 2009
@@ -414,7 +414,8 @@
   } catch(e) {
     log("function raised error: "+e.toString());
     log("stacktrace: "+e.stack);
-    respond({error:"render_error",reason:e});
+    var errorMessage = "function raised error: "+e.toString()+"\nstacktrace: "+e.stack;
+    respond({error:"render_error",reason:errorMessage});
   }
 };
 

Modified: couchdb/trunk/src/couchdb/couch_js.c
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_js.c?rev=765479&r1=765478&r2=765479&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_js.c (original)
+++ couchdb/trunk/src/couchdb/couch_js.c Thu Apr 16 06:02:12 2009
@@ -231,6 +231,7 @@
     } else {
         ok = JS_EvaluateUCScript(sub_context, sandbox, src, srclen, NULL, -1,
                                  rval);
+        ok = JS_TRUE;
     }
 
 out:

Modified: couchdb/trunk/src/couchdb/couch_os_process.erl
URL: http://svn.apache.org/viewvc/couchdb/trunk/src/couchdb/couch_os_process.erl?rev=765479&r1=765478&r2=765479&view=diff
==============================================================================
--- couchdb/trunk/src/couchdb/couch_os_process.erl (original)
+++ couchdb/trunk/src/couchdb/couch_os_process.erl Thu Apr 16 06:02:12 2009
@@ -51,7 +51,13 @@
     gen_server:call(Pid, read).
 
 prompt(Pid, Data) ->
-    gen_server:call(Pid, {prompt, Data}, infinity).
+    case gen_server:call(Pid, {prompt, Data}, infinity) of
+        {ok, Result} ->
+            Result;
+        {error, Error} ->
+            ?LOG_DEBUG("OS Process Error ~p",[Error]),
+            throw(Error)
+    end.
 
 async(Pid, Data, CallBack) ->
     gen_server:cast(Pid, {async, Data, CallBack}).
@@ -138,7 +144,13 @@
 handle_call({prompt, Data}, _From, OsProc) ->
     #os_proc{writer=Writer, reader=Reader} = OsProc,
     Writer(OsProc, Data),
-    {reply, Reader(OsProc), OsProc}.
+    Result = try Reader(OsProc) of
+        Ok -> {ok, Ok}
+    catch
+        throw:OsError ->
+            {error, OsError}
+    end,
+    {reply, Result, OsProc}.
 
 handle_cast({async, Data, CallBack}, OsProc) ->
     #os_proc{writer=Writer, reader=Reader} = OsProc,