Problem
When the permission "View Development Tools" (P) is assigned to a specific group (A), Jira will throw an exception "SoyDataException: Expecting number value but instead encountered type UndefinedData" whenever a user not belonging to (A) visits a board from a project using the permission scheme (P) causing the log to be filled up and becoming unuseful
Environment
9.4.21
Steps to Reproduce
- Create an application link between Jira 9.4.X and Bitbucket 8.19.5
- On Jira create a user group "with_access_to_bitbucket"
- Create two users
- Assign user 1 to the group with_access_to_bitbucket
- Create a Jira software project PRJ with sample data
- Configure the board and add development field in Card layout - backlog
- Update the project permission and set the "View Development Tools" permission to "with_access_to_bitbucket" group exclusively
- Access Jira using the user 2
- Visit the board of PRJ
- Drag and drop one of the tickets that has development data
Expected Results
- The user will not be able to see the development releated data
- Jira will be silent about the user action
Actual Results
- The user cannot see the development-related data
- Jira throws the following exception exception
2024-07-05 10:53:41,160+0000 http-nio-8080-exec-14 url: /jira/rest/greenhopper/1.0/xboard/work/allData.json; user: user1 ERROR user1 653x1041x1 12imm8e 172.29.211.236,172.50.0.2 /rest/greenhopper/1.0/xboard/work/allDat
a.json [c.atlassian.velocity.DefaultVelocityManager] MethodInvocationException occurred getting message body from Velocity: com.google.template.soy.tofu.SoyTofuException: When evaluating "$value.summaryBean.summary.bui
ld.overall.count > 0 or $value.summaryBean.summary['deployment-environment'].overall.count > 0": Expecting number value but instead encountered type UndefinedData
com.google.template.soy.tofu.SoyTofuException: When evaluating "$value.summaryBean.summary.build.overall.count > 0 or $value.summaryBean.summary['deployment-environment'].overall.count > 0": Expecting number value but
instead encountered type UndefinedData
at JIRA.Templates.DevStatus.RapidBoard.card(view-devsummary-card.soy:12)
at com.google.template.soy.tofu.internal.BaseTofu.renderMainHelper(BaseTofu.java:369)
at com.google.template.soy.tofu.internal.BaseTofu.renderMain(BaseTofu.java:322)
at com.google.template.soy.tofu.internal.BaseTofu.access$100(BaseTofu.java:66)
at com.google.template.soy.tofu.internal.BaseTofu$RendererImpl.render(BaseTofu.java:476)
at com.atlassian.soy.impl.DefaultSoyManager.render(DefaultSoyManager.java:146)
at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:52)
at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:40)
at com.atlassian.soy.impl.DefaultSoyTemplateRenderer.render(DefaultSoyTemplateRenderer.java:34)
at jdk.internal.reflect.GeneratedMethodAccessor968.invoke(Unknown Source)
at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.base/java.lang.reflect.Method.invoke(Method.java:566)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:385)
at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:374)
at com.atlassian.velocity.htmlsafe.introspection.AnnotationBoxingMethod.invoke(AnnotationBoxingMethod.java:24)
...
at com.google.template.soy.soytree.AbstractSoyNodeVisitor.visitTemplateBasicNode(AbstractSoyNodeVisitor.java:160)
at com.google.template.soy.soytree.AbstractSoyNodeVisitor.visit(AbstractSoyNodeVisitor.java:66)
at com.google.template.soy.soytree.AbstractSoyNodeVisitor.visit(AbstractSoyNodeVisitor.java:56)
at com.google.template.soy.basetree.AbstractNodeVisitor.exec(AbstractNodeVisitor.java:40)
at com.google.template.soy.tofu.internal.BaseTofu.renderMainHelper(BaseTofu.java:366)
... 354 more
Caused by: com.google.template.soy.data.SoyDataException: Expecting number value but instead encountered type UndefinedData
at com.google.template.soy.data.SoyAbstractValue.numberValue(SoyAbstractValue.java:82)
at com.google.template.soy.sharedpasses.render.EvalVisitor.visitGreaterThanOpNode(EvalVisitor.java:492)
at com.google.template.soy.sharedpasses.render.EvalVisitor.visitGreaterThanOpNode(EvalVisitor.java:87)
at com.google.template.soy.exprtree.AbstractReturningExprNodeVisitor.visit(AbstractReturningExprNodeVisitor.java:106)
at com.google.template.soy.sharedpasses.render.EvalVisitor.visitOrOpNode(EvalVisitor.java:597)
at com.google.template.soy.exprtree.AbstractReturningExprNodeVisitor.visit(AbstractReturningExprNodeVisitor.java:114)
at com.google.template.soy.sharedpasses.render.EvalVisitor.visitExprRootNode(EvalVisitor.java:148)
at com.google.template.soy.sharedpasses.render.EvalVisitor.visitExprRootNode(EvalVisitor.java:87)
at com.google.template.soy.exprtree.AbstractReturningExprNodeVisitor.visit(AbstractReturningExprNodeVisitor.java:81)
at com.google.template.soy.exprtree.AbstractReturningExprNodeVisitor.visit(AbstractReturningExprNodeVisitor.java:73)
at com.google.template.soy.basetree.AbstractReturningNodeVisitor.exec(AbstractReturningNodeVisitor.java:43)
at com.google.template.soy.sharedpasses.render.RenderVisitor.eval(RenderVisitor.java:739)
... 366 more
Workaround
It's possible to silence the messages temporarily following
- Go to Administration->system->Logging and profiling->Default Loggers
- Configure logging level for another package and add the bellow packages as OFF
- com.atlassian.velocity
Permanently following Change logging levels in Jira Server