mirror of
https://github.com/Icinga/icingaweb2.git
synced 2025-07-23 05:44:36 +02:00
storage.js: Properly handle invalid values
This commit is contained in:
parent
2280551484
commit
c976eb48c9
@ -46,11 +46,24 @@
|
|||||||
if (typeof Icinga.Storage.subscribers[event.key] !== 'undefined') {
|
if (typeof Icinga.Storage.subscribers[event.key] !== 'undefined') {
|
||||||
var newValue = null,
|
var newValue = null,
|
||||||
oldValue = null;
|
oldValue = null;
|
||||||
if (event.newValue.length) {
|
if (!! event.newValue) {
|
||||||
newValue = JSON.parse(event.newValue);
|
try {
|
||||||
|
newValue = JSON.parse(event.newValue);
|
||||||
|
} catch(error) {
|
||||||
|
icinga.logger.error('[Storage] Failed to parse new value (\`' + event.newValue
|
||||||
|
+ '\`) for key "' + event.key + '". Error was: ' + error);
|
||||||
|
event.storageArea.removeItem(event.key);
|
||||||
|
return;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (event.oldValue.length) {
|
if (!! event.oldValue) {
|
||||||
oldValue = JSON.parse(event.oldValue);
|
try {
|
||||||
|
oldValue = JSON.parse(event.oldValue);
|
||||||
|
} catch(error) {
|
||||||
|
icinga.logger.warn('[Storage] Failed to parse old value (\`' + event.oldValue
|
||||||
|
+ '\`) of key "' + event.key + '". Error was: ' + error);
|
||||||
|
oldValue = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Icinga.Storage.subscribers[event.key].forEach(function (subscriber) {
|
Icinga.Storage.subscribers[event.key].forEach(function (subscriber) {
|
||||||
@ -108,7 +121,17 @@
|
|||||||
* @returns {*}
|
* @returns {*}
|
||||||
*/
|
*/
|
||||||
get: function(key) {
|
get: function(key) {
|
||||||
return JSON.parse(window.localStorage.getItem(this.prefixKey(key)));
|
key = this.prefixKey(key);
|
||||||
|
var value = window.localStorage.getItem(key);
|
||||||
|
|
||||||
|
try {
|
||||||
|
return JSON.parse(value);
|
||||||
|
} catch(error) {
|
||||||
|
icinga.logger.error('[Storage] Failed to parse value (\`' + value
|
||||||
|
+ '\`) of key "' + key + '". Error was: ' + error);
|
||||||
|
window.localStorage.removeItem(key);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
},
|
},
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
Loading…
x
Reference in New Issue
Block a user