Details
-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
2.1
-
None
Description
In documentation the macro doesn't have any mandatory parameters, see http://extensions.xwiki.org/xwiki/bin/view/Extension/GitHub%20Application#HUsingtheCommittersMacro
The firstCommits works if used without params, but if you write
{{committers /}}
you will get
Failed to execute the [velocity] macro. Cause: [null]. Click on this message for details. org.xwiki.rendering.macro.MacroExecutionException: Failed to evaluate Velocity Macro for content [$xwiki.ssx.use('GitHubStats.CommittersMacro') ##============================ ## Get all commits for the specified parameters ##============================ #set ($repositories = $services.githubstats.getRepositories($xcontext.macro.params.repositories)) #if ($repositories.isEmpty()) {{error}}Invalid 'repositories' parameter value. Make sure the format is '<organization1>/<repository1>,...,<organizationN>/<repositoryN>' and that the organization and repositories specified exist.{{/error}} #end #set ($since = 0) #set ($since = $since.parseInt($xcontext.macro.params.since)) #set ($userCommitActivity = $services.git.countAuthorCommits($since, $repositories)) ##================================ ## Get all imported users and their aliases in the wiki ##================================ #set ($authors = $services.githubstats.getAuthorsForRepositories($xcontext.macro.params.repositories)) ##============================== ## Aggregate commits taking into account aliases ##============================== #set ($commits = $services.githubstats.aggregateCommitsPerAuthor($userCommitActivity, $authors)) ##================= ## Macro to display an author ##================= #macro (displayAuthor $authorName $authorData $displayCounter) #set ($isCommitter = $authorData.committer == 'true') #if ($isCommitter || (!$isCommitter && "$!xcontext.macro.params.contributors" == "true")) #set ($avatar = $authorData.avatar) #if ("$!avatar" == '') #set ($avatarReference = "attach:GitHubStats.CommittersMacro@unknown.png") #else #set ($avatarReference = "${avatar}") #end #set ($avatarDisplay = "[[image:${avatarReference}]]") #set ($company = $authorData.company) #if ("$!company" != '') #set ($companyDisplay = "(%class='noitems'%)((({{{${company}}}})))(%%)") #else #set ($companyDisplay = '') #end #set ($count = $authorData.count) #if ("$!count" == '') #set ($count = 0) #end #if ($count == 0) #set ($status = 'retired') #else #if ($isCommitter) #set ($status = 'active') #else #set ($status = 'pending') #end #end #set ($nameDisplay = "{{{${authorName}}}}$!{companyDisplay}") #set ($countDisplay = "(% class='committer-count' %)((($count)))(%%)") #if ("$!xcontext.macro.params.type" == 'wall') (%class="col-xs-12 col-sm-6 col-md-3"%)((( (% class="committer committer-$status committer-wall""%)((( (%class="committer-avatar"%)((($avatarDisplay$countDisplay))) (%class="committer-details"%)((($nameDisplay))) ))) ))) #else (%class="col-xs-12"%)((( (% class="committer committer-$status""%)((( (%class="committer-avatar"%)((($avatarDisplay))) (%class="committer-details"%)((($nameDisplay))) (%class="committer-details"%)((($countDisplay))) ))) ))) #end #end #end {{html wiki="true" clean="false"}} ##===================== ## Display results in a List or Table ##===================== #set ($displayCounter = 1) (%class="row"%)((( #foreach ($data in $commits.entrySet()) #set ($authorName = $data.key) #set ($authorData = $data.value) #displayAuthor($authorName, $authorData, $displayCounter) #set ($displayCounter = $displayCounter + 1) ## Remove the authors used to display the current count from the authors map so that once the loop is over inactive authors will remain #foreach ($contributingAuthor in $authorData.authors) #set ($discard = $authors.remove($contributingAuthor)) #end #end (%%) ##================= ## Display inactive committers ##================= #if ("$!xcontext.macro.params.inactives" == "true") #foreach ($data in $authors.entrySet()) #set ($authorData = $data.value) ## Only display inactive committers #if ("$!authorData.committer" == "true") #set ($authorName = $authorData.name) #displayAuthor($authorName, $authorData, $displayCounter) #set ($displayCounter = $displayCounter + 1) #end #end #end {{/html}}] at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:139) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:52) at org.xwiki.rendering.macro.script.AbstractScriptMacro.evaluateBlock(AbstractScriptMacro.java:286) at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:182) at org.xwiki.rendering.macro.script.AbstractScriptMacro.execute(AbstractScriptMacro.java:58) at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:272) at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183) at org.xwiki.rendering.internal.macro.wikibridge.DefaultWikiMacro.execute(DefaultWikiMacro.java:257) at org.xwiki.rendering.internal.macro.wikibridge.DefaultWikiMacro.execute(DefaultWikiMacro.java:62) at org.xwiki.rendering.internal.transformation.macro.MacroTransformation.transform(MacroTransformation.java:272) at org.xwiki.rendering.internal.transformation.DefaultRenderingContext.transformInContext(DefaultRenderingContext.java:183) at org.xwiki.rendering.internal.transformation.DefaultTransformationManager.performTransformations(DefaultTransformationManager.java:95) at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:263) at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:133) at org.xwiki.display.internal.DocumentContentDisplayer.display(DocumentContentDisplayer.java:58) at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:96) at org.xwiki.display.internal.DefaultDocumentDisplayer.display(DefaultDocumentDisplayer.java:39) at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:123) at org.xwiki.sheet.internal.SheetDocumentDisplayer.display(SheetDocumentDisplayer.java:52) at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:68) at org.xwiki.display.internal.ConfiguredDocumentDisplayer.display(ConfiguredDocumentDisplayer.java:42) at com.xpn.xwiki.doc.XWikiDocument.display(XWikiDocument.java:1164) at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1205) at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1182) at com.xpn.xwiki.doc.XWikiDocument.getRenderedContent(XWikiDocument.java:1213) at com.xpn.xwiki.api.Document.getRenderedContent(Document.java:704) at sun.reflect.GeneratedMethodAccessor376.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173) at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280) at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567) 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.parser.node.SimpleNode.render(SimpleNode.java:342) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) at org.xwiki.velocity.introspection.TryCatchDirective.render(TryCatchDirective.java:87) at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222) at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361) at com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:792) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:671) at com.xpn.xwiki.internal.template.InternalTemplateManager.lambda$renderFromSkin$0(InternalTemplateManager.java:646) at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:85) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:624) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:610) at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77) at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2131) at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:2109) at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:952) at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173) at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280) at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216) at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311) at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230) at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222) at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361) at com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:792) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:671) at com.xpn.xwiki.internal.template.InternalTemplateManager.lambda$renderFromSkin$0(InternalTemplateManager.java:646) at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:85) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:624) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:610) at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77) at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2131) at com.xpn.xwiki.XWiki.parseTemplate(XWiki.java:2109) at com.xpn.xwiki.api.XWiki.parseTemplate(XWiki.java:952) at sun.reflect.GeneratedMethodAccessor221.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173) at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280) at org.apache.velocity.runtime.parser.node.ASTReference.render(ASTReference.java:369) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) at org.apache.velocity.runtime.directive.VelocimacroProxy.render(VelocimacroProxy.java:216) at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:311) at org.apache.velocity.runtime.directive.RuntimeMacro.render(RuntimeMacro.java:230) at org.apache.velocity.runtime.parser.node.ASTDirective.render(ASTDirective.java:207) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:87) at org.apache.velocity.runtime.parser.node.ASTBlock.render(ASTBlock.java:72) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) at org.apache.velocity.runtime.parser.node.ASTIfStatement.render(ASTIfStatement.java:106) at org.apache.velocity.runtime.parser.node.SimpleNode.render(SimpleNode.java:342) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222) at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361) at com.xpn.xwiki.internal.template.InternalTemplateManager.evaluateContent(InternalTemplateManager.java:792) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:671) at com.xpn.xwiki.internal.template.InternalTemplateManager.lambda$renderFromSkin$0(InternalTemplateManager.java:646) at com.xpn.xwiki.internal.security.authorization.DefaultAuthorExecutor.call(DefaultAuthorExecutor.java:85) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:645) at com.xpn.xwiki.internal.template.InternalTemplateManager.renderFromSkin(InternalTemplateManager.java:624) at com.xpn.xwiki.internal.template.InternalTemplateManager.render(InternalTemplateManager.java:610) at com.xpn.xwiki.internal.template.DefaultTemplateManager.render(DefaultTemplateManager.java:77) at com.xpn.xwiki.XWiki.evaluateTemplate(XWiki.java:2131) at com.xpn.xwiki.web.Utils.parseTemplate(Utils.java:180) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:463) at com.xpn.xwiki.web.XWikiAction.execute(XWikiAction.java:210) at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:425) at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:228) at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1913) at org.apache.struts.action.ActionServlet.doGet(ActionServlet.java:449) at javax.servlet.http.HttpServlet.service(HttpServlet.java:687) at javax.servlet.http.HttpServlet.service(HttpServlet.java:790) at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:808) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1669) at com.xpn.xwiki.web.ActionFilter.doFilter(ActionFilter.java:112) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.xwiki.wysiwyg.server.filter.ConversionFilter.doFilter(ConversionFilter.java:127) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.xwiki.container.servlet.filters.internal.SetHTTPHeaderFilter.doFilter(SetHTTPHeaderFilter.java:63) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.xwiki.container.servlet.filters.internal.SavedRequestRestorerFilter.doFilter(SavedRequestRestorerFilter.java:208) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.xwiki.container.servlet.filters.internal.SetCharacterEncodingFilter.doFilter(SetCharacterEncodingFilter.java:111) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.xwiki.resource.servlet.RoutingFilter.doFilter(RoutingFilter.java:134) at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1652) at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:585) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:143) at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:577) at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:223) at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1127) at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:515) at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:185) at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1061) at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:141) at org.eclipse.jetty.server.handler.ContextHandlerCollection.handle(ContextHandlerCollection.java:215) at org.eclipse.jetty.server.handler.HandlerCollection.handle(HandlerCollection.java:110) at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:97) at org.eclipse.jetty.server.Server.handle(Server.java:499) at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:310) at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:257) at org.eclipse.jetty.io.AbstractConnection$2.run(AbstractConnection.java:540) at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:635) at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:555) at java.lang.Thread.run(Thread.java:745) Caused by: org.xwiki.velocity.XWikiVelocityException: Failed to evaluate content with id [xwiki:GitHubStats.Test.WebHome] at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:227) at com.xpn.xwiki.render.DefaultVelocityManager.evaluate(DefaultVelocityManager.java:361) at org.xwiki.rendering.internal.macro.velocity.VelocityMacro.evaluateString(VelocityMacro.java:131) ... 157 more Caused by: org.apache.velocity.exception.MethodInvocationException: Invocation of method 'aggregateCommitsPerAuthor' in class org.xwiki.contrib.githubstats.script.GitHubStatsScriptService threw exception java.lang.NullPointerException at 1538:xwiki:GitHubStats.Test.WebHome[line 19, column 40] at org.apache.velocity.runtime.parser.node.ASTMethod.handleInvocationException(ASTMethod.java:243) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:187) at org.apache.velocity.runtime.parser.node.ASTReference.execute(ASTReference.java:280) at org.apache.velocity.runtime.parser.node.ASTReference.value(ASTReference.java:567) 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.SimpleNode.render(SimpleNode.java:342) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluateInternal(DefaultVelocityEngine.java:259) at org.xwiki.velocity.internal.DefaultVelocityEngine.evaluate(DefaultVelocityEngine.java:222) ... 159 more Caused by: java.lang.NullPointerException at org.xwiki.contrib.githubstats.internal.DefaultGitHubStatsManager.extractAuthorsByName(DefaultGitHubStatsManager.java:828) at org.xwiki.contrib.githubstats.internal.DefaultGitHubStatsManager.aggregateCommitsPerAuthor(DefaultGitHubStatsManager.java:745) at org.xwiki.contrib.githubstats.script.GitHubStatsScriptService.aggregateCommitsPerAuthor(GitHubStatsScriptService.java:389) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.doInvoke(UberspectImpl.java:395) at org.apache.velocity.util.introspection.UberspectImpl$VelMethodImpl.invoke(UberspectImpl.java:384) at org.apache.velocity.runtime.parser.node.ASTMethod.execute(ASTMethod.java:173) ... 166 more
Tested on 9.5.