Details
-
Bug
-
Resolution: Not a bug
-
Medium
-
None
-
3.3, 3.5
Description
atlassian-plugin.xml
<xwork name="Custom Attach" key="custom-attach"> <description>Provides custom attach file action that works with Crowd's SSO.</description> <package name="custom-attach" extends="default" namespace="/screensnipe-custom-attach"> <default-interceptor-ref name="validatingStack"/> <action name="attach-file" class="com.screensnipe.confluence.atlassian.CustomAttachFile"> <result name="input" type="json"/> <result name="json" type="json"/> <result name="error" type="json"/> <result name="notpermitted" type="json"/> </action> </package> </xwork>
The exception:
java.lang.NoSuchMethodException: Unable to load action: com.screensnipe.confluence.atlassian.CustomAttachFile at com.opensymphony.xwork.config.entities.ActionConfig.getMethod(ActionConfig.java:115) at com.atlassian.xwork.interceptors.XsrfTokenInterceptor.intercept(XsrfTokenInterceptor.java:78) at com.atlassian.confluence.xwork.ConfluenceXsrfTokenInterceptor.intercept(ConfluenceXsrfTokenInterceptor.java:25) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.security.interceptors.CaptchaInterceptor.intercept(CaptchaInterceptor.java:46) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.opensymphony.xwork.interceptor.AroundInterceptor.intercept(AroundInterceptor.java:35) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.util.LoggingContextInterceptor.intercept(LoggingContextInterceptor.java:49) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165) at com.atlassian.confluence.core.CancellingInterceptor.intercept(CancellingInterceptor.java:23) at com.opensymphony.xwork.DefaultActionInvocation.invoke(DefaultActionInvocation.java:165)
Actually, there should be "caused by" but you didn't chain the exception.
ActionConfig, line 114-115: catch (Exception e) { throw new NoSuchMethodException("Unable to load action: " + e.getMessage()); (lost cause)
[INFO] [talledLocalContainer] java.lang.InstantiationException: com.screensnipe.confluence.atlassian.CustomAttachFile [INFO] [talledLocalContainer] at java.lang.Class.newInstance0(Class.java:340) [INFO] [talledLocalContainer] at java.lang.Class.newInstance(Class.java:308) [INFO] [talledLocalContainer] at com.opensymphony.xwork.ObjectFactory.buildBean(ObjectFactory.java:97) [INFO] [talledLocalContainer] at com.opensymphony.xwork.ObjectFactory.buildAction(ObjectFactory.java:77) [INFO] [talledLocalContainer] at com.atlassian.confluence.plugin.ConfluencePluginObjectFactory.buildAction(ConfluencePluginObjectFactory.java:60) [INFO] [talledLocalContainer] at com.opensymphony.xwork.config.entities.ActionConfig.getMethod(ActionConfig.java:112)
See CONF-20055 - it's just the same problem with another interceptor.
XSRF Interceptor needs to instantiate action just to check the annotations. It does it by calling Class.newInstance(). In our company, we use constructor-based injection. For details, see CONF-20055.
Attachments
Issue Links
- is related to
-
CONFSERVER-20055 Web sudo fails with NoSuchMethodException for constructor-injected plugin actions
- Closed