Changed all error handling to async-stacktrace style + fixed import/export on unix

This commit is contained in:
Peter 'Pita' Martischka 2011-12-04 16:50:02 +01:00
parent db1ba6a65e
commit 5c56e62d67
18 changed files with 325 additions and 352 deletions

View file

@ -18,6 +18,7 @@
* limitations under the License.
*/
var ERR = require("async-stacktrace");
var fs = require("fs");
var api = require("../db/API");
@ -122,7 +123,7 @@ exports.handle = function(functionName, fields, req, res)
else
{
res.send({code: 2, message: "internal error", data: null});
throw (err);
ERR(err);
}
});

View file

@ -18,6 +18,7 @@
* limitations under the License.
*/
var ERR = require("async-stacktrace");
var exporthtml = require("../utils/ExportHtml");
var padManager = require("../db/PadManager");
var async = require("async");
@ -50,8 +51,7 @@ exports.doExport = function(req, res, padId, type)
{
padManager.getPad(padId, function(err, pad)
{
if(err)
throw err;
ERR(err);
res.send(pad.text());
});
@ -68,8 +68,9 @@ exports.doExport = function(req, res, padId, type)
{
exporthtml.getPadHTMLDocument(padId, null, false, function(err, _html)
{
if(ERR(err, callback)) return;
html = _html;
callback(err);
callback();
});
},
//decide what to do with the html export
@ -113,19 +114,23 @@ exports.doExport = function(req, res, padId, type)
function(callback)
{
//100ms delay to accomidate for slow windows fs
if(os.type().indexOf("Windows") > -1)
{
setTimeout(function()
{
fs.unlink(destFile, callback);
}, 100);
}
if(os.type().indexOf("Windows") > -1)
{
setTimeout(function()
{
fs.unlink(destFile, callback);
}, 100);
}
else
{
fs.unlink(destFile, callback);
}
}
], callback);
}
], function(err)
{
if(err && err != "stop") throw err;
if(err && err != "stop") ERR(err);
})
}
};

View file

@ -18,6 +18,7 @@
* limitations under the License.
*/
var ERR = require("async-stacktrace");
var padManager = require("../db/PadManager");
var padMessageHandler = require("./PadMessageHandler");
var async = require("async");
@ -122,8 +123,9 @@ exports.doImport = function(req, res, padId)
{
padManager.getPad(padId, function(err, _pad)
{
if(ERR(err, callback)) return;
pad = _pad;
callback(err);
callback();
});
},
@ -132,17 +134,22 @@ exports.doImport = function(req, res, padId)
{
fs.readFile(destFile, "utf8", function(err, _text)
{
if(ERR(err, callback)) return;
text = _text;
//node on windows has a delay on releasing of the file lock.
//We add a 100ms delay to work around this
if(os.type().indexOf("Windows") > -1)
{
if(os.type().indexOf("Windows") > -1)
{
setTimeout(function()
{
callback(err);
callback();
}, 100);
}
}
else
{
callback();
}
});
},
@ -176,7 +183,7 @@ exports.doImport = function(req, res, padId)
return;
}
if(err) throw err;
ERR(err);
//close the connection
res.send("ok");

View file

@ -18,6 +18,7 @@
* limitations under the License.
*/
var ERR = require("async-stacktrace");
var async = require("async");
var padManager = require("../db/PadManager");
var Changeset = require("../utils/Changeset");
@ -107,7 +108,7 @@ exports.handleDisconnect = function(client)
//get the author color out of the db
authorManager.getAuthorColorId(author, function(err, color)
{
if(err) throw err;
ERR(err);
//prepare the notification for the other users on the pad, that this user left
var messageToTheOtherUsers = {
@ -218,16 +219,18 @@ function handleChatMessage(client, message)
{
padManager.getPad(padId, function(err, _pad)
{
if(ERR(err, callback)) return;
pad = _pad;
callback(err);
callback();
});
},
function(callback)
{
authorManager.getAuthorName(userId, function(err, _userName)
{
if(ERR(err, callback)) return;
userName = _userName;
callback(err);
callback();
});
},
//save the chat message and broadcast it
@ -257,7 +260,7 @@ function handleChatMessage(client, message)
}
], function(err)
{
if(err) throw err;
ERR(err);
});
}
@ -375,8 +378,9 @@ function handleUserChanges(client, message)
{
padManager.getPad(session2pad[client.id], function(err, value)
{
if(ERR(err, callback)) return;
pad = value;
callback(err);
callback();
});
},
//create the changeset
@ -422,16 +426,10 @@ function handleUserChanges(client, message)
pad.getRevisionChangeset(r, function(err, c)
{
if(err)
{
callback(err);
return;
}
else
{
changeset = Changeset.follow(c, changeset, false, apool);
callback(null);
}
if(ERR(err, callback)) return;
changeset = Changeset.follow(c, changeset, false, apool);
callback(null);
});
},
//use the callback of the series function
@ -469,7 +467,7 @@ function handleUserChanges(client, message)
}
], function(err)
{
if(err) throw err;
ERR(err);
});
}
@ -502,25 +500,23 @@ exports.updatePadClients = function(pad, callback)
{
pad.getRevisionAuthor(r, function(err, value)
{
if(ERR(err, callback)) return;
author = value;
callback(err);
callback();
});
},
function (callback)
{
pad.getRevisionChangeset(r, function(err, value)
{
if(ERR(err, callback)) return;
revChangeset = value;
callback(err);
callback();
});
}
], function(err)
{
if(err)
{
callback(err);
return;
}
if(ERR(err, callback)) return;
if(author == sessioninfos[session].author)
{
@ -633,7 +629,7 @@ function handleClientReady(client, message)
{
securityManager.checkAccess (message.padId, message.sessionID, message.token, message.password, function(err, statusObject)
{
if(err) {callback(err); return}
if(ERR(err, callback)) return;
//access was granted
if(statusObject.accessStatus == "grant")
@ -657,8 +653,9 @@ function handleClientReady(client, message)
{
authorManager.getAuthorColorId(author, function(err, value)
{
if(ERR(err, callback)) return;
authorColorId = value;
callback(err);
callback();
});
},
//get author name
@ -666,24 +663,27 @@ function handleClientReady(client, message)
{
authorManager.getAuthorName(author, function(err, value)
{
if(ERR(err, callback)) return;
authorName = value;
callback(err);
callback();
});
},
function(callback)
{
padManager.getPad(message.padId, function(err, value)
{
if(ERR(err, callback)) return;
pad = value;
callback(err);
callback();
});
},
function(callback)
{
readOnlyManager.getReadOnlyId(message.padId, function(err, value)
{
if(ERR(err, callback)) return;
readOnlyId = value;
callback(err);
callback();
});
}
], callback);
@ -701,9 +701,10 @@ function handleClientReady(client, message)
{
authorManager.getAuthor(authorId, function(err, author)
{
if(ERR(err, callback)) return;
delete author.timestamp;
historicalAuthorData[authorId] = author;
callback(err);
callback();
});
}, callback);
},
@ -712,8 +713,9 @@ function handleClientReady(client, message)
{
pad.getLastChatMessages(100, function(err, _chatMessages)
{
if(ERR(err, callback)) return;
chatMessages = _chatMessages;
callback(err);
callback();
});
}
], callback);
@ -859,16 +861,18 @@ function handleClientReady(client, message)
{
authorManager.getAuthorColorId(sessioninfos[sessionID].author, function(err, value)
{
if(ERR(err, callback)) return;
sessionAuthorColorId = value;
callback(err);
callback();
})
},
function(callback)
{
authorManager.getAuthorName(sessioninfos[sessionID].author, function(err, value)
{
if(ERR(err, callback)) return;
sessionAuthorName = value;
callback(err);
callback();
})
}
],callback);
@ -903,6 +907,6 @@ function handleClientReady(client, message)
}
],function(err)
{
if(err) throw err;
ERR(err);
});
}

View file

