Forums

Articles
Create
cancel
Showing results for 
Search instead for 
Did you mean: 

pageManager.trashPage() not working properly when called from inside a schedule job.

Elie Chidiac
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
March 26, 2021

Hello,

I have a scheduled job (<job-config>) implemented inside our inhouse developed Confluence Plugin.

Inside this job, I am trying to delete a page using pageManager.trashPage(page, DefaultDeleteContext.DEFAULT).

This line of code works perfectly from inside any other class but it is not working properly from inside the scheduled job. When called from inside the scheduled job, the pageManager.trashPage() function deletes the page from all the search functionalities but I can still see it on the UI (I can still visit the page and see it in the tree of the space).

In addition, after calling pageManager.trashPage() on the page, If we try to search for all the pages on the space using the REST API (/rest/api/content/search) or using the JAVA API (cqlSearchService.searchContent(cql, pageRequest)), the aforementioned page is not returned with the results of the search.

Did anyone face this kind of behavior or does anyone know what could be causing this problem?

Thank you,

1 answer

1 vote
Arne Schmidt
I'm New Here
I'm New Here
Those new to the Atlassian Community have posted less than three times. Give them a warm welcome!
December 21, 2021

Hi @Elie Chidiac

I had exactly the same problem. You can solve it by using the TransactionTemplate and executing the code of your job within a transaction.

For example:

public JobRunnerResponse runJob(JobRunnerRequest request) {
return transactionTemplate.execute(() -> {

...

pageManager.trashPage(page, DefaultDeleteContext.DEFAULT);

...

return JobRunnerResponse.success();
});
}

 

Best regards

Suggest an answer

Log in or Sign up to answer
TAGS
AUG Leaders

Atlassian Community Events