Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Sign in
Toggle navigation
Menu
Open sidebar
minerva
core
Commits
e157e67c
Commit
e157e67c
authored
Aug 13, 2019
by
Piotr Gawron
Browse files
handle crash on plugin unload
parent
254dc97c
Changes
4
Hide whitespace changes
Inline
Side-by-side
frontend-js/src/main/js/plugin/Plugin.js
View file @
e157e67c
...
...
@@ -7,6 +7,7 @@ var Promise = require("bluebird");
var
logger
=
require
(
'
../logger
'
);
var
Functions
=
require
(
'
../Functions
'
);
var
GuiConnector
=
require
(
'
../GuiConnector
'
);
var
PluginData
=
require
(
'
../map/data/PluginData
'
);
var
pluginId
=
0
;
...
...
@@ -226,6 +227,11 @@ Plugin.prototype.unload = function () {
if
(
validPlugin
)
{
return
self
.
getLoadedPluginData
().
unregister
();
}
}).
catch
(
function
(
e
)
{
GuiConnector
.
warn
(
"
Plugin crashed on upload.
"
);
if
(
typeof
self
.
getLoadedPluginData
().
notifyError
===
"
function
"
)
{
self
.
getLoadedPluginData
().
notifyError
({
error
:
error
});
}
}).
then
(
function
()
{
if
(
validPlugin
)
{
var
removedListeners
=
self
.
getMinervaPluginProxy
().
project
.
map
.
removeAllListeners
();
...
...
frontend-js/src/test/js/plugin/Plugin-test.js
View file @
e157e67c
...
...
@@ -110,6 +110,18 @@ describe('Plugin', function () {
assert
.
equal
(
1
,
logger
.
getWarnings
().
length
);
});
});
it
(
'
plugin crashed during unload
'
,
function
()
{
var
map
=
helper
.
createCustomMap
();
helper
.
createSearchDbOverlay
(
map
);
var
plugin
=
createPlugin
(
"
./testFiles/plugin-invalid/crash-unregister.js
"
,
map
);
return
plugin
.
load
().
then
(
function
()
{
assert
.
equal
(
0
,
logger
.
getWarnings
().
length
);
return
plugin
.
unload
();
}).
then
(
function
()
{
assert
.
equal
(
2
,
logger
.
getWarnings
().
length
);
});
});
});
it
(
'
plugin listener crash
'
,
function
()
{
var
map
=
helper
.
createCustomMap
();
...
...
frontend-js/testFiles/apiCalls/plugins/POST_hash=dac1c83fdedde144a3c09424f88c9804&isPublic=false&name=high%20test&url=.%2FtestFiles%2Fplugin-invalid%2Fcrash-unregister.js&version=0.0.1&token=MOCK_TOKEN_ID&
0 → 100644
View file @
e157e67c
{
"hash": "dac1c83fdedde144a3c09424f88c9804",
"name": "test plugin",
"urls": [
"./testFiles/plugin-invalid/crash-unregister.js"
],
"version": "0.0.1"
}
\ No newline at end of file
frontend-js/testFiles/plugin-invalid/crash-unregister.js
0 → 100644
View file @
e157e67c
minervaDefine
(
function
()
{
return
{
register
:
function
(
minervaObject
)
{
var
options
=
{
dbOverlayName
:
"
search
"
,
type
:
"
onSearch
"
,
callback
:
function
(
elements
)
{
console
.
log
(
"
hi there
"
);
}
};
minervaObject
.
project
.
map
.
addListener
(
options
);
},
unregister
:
function
()
{
throw
new
Error
(
"
ups
"
)
},
getName
:
function
()
{
return
"
high test
"
;
},
getVersion
:
function
()
{
return
"
0.0.1
"
;
}
};
});
\ No newline at end of file
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment