Details
-
Bug
-
Resolution: Fixed
-
Major
-
17.10.10
-
Unknown
-
N/A
-
N/A
-
Description
The AspectJ backward-compatibility aspect SkinFileExtensionPluginApiCompatibilityAspect is supposed to remap deprecated skin-file-extension resource paths (for example js/xwiki/editors/fullScreenEdit.js to uicomponents/widgets/fullScreen.js) when they are pulled through SkinFileExtensionPluginApi.use(String).
The advice is never woven: AspectJ reports advice ... has not been applied [Xlint:adviceDidNotMatch]. As a result the compatibility remapping silently does nothing, so code still using the old deprecated paths gets neither the remapping nor the deprecation warning.
The around advice also has a logic bug independent of the weaving: it calls proceed() twice (once with the remapped path, then again with the original path), so even if it had matched it would have registered the extension twice and still used the deprecated path.
Found while promoting AspectJ Xlint warnings to errors so that a non-woven backward-compatibility advice fails the build (XCOMMONS-3728).
Attachments
Issue Links
- relates to
-
XCOMMONS-3728 Fail the build when a backward-compatibility AspectJ advice is not weaved
-
- Closed
-