Don't throw in Zotero.DataObjects::get() for nonexistent objects
Return false for single ids or skip for multiple ids. This is the original behavior, but at some point it started throwing an UnloadedDataException. IDs are always loaded at initialization, though, so we know whether the objects actually exist.
This commit is contained in:
parent
bf3ad6a2a4
commit
ab4138cf26
|
@ -118,7 +118,16 @@ Zotero.DataObjects.prototype.get = function (ids) {
|
|||
let id = ids[i];
|
||||
// Check if already loaded
|
||||
if (!this._objectCache[id]) {
|
||||
throw new Zotero.Exception.UnloadedDataException(this._ZDO_Object + " " + id + " not yet loaded");
|
||||
// If unloaded id is registered, throw an error
|
||||
if (this._objectKeys[id]) {
|
||||
throw new Zotero.Exception.UnloadedDataException(
|
||||
this._ZDO_Object + " " + id + " not yet loaded"
|
||||
);
|
||||
}
|
||||
// Otherwise ignore (which means returning false for a single id)
|
||||
else {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
toReturn.push(this._objectCache[id]);
|
||||
}
|
||||
|
|
|
@ -3,6 +3,12 @@
|
|||
describe("Zotero.DataObjects", function () {
|
||||
var types = ['collection', 'item', 'search'];
|
||||
|
||||
describe("#get()", function () {
|
||||
it("should return false for nonexistent objects", function* () {
|
||||
assert.isFalse(Zotero.Items.get(3464363));
|
||||
});
|
||||
});
|
||||
|
||||
describe("#getLibraryAndKeyFromID()", function () {
|
||||
it("should return a libraryID and key within a transaction", function* () {
|
||||
for (let type of types) {
|
||||
|
|
Loading…
Reference in New Issue
Block a user