@Override
public QueryResult<PageContext> findPages(int offset, int limit, SiteType siteType, String siteName, String pageName,
String pageTitle) {
try {
JTAUserTransactionLifecycleService jtaUserTransactionLifecycleService = (JTAUserTransactionLifecycleService) PortalContainer
.getInstance().getComponentInstanceOfType(JTAUserTransactionLifecycleService.class);
if (jtaUserTransactionLifecycleService.getUserTransaction().getStatus() == Status.STATUS_ACTIVE) {
POMSession pomSession = manager.getSession();
if (pomSession.isModified()) {
if (log.isTraceEnabled()) {
log.trace("Active JTA transaction found. Going to sync MOP session and JTA transaction");
}
// Sync current MOP session first
pomSession.save();
jtaUserTransactionLifecycleService.finishJTATransaction();
jtaUserTransactionLifecycleService.beginJTATransaction();
}
}
} catch (Exception e) {
log.warn("Error during sync of JTA transaction", e);
}