Approvals Macro from Comala Document Approval add-on is not showing any data on the Confluence page.

Still need help?

The Atlassian Community is here for you.

Ask the community

Platform Notice: Server and Data Center Only - This article only applies to Atlassian products on the server and data center platforms.

     

Summary

Approvals Macro from Comala Document Approval add-on is not showing any data on the Confluence page.

Environment

Confluence 7.x.x

Comala Document Approval add-on

Diagnosis

Previewing a page with Comala Document Approval macro will show no data about approval of attachments.

2021-03-14 00:13:47,428 ERROR [Indexer: 2] [comalatech.confluence.workflow.DefaultValueStore] setPageAttributes Error getting page workflow information from page: page: Page Name v.1 (75571207)
com.comalatech.confluence.workflow.WorkflowUserException: Error in workflow markup:<br/><div class="error"><span class="error">Unknown macro: {workflow}</span> 
    <div class="error"><span class="error">Unknown macro: {description}</span> 
<p>        A Simple Approval Workflow, a page's state can be for 'Review', 'Approved' or 'Rejected'. Only 'Approved' pages are visible to Read-only users.</p>
</div>
    <div class="error"><span class="error">Unknown macro: {state}</span> 
        <div class="error"><span class="error">Unknown macro: {approval}</span> </div>
</div>
    <div class="error"><span class="error">Unknown macro: {state}</span> 
        <div class="error"><span class="error">Unknown macro: {approval}</span> </div>
</div>
    <div class="error"><span class="error">Unknown macro: {state}</span> 
</div>
    <div class="error"><span class="error">Unknown macro: {read-ack}</span> </div></div>
	at com.comalatech.confluence.workflow.parser.WorkflowWikiParser.parseWorkflow(WorkflowWikiParser.java:41)
	at com.comalatech.confluence.workflow.parser.WorkflowWikiParser.parseWorkflow(WorkflowWikiParser.java:27)
	at com.comalatech.confluence.workflowcontainer.DefaultWorkflowContainerManager.renderWorkflow(DefaultWorkflowContainerManager.java:176)
	at com.comalatech.confluence.adhoc.DefaultAdhocWorkflowManager.getPageWorkflow(DefaultAdhocWorkflowManager.java:268)
	at com.comalatech.confluence.adhoc.DefaultAdhocWorkflowManager.getPageWorkflow(DefaultAdhocWorkflowManager.java:260)
	at com.comalatech.confluence.workflow.DefaultValueStore.setPageAttributes(DefaultValueStore.java:326)
	at com.comalatech.confluence.workflow.DefaultValueStore.<init>(DefaultValueStore.java:88)
	at com.comalatech.confluence.workflow.DefaultValueStoreManager.createValueStore(DefaultValueStoreManager.java:29)
	at com.comalatech.confluence.workflow.DefaultWorkflowAccessor.getWorkflows(DefaultWorkflowAccessor.java:199)
	at com.comalatech.confluence.workflow.DefaultWorkflowAccessor.getWorkflows(DefaultWorkflowAccessor.java:347)
	at com.comalatech.confluence.workflow.DefaultWorkflowAccessor.getPageWorkflows(DefaultWorkflowAccessor.java:334)
	at com.comalatech.confluence.workflow.extractors.ApprovalsExtractorImpl.extractFields(ApprovalsExtractorImpl.java:111)
	at com.atlassian.confluence.search.lucene.extractor.Extractor2ToExtractorAdapter.addFields(Extractor2ToExtractorAdapter.java:33)
	at com.atlassian.confluence.plugin.descriptor.ExtractorModuleDescriptor$BackwardsCompatibleExtractor.addFields(ExtractorModuleDescriptor.java:39)
	at com.atlassian.confluence.internal.index.lucene.LuceneContentExtractor.lambda$extract$0(LuceneContentExtractor.java:68)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.accept(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline$3$1.accept(Unknown Source)
	at java.base/java.util.stream.SortedOps$SizedRefSortingSink.end(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.copyInto(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(Unknown Source)
	at java.base/java.util.stream.ForEachOps$ForEachOp.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(Unknown Source)
	at java.base/java.util.stream.AbstractPipeline.evaluate(Unknown Source)
	at java.base/java.util.stream.ReferencePipeline.forEach(Unknown Source)
	at com.atlassian.confluence.internal.index.lucene.LuceneContentExtractor.extract(LuceneContentExtractor.java:65)
	at com.atlassian.confluence.internal.index.v2.AtlassianContentDocumentBuilder.lambda$build$0(AtlassianContentDocumentBuilder.java:69)
	at java.base/java.util.ArrayList.forEach(Unknown Source)
	at com.atlassian.confluence.internal.index.v2.AtlassianContentDocumentBuilder.build(AtlassianContentDocumentBuilder.java:68)
	at com.atlassian.confluence.internal.index.v2.AtlassianContentDocumentBuilder.build(AtlassianContentDocumentBuilder.java:29)
	at com.atlassian.confluence.internal.index.lucene.LuceneDocumentBuilder.getDocument(LuceneDocumentBuilder.java:31)
	at com.atlassian.confluence.search.lucene.tasks.AddDocumentIndexTask.perform(AddDocumentIndexTask.java:47)
	at com.atlassian.confluence.internal.index.lucene.LuceneBatchIndexer.doIndex(LuceneBatchIndexer.java:126)
	at com.atlassian.confluence.internal.index.lucene.LuceneBatchIndexer.lambda$index$0(LuceneBatchIndexer.java:62)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at com.atlassian.confluence.internal.index.lucene.LuceneBatchIndexer.index(LuceneBatchIndexer.java:61)
	at com.atlassian.confluence.internal.index.ConcurrentBatchIndexer.lambda$null$1(ConcurrentBatchIndexer.java:119)
	at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
	at com.atlassian.confluence.impl.tenant.ThreadLocalTenantGate.lambda$wrap$0(ThreadLocalTenantGate.java:25)
	at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContextInternal(VCacheRequestContextManager.java:84)
	at com.atlassian.confluence.impl.vcache.VCacheRequestContextManager.doInRequestContext(VCacheRequestContextManager.java:68)
	at com.atlassian.confluence.vcache.VCacheRequestContextOperations.lambda$withRequestContext$1(VCacheRequestContextOperations.java:59)
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.base/java.lang.Thread.run(Unknown Source)
...



Cause

Due to corrupt index data, the macro is unable to populate any data.

Solution

As per Comala documentation, the new Document Actions report uses Confluence JSON page properties to supply the data to display.  These values will normally be updated after each change in the workflow.

To ensure that the report shows all pending approvals and tasks, a Global Administrator will need to manually execute a long-running task by accessing the following URL:

https://<HOSTNAME>/admin/plugins/approvalsworkflow/workflowsPopulateJsonProperties.action





Last modified on Mar 29, 2021

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.