Skip to end of metadata
Go to start of metadata

I think we are getting these exceptions after v4.0.2 upgrade. I believe causing the problem where the space layout administration is 'only' working for confluence administrators. So, if the uesr is space admin and has global 'manageLayouts' permission, the user is allowed to view and change the layout content, but the changes are not getting persisted.

Errors..

2010-06-28 14:46:38,807 ERROR TP-Processor10 atlassian.plugin.web.DefaultWebInterfaceManager filterFragmentsByCondition Could not evaluate condition 'com.atlassian.plugin.web.conditions.AndCompositeCondition@23966dc2' for descriptor: system.space.admin/adaptavist.builder.space.web-section/adaptavist.builder.space.manage-layouts
– space: xxxxxx | url: /spaces/spacepermissions.action | userName: xxxxxxxxx | referer: xxxxxxxxxxxxxxxxx/spaces/spaceadmin.action?atl_token=xxxxxxxxx&key=sandbox | action: spacepermissions
java.lang.ClassCastException: com.atlassian.crowd.integration.atlassianuser.CrowdUser cannot be cast to com.atlassian.confluence.themes.GlobalHelper
at com.adaptavist.confluence.builder.conditions.ManageLayoutCondition.shouldDisplay(ManageLayoutCondition.java:18)
at com.atlassian.plugin.web.conditions.AndCompositeCondition.shouldDisplay(AndCompositeCondition.java:14)
at com.atlassian.plugin.web.conditions.AndCompositeCondition.shouldDisplay(AndCompositeCondition.java:14)
at com.atlassian.plugin.web.DefaultWebInterfaceManager.filterFragmentsByCondition(DefaultWebInterfaceManager.java:119)
at com.atlassian.plugin.web.DefaultWebInterfaceManager.getDisplayableItems(DefaultWebInterfaceManager.java:103)
at com.atlassian.confluence.plugin.descriptor.web.ConfluenceWebInterfaceManager.getDisplayableItems(ConfluenceWebInterfaceManager.java:73)
at sun.reflect.GeneratedMethodAccessor22318.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:389)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:378)
at com.atlassian.confluence.velocity.introspection.UnboxingMethod.invoke(UnboxingMethod.java:31)
at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:270)
at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:252)
at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:487)
at org.apache.velocity.runtime.parser.node.ASTExpression.value(ASTExpression.java:71)
at org.apache.velocity.runtime.parser.node.ASTSetDirective.render(ASTSetDirective.java:142)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.directive.Foreach.render(Foreach.java:364)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72)
at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:212)
at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:247)
at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:175)
at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:336)

  • No labels

5 Comments

  1. Unknown User (bbandlamudi)

    Most likely, the problem is with the line
    GlobalHelper helper = (GlobalHelper)map.get("user");
    in ManageLayoutsCondition.shouldDisplay().

    1. This was fixed weeks ago in 4.0.3-M1.

  2. Unknown User (bbandlamudi)

    Thanks Alain, I wasn't aware that early access release is available. I have updated, but it still doesn't fix the problem we are seeing and has worked earlier. Currently, only confluence admin is able to persist changes made to theme layout menus.

    We have a user (i.e, user's groups - user is a space admin and the space has a custom layout) that has global 'manage layout' permissions and also select/layout edit/panel edit/child layout permissions of a specific theme. The user is able to go the layout editor, go to theme layouts and open the 'menu' editor panel, change the menu and the changes do go into cache. However, once the user clicks the 'save' icon above the layout tree, cache gets purged, but changes are never persisted i.e, resets back to original. The same operation works fine for confluence admin and it used to work fine for the same user in the same theme. I think it started failing after 4.0.1 or 4.0.2 upgrade. Basically, LayoutManager.writeLayout() method is not getting called when the user clicks 'save' icon.

    I am fine with fixing the problem (if I can), but I am finding it quite tricky to debug and any suggestions on where to look will be a great help!

    1. You would need a support contract in place for me to be able to assist you any further .. sorry.

      1. Unknown User (bbandlamudi)

        Well, thanks for your quick response! I will need to pursue with my boss and the sponsor/company and not sure how long this is going to take.