[OpenSRF-GIT] OpenSRF branch rel_2_1 updated. osrf_rel_2_1_0-rc1-19-ge7431d6
Evergreen Git
git at git.evergreen-ils.org
Fri May 25 23:11:33 EDT 2012
This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "OpenSRF".
The branch, rel_2_1 has been updated
via e7431d6fa114c35d3dc5b430fbb4bdae99edaa88 (commit)
from 832f166b38acc9c68c9c1fcea1432d2ca881316b (commit)
Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.
- Log -----------------------------------------------------------------
commit e7431d6fa114c35d3dc5b430fbb4bdae99edaa88
Author: Bill Erickson <berick at esilibrary.com>
Date: Mon Apr 2 14:55:56 2012 -0400
Detect and repair multipart/mixed message delivery errors
For unknown reasons, the Content-Type header will occasionally be
included in the XHR.responseText for multipart/mixed messages. When
this happens, strip the header and newlines from the message body and
re-parse.
Signed-off-by: Bill Erickson <berick at esilibrary.com>
Signed-off-by: Dan Scott <dan at coffeecode.net>
diff --git a/src/javascript/opensrf.js b/src/javascript/opensrf.js
index dfff52a..c0e454c 100644
--- a/src/javascript/opensrf.js
+++ b/src/javascript/opensrf.js
@@ -388,11 +388,43 @@ OpenSRF.Stack = function() {
// global inbound message queue
OpenSRF.Stack.queue = [];
+// XXX testing
+function log(msg) {
+ try {
+ dump(msg + '\n'); // xulrunner
+ } catch(E) {
+ console.log(msg);
+ }
+}
+
OpenSRF.Stack.push = function(net_msg, callbacks) {
var ses = OpenSRF.Session.find_session(net_msg.thread);
if(!ses) return;
ses.remote_id = net_msg.from;
- osrf_msgs = JSON2js(net_msg.body);
+ osrf_msgs = [];
+
+ try {
+ osrf_msgs = JSON2js(net_msg.body);
+
+ } catch(E) {
+ log('Error parsing OpenSRF message body as JSON: ' + net_msg.body + '\n' + E);
+
+ /** UGH
+ * For unknown reasons, the Content-Type header will occasionally
+ * be included in the XHR.responseText for multipart/mixed messages.
+ * When this happens, strip the header and newlines from the message
+ * body and re-parse.
+ */
+ net_msg.body = net_msg.body.replace(/^.*\n\n/, '');
+ log('Cleaning up and retrying...');
+
+ try {
+ osrf_msgs = JSON2js(net_msg.body);
+ } catch(E2) {
+ log('Unable to clean up message, giving up: ' + net_msg.body);
+ return;
+ }
+ }
// push the latest responses onto the end of the inbound message queue
for(var i = 0; i < osrf_msgs.length; i++)
-----------------------------------------------------------------------
Summary of changes:
src/javascript/opensrf.js | 34 +++++++++++++++++++++++++++++++++-
1 files changed, 33 insertions(+), 1 deletions(-)
hooks/post-receive
--
OpenSRF
More information about the opensrf-commits
mailing list