Sebastian Lövdahl
3a467dead6
Avoid instantiating Plugin class if a plugin is already unloaded
Given the following preconditions:
- `PluginClassLoader` is configured to use `ClassLoadingStrategy` `PDA`, `DPA` or `DAP`.
- There is a `PluginStateListener` that calls `event.getPlugin().getPlugin()`.
- A plugin (`plugin-a`) with a missing dependency is loaded (`plugin-a`).
- The `Plugin` class in `plugin-a` extends, implements or references a class in either
`plugin-b` or in the main application.
In that scenario, when `plugin-a` is unloaded by pf4j, and the `PluginStateListener`
is run, the `event.getPlugin().getPlugin()` call will fail with a `NullPointerException`.
This is caused by the class loading done when instantiating the `Plugin` class in
`plugin-a`. Because not all classes needed are found in `plugin-a` itself, pf4j will
continue by looking up classes in `plugin-a`'s dependencies. Because `plugin-b` is
missing and has no associated `ClassLoader`.
3 kuukautta sitten
Sebastian Lövdahl
b92ec9ed53
Post `PluginState.UNLOADED` event when plugins are unloaded (#567)
4 kuukautta sitten
Decebal Suiu
336a5ba35a
Add strategy for handling the recovery of a plugin that could not be resolved (#564)
4 kuukautta sitten
Sebastian Lövdahl
f08629928a
Make `PluginStateEvent` fields `final` (#566)
4 kuukautta sitten
Decebal Suiu
6e4e6b3781
Ignore fire plugin state event without state change
4 kuukautta sitten
Decebal Suiu
62b6162ec2
Fix #563
4 kuukautta sitten
Decebal Suiu
30f415fe2d
Fix #520
4 kuukautta sitten
Decebal Suiu
d351e52ab4
Add more javadoc, fix warnings
4 kuukautta sitten
Decebal Suiu
a33c7b084a
Add InvalidPluginDescriptorException
Add more javadoc in AbstractPluginManager
4 kuukautta sitten
Decebal Suiu
9bc18d3592
Add more javadoc
4 kuukautta sitten
John Niang
a73185226d
Upgrade Java SemVer to 0.10.2 (#560)
4 kuukautta sitten
Marcus Ilgner
426a0d71ff
Write empty extensions descriptor even if no extensions are found
8 kuukautta sitten
finn0s
4715257de1
Unload broken plugins fix (#545)
9 kuukautta sitten
Decebal Suiu
8e0aa198c4
Add security checks to prevent directory traversal when decompressing (#538)
10 kuukautta sitten
Decebal Suiu
c1c9c982dc
Remove obsolete comment
11 kuukautta sitten
miracleshiy
3c2e7e297e
Fix:when ignoredComments=false, FileUtils.readLines() will return empty list. (#527)
1 vuosi sitten
dre4merp
bdadc6667a
Fix #524 (#525)
1 vuosi sitten
Decebal Suiu
36f77cc63d
Fix some warnings (javadoc, pom, sonar)
1 vuosi sitten
Decebal Suiu
1f04209be1
Relax Plugin construction (remove dependency on PluginWrapper) (#512)
1 vuosi sitten
Decebal Suiu
16690d5362
Fix #508
1 vuosi sitten
Decebal Suiu
dacbda1a23
Fix #492
2 vuotta sitten
RationalityFrontline
1d58b179ab
Fix memory leak in SingletonExtensionFactory (#487) (#490)
2 vuotta sitten
dsuiu
b7f03a2cd2
Add support for reading plugin descriptor from zip
2 vuotta sitten
wolframhaussig
d18706e9d0
Do not rely on version from Manifest (#455)
3 vuotta sitten
wolframhaussig
a6bcc3bb33
Fixed Dependency version check fails even if required is * (#451)
3 vuotta sitten
wolframhaussig
dac4edb5f3
Add secure wrapper to plugin manager (#450)
3 vuotta sitten
Decebal Suiu
a23546db74
Update module-info.java (#426)
3 vuotta sitten
ahaha-vip
4e3d2fa142
Add a unit test in AbstractExtensionFinderTest to reproduce #428 (#430)
3 vuotta sitten
Decebal Suiu
6f16cc47bc
Fix for #394 (#417)
3 vuotta sitten
rreich
f6ede83be3
Support multiple plugin root directories (#404)
3 vuotta sitten
Ajith Kumar
c2d9998350
Bucketed caching in SingletonExtensionFactory (#402)
3 vuotta sitten
Decebal Suiu
6e95633518
Solve #440
3 vuotta sitten
rreich
597192ba5b
Make DefaultPluginDescriptor#addDependency usable (#398)
Thanks!
3 vuotta sitten
asafbennatan
f1724a2205
added toString to WrongDependencyVersion to solve issue #396 (#397)
3 vuotta sitten
Decebal Suiu
971aa2e58d
Fix #395
3 vuotta sitten
Decebal Suiu
92d7c165d9
Fix #378
3 vuotta sitten
Decebal Suiu
3caa5b72d0
Fix #391
3 vuotta sitten
Valeriy Kucherenko
360e54320f
Fix for #377 and minor fixes found by Sonar lint (#388)
3 vuotta sitten
Valeriy Kucherenko
58d3c8e183
Fix for problem with file lock on Windows platform. Introduce unloadPlugins method. (#387)
Thanks for your contribution!
3 vuotta sitten
Decebal Suiu
4d08bc8c51
Little formatting
4 vuotta sitten
Decebal Suiu
676911da94
Deprecate PluginClassLoader with parentFirst as parameter
4 vuotta sitten
asafbennatan
53745be62c
Better Customization for PluginClassLoader (#385)
4 vuotta sitten
Valeriy Kucherenko
b72b75ae26
Fix wrong logical condition (optional dependencies are always skipped) (#386)
4 vuotta sitten
asafbennatan
4b6ad87cc3
parent first class loading is protected by ClassCastException instead of ClassNotFoundException (#384)
4 vuotta sitten
ThatGamerBlue
e98c0a4f98
sort files using last modified as long, preventing downcasting errors (#376)
4 vuotta sitten
Decebal Suiu
a01cd8ac5b
Little optimization
4 vuotta sitten
Decebal Suiu
01e42ee873
Eliminate some redundant checks
4 vuotta sitten
Decebal Suiu
4fca1aa2e4
Fix #371
4 vuotta sitten
Decebal Suiu
ec03fd022f
Fix #363
4 vuotta sitten
Decebal Suiu
42bb7976de
Add test for findExtensionAnnotation (preparation for #363)
4 vuotta sitten