Index: main/plugin-odf-web/src/org/ametys/plugins/odfweb/OdfURIResolver.java =================================================================== --- main/plugin-odf-web/src/org/ametys/plugins/odfweb/OdfURIResolver.java (revision 36748) +++ main/plugin-odf-web/src/org/ametys/plugins/odfweb/OdfURIResolver.java (working copy) @@ -193,7 +193,7 @@ Course parentCourse = _resolver.resolveById(path[index - 1]); Page parentCoursePage = _odfResolver.getCoursePage(parentCourse, path[index], currentSite); - if (parentCoursePage != null) + if (parentCoursePage != null && odfRoot != null) { pagePath = parentCoursePage.getPathInSitemap().substring(odfRoot.getPathInSitemap().length() + 1); } @@ -209,7 +209,7 @@ Course parentCourse = _resolver.resolveById(path[index - 1]); Page parentCoursePage = _odfResolver.getCoursePage(parentCourse, program.getId(), currentSite); - if (parentCoursePage != null) + if (parentCoursePage != null && odfRoot != null) { pagePath = parentCoursePage.getPathInSitemap().substring(odfRoot.getPathInSitemap().length() + 1); } @@ -222,7 +222,7 @@ odfRoot = _odfPageHandler.getOdfRootPage(currentSite, course.getLanguage()); Page parentCoursePage = _odfResolver.getCoursePage((Course) parent, null, currentSite); - if (parentCoursePage != null) + if (parentCoursePage != null && odfRoot != null) { pagePath = parentCoursePage.getPathInSitemap().substring(odfRoot.getPathInSitemap().length() + 1); } @@ -242,7 +242,10 @@ index--; } - return _resolver.resolveById("course://" + pagePath + "?rootId=" + odfRoot.getId() + "&courseId=" + course.getId()); + if (odfRoot != null) + { + return _resolver.resolveById("course://" + pagePath + "?rootId=" + odfRoot.getId() + "&courseId=" + course.getId()); + } } else if (path.length == 2) { @@ -258,12 +261,15 @@ odfRoot = _odfPageHandler.getOdfRootPage(currentSite, course.getLanguage()); Page parentCoursePage = _odfResolver.getCoursePage((Course) parent, null, currentSite); - if (parentCoursePage != null) + if (parentCoursePage != null && odfRoot != null) { pagePath = parentCoursePage.getPathInSitemap().substring(odfRoot.getPathInSitemap().length() + 1); } - return _resolver.resolveById("course://" + pagePath + "?rootId=" + odfRoot.getId() + "&courseId=" + course.getId()); + if (odfRoot != null) + { + return _resolver.resolveById("course://" + pagePath + "?rootId=" + odfRoot.getId() + "&courseId=" + course.getId()); + } } } else @@ -271,6 +277,10 @@ // [courseContent://UUID1] return _odfResolver.getCoursePage(course, null, currentSite); } + + // ODF-1122If ODFURIResolver without odf root page + // Then return null + return null; } /**