riak jiak.py client_id / apps / webmachine / src / webmachine_resource.erl

Diff from to

apps/webmachine/src/webmachine_resource.erl

     RState0 = proplists:get_value(reqstate, ReqProps),
     put(tmp_reqstate, empty),
     {Reply, ReqData, NewModState} = handle_wm_call(Fun, 
-                    (RState0#reqstate.reqdata)#wm_reqdata{wm_state=RState0}),
+                    (RState0#wm_reqstate.reqdata)#wm_reqdata{wm_state=RState0}),
     ReqState = case get(tmp_reqstate) of
                    empty -> RState0;
                    X -> X
                end,
     {Reply,
      webmachine_resource:new(R_Mod, NewModState, R_ModExports, R_Trace),
-     ReqState#reqstate{reqdata=ReqData}}.
+     ReqState#wm_reqstate{reqdata=ReqData}}.
 
 handle_wm_call(Fun, ReqData) ->
     case default(Fun) of
             end
     end.
 
+trim_trace([{M,F,[RD = #wm_reqdata{},S]}|STRest]) ->
+    TrimState = (RD#wm_reqdata.wm_state)#wm_reqstate{reqdata='REQDATA'},
+    TrimRD = RD#wm_reqdata{wm_state=TrimState},
+    [{M,F,[TrimRD,S]}|STRest];
+trim_trace(X) -> X.
+
 resource_call(F, ReqData) ->
     case R_Trace of
         false -> nop;
     Result = try
         apply(R_Mod, F, [ReqData, R_ModState])
     catch C:R ->
-	    Reason = {C, R, erlang:get_stacktrace()},
+	    Reason = {C, R, trim_trace(erlang:get_stacktrace())},
             {{error, Reason}, ReqData, R_ModState}
     end,
         case R_Trace of
     {'WMTRACE_ESCAPED_PORT', erlang:port_to_list(Port)};
 escape_trace_data(List) when is_list(List) ->
     escape_trace_list(List, []);
+escape_trace_data(R=#wm_reqstate{}) ->
+    list_to_tuple(
+      escape_trace_data(
+        tuple_to_list(R#wm_reqstate{reqdata='WMTRACE_NESTED_REQDATA'})));
 escape_trace_data(Tuple) when is_tuple(Tuple) ->
     list_to_tuple(escape_trace_data(tuple_to_list(Tuple)));
 escape_trace_data(Other) ->
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.