Skip to content

Commit

Permalink
Merge branch 'master' into 'dev'
Browse files Browse the repository at this point in the history
  • Loading branch information
bonita-ci committed Jul 28, 2023
2 parents 7314b99 + e219907 commit ac25c00
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 6 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -85,9 +85,15 @@ public GroovyClassLoader getPageClassloader(final APISession apiSession,

public void ensurePageFolderIsPresent(final APISession apiSession, final PageResourceProvider pageResourceProvider)
throws BonitaException, IOException {
File pageDirectory = pageResourceProvider.getPageDirectory();
if (!pageDirectory.exists() || pageDirectory.list().length == 0) {
retrievePageZipContent(apiSession, pageResourceProvider);
final String fullPageName = pageResourceProvider.getFullPageName();
synchronized (getPageLock(fullPageName)) {
File pageDirectory = pageResourceProvider.getPageDirectory();
if (!pageDirectory.exists() || pageDirectory.list().length == 0) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("No page folder for page: " + fullPageName);
}
retrievePageZipContent(apiSession, pageResourceProvider);
}
}
}

Expand All @@ -102,6 +108,9 @@ public void ensurePageFolderIsUpToDate(final APISession apiSession, final PageRe
final long databaseLastUpdateTimestamp = getPageLastUpdateDateFromEngine(apiSession,
pageResourceProvider);
if (databaseLastUpdateTimestamp != pageTimestampFromCache) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Local update will be performed for page: " + fullPageName);
}
removePage(pageResourceProvider, true);
retrievePageZipContent(apiSession, pageResourceProvider);
} else {
Expand All @@ -111,6 +120,9 @@ public void ensurePageFolderIsUpToDate(final APISession apiSession, final PageRe
}
} else {
//if the last update date is not in the cache, the page has not been retrieved yet
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Local retrieval of page: " + fullPageName);
}
retrievePageZipContent(apiSession, pageResourceProvider);
}
}
Expand All @@ -120,6 +132,10 @@ protected void ensurePageTempFolderIsHealthy(final APISession apiSession,
final PageResourceProvider pageResourceProvider) throws IOException, BonitaException {
final File pageFolder = pageResourceProvider.getPageDirectory();
if (!pageFolder.exists() || pageFolder.list().length == 0) {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug(
"Page folder does not seem to be healthy for page: " + pageResourceProvider.getFullPageName());
}
removePage(pageResourceProvider, true);
retrievePageZipContent(apiSession, pageResourceProvider);
}
Expand Down Expand Up @@ -335,6 +351,9 @@ protected ClassLoader getParentClassloader(final String pageName,

protected void retrievePageZipContent(final APISession apiSession, final PageResourceProvider pageResourceProvider)
throws BonitaException, IOException {
if (LOGGER.isDebugEnabled()) {
LOGGER.debug("Retrieving page content for page: " + pageResourceProvider.getFullPageName());
}
final PageAPI pageAPI = getPageAPI(apiSession);
// retrieve page zip content from engine and cache it
final Page page = pageResourceProvider.getPage(pageAPI);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -73,9 +73,7 @@ public void displayCustomPage(final HttpServletRequest request, final HttpServle

public void ensurePageFolderIsPresent(final APISession apiSession,
final PageResourceProviderImpl pageResourceProvider) throws BonitaException, IOException {
synchronized (PageRenderer.class) {
customPageService.ensurePageFolderIsPresent(apiSession, pageResourceProvider);
}
customPageService.ensurePageFolderIsPresent(apiSession, pageResourceProvider);
}

private void displayCustomPage(final HttpServletRequest request, final HttpServletResponse response,
Expand Down

0 comments on commit ac25c00

Please sign in to comment.