@ -19,6 +19,7 @@
* limitations under the License.
*/
var ERR = require("async-stacktrace");
var log4js = require('log4js');
var messageLogger = log4js.getLogger("message");
var securityManager = require("../db/SecurityManager");
@ -109,7 +110,7 @@ exports.setSocketIO = function(_socket)
{
securityManager.checkAccess (message.padId, message.sessionID, message.token, message.password, function(err, statusObject)
{
if(err) throw err;
ERR(err);
//access was granted, mark the client as authorized and handle the message
if(statusObject.accessStatus == "grant")

View file

@ -18,6 +18,7 @@
* limitations under the License.
*/
var ERR = require("async-stacktrace");
var async = require("async");
var padManager = require("../db/PadManager");
var Changeset = require("../utils/Changeset");
@ -92,7 +93,7 @@ function handleClientReady(client, message)
//send the timeslider client the clientVars, with this values its able to start
createTimesliderClientVars (message.padId, function(err, clientVars)
{
if(err) throw err;
ERR(err);
client.json.send({type: "CLIENT_VARS", data: clientVars});
})
@ -138,7 +139,7 @@ function handleChangesetRequest(client, message)
//build the requested rough changesets and send them back
getChangesetInfo(padId, start, end, granularity, function(err, changesetInfo)
{
if(err) throw err;
ERR(err);
var data = changesetInfo;
data.requestID = message.data.requestID;
@ -171,8 +172,9 @@ function createTimesliderClientVars (padId, callback)
{
padManager.getPad(padId, function(err, _pad)
{
if(ERR(err, callback)) return;
pad = _pad;
callback(err);
callback();
});
},
//get all authors and add them to
@ -187,15 +189,17 @@ function createTimesliderClientVars (padId, callback)
{
authorManager.getAuthor(authorId, function(err, author)
{
if(ERR(err, callback)) return;
historicalAuthorData[authorId] = author;
callback(err);
callback();
});
}, function(err)
{
if(ERR(err, callback)) return;
//add historicalAuthorData to the clientVars and continue
clientVars.historicalAuthorData = historicalAuthorData;
clientVars.initialStyledContents.historicalAuthorData = historicalAuthorData;
callback(err);
callback();
});
},
//get the timestamp of the last revision
@ -203,8 +207,9 @@ function createTimesliderClientVars (padId, callback)
{
pad.getRevisionDate(pad.getHeadRevisionNumber(), function(err, date)
{
if(ERR(err, callback)) return;
clientVars.currentTime = date;
callback(err);
callback();
});
},
function(callback)
@ -235,14 +240,16 @@ function createTimesliderClientVars (padId, callback)
Math.floor(lastRev / topGranularity)*topGranularity+topGranularity, granularity,
function(err, changeset)
{
if(ERR(err, callback)) return;
clientVars.initialChangesets.push(changeset);
callback(err);
callback();
});
}, callback);
}
], function(err)
{
callback(err, clientVars);
if(ERR(err, callback)) return;
callback(null, clientVars);
});
}
@ -267,8 +274,9 @@ function getChangesetInfo(padId, startNum, endNum, granularity, callback)
{
padManager.getPad(padId, function(err, _pad)
{
if(ERR(err, callback)) return;
pad = _pad;
callback(err);
callback();
});
},
function(callback)
@ -309,8 +317,9 @@ function getChangesetInfo(padId, startNum, endNum, granularity, callback)
{
composePadChangesets(padId, item.start, item.end, function(err, changeset)
{
if(ERR(err, callback)) return;
composedChangesets[item.start + "/" + item.end] = changeset;
callback(err);
callback();
});
}, callback);
},
@ -321,8 +330,9 @@ function getChangesetInfo(padId, startNum, endNum, granularity, callback)
{
pad.getRevisionDate(revNum, function(err, revDate)
{
if(ERR(err, callback)) return;
revisionDate[revNum] = Math.floor(revDate/1000);
callback(err);
callback();
});
}, callback);
},
@ -331,8 +341,9 @@ function getChangesetInfo(padId, startNum, endNum, granularity, callback)
{
getPadLines(padId, startNum-1, function(err, _lines)
{
if(ERR(err, callback)) return;
lines = _lines;
callback(err);
callback();
});
}
], callback);
@ -383,20 +394,15 @@ function getChangesetInfo(padId, startNum, endNum, granularity, callback)
}
], function(err)
{
if(err)
{
callback(err);
}
else
{
callback(null, {forwardsChangesets: forwardsChangesets,
backwardsChangesets: backwardsChangesets,
apool: apool.toJsonable(),
actualEndNum: endNum,
timeDeltas: timeDeltas,
start: startNum,
granularity: granularity });
}
if(ERR(err, callback)) return;
callback(null, {forwardsChangesets: forwardsChangesets,
backwardsChangesets: backwardsChangesets,
apool: apool.toJsonable(),
actualEndNum: endNum,
timeDeltas: timeDeltas,
start: startNum,
granularity: granularity });
});
}
@ -416,8 +422,9 @@ function getPadLines(padId, revNum, callback)
{
padManager.getPad(padId, function(err, _pad)
{
if(ERR(err, callback)) return;
pad = _pad;
callback(err);
callback();
});
},
//get the atext
@ -427,8 +434,9 @@ function getPadLines(padId, revNum, callback)
{
pad.getInternalRevisionAText(revNum, function(err, _atext)
{
if(ERR(err, callback)) return;
atext = _atext;
callback(err);
callback();
});
}
else
@ -445,7 +453,8 @@ function getPadLines(padId, revNum, callback)
}
], function(err)
{
callback(err, result);
if(ERR(err, callback)) return;
callback(null, result);
});
}
@ -465,8 +474,9 @@ function composePadChangesets(padId, startNum, endNum, callback)
{
padManager.getPad(padId, function(err, _pad)
{
if(ERR(err, callback)) return;
pad = _pad;
callback(err);
callback();
});
},
//fetch all changesets we need
@ -486,8 +496,9 @@ function composePadChangesets(padId, startNum, endNum, callback)
{
pad.getRevisionChangeset(revNum, function(err, value)
{
if(ERR(err, callback)) return;
changesets[revNum] = value;
callback(err);
callback();
});
},callback);
},
@ -509,7 +520,7 @@ function composePadChangesets(padId, startNum, endNum, callback)
//return err and changeset
function(err)
{
if(err) throw err;
callback(err, changeset);
if(ERR(err, callback)) return;
callback(null, changeset);
});
}