Author: venkatm
Date: Fri Apr 6 18:23:25 2012
New Revision: 1310534
URL: http://svn.apache.org/viewvc?rev=1310534&view=rev
Log:
RAVE-541: Bug fix
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
Modified:
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java?rev=1310534&r1=1310533&r2=1310534&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
(original)
+++
rave/trunk/rave-components/rave-core/src/main/java/org/apache/rave/portal/service/impl/DefaultPageService.java
Fri Apr 6 18:23:25 2012
@@ -29,6 +29,8 @@ import org.springframework.beans.factory
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
+import javax.persistence.NoResultException;
+import javax.persistence.NonUniqueResultException;
import java.util.ArrayList;
import java.util.List;
@@ -406,23 +408,28 @@ public class DefaultPageService implemen
List<Page> defaultUserPage =
pageRepository.getAllPages(user.getEntityId(), PageType.USER);
// Is there a default page for this user
if (defaultUserPage.isEmpty()) {
- // Do we have a default User template defined (only 1 as of now),
if so create page based on the template
- // TODO: Only 1 user template should be defined as default as of
now,
- // this would throw an exception if there are more than 1 default
user template or none
- page = pageRepository.createPageForUser(user,
pageTemplateRepository.getDefaultPage(PageType.USER));
- } else {
- // Create the new page for the user
- long renderSequence = defaultUserPage.size() + 1;
- page = new Page();
- page.setName(pageName);
- page.setOwner(user);
- page.setPageLayout(pageLayout);
- page.setRenderSequence(renderSequence);
- page.setRegions(regions);
- // set this as a "user" page type
- page.setPageType(PageType.USER);
- pageRepository.save(page);
+ // Do we have a default User template defined, if so create the
page based on the template
+ try {
+ return pageRepository.createPageForUser(user,
pageTemplateRepository.getDefaultPage(PageType.USER));
+ } catch ( NoResultException nre ) {
+ // There are no default user page template records in DB
+ } catch ( NonUniqueResultException nue ) {
+ // There are more than 1 default user page template records in
DB
+ }
}
+
+ // If we have a page already or if there was an exception from above
then create the page
+ // Create the new page for the user
+ long renderSequence = defaultUserPage.size() + 1;
+ page = new Page();
+ page.setName(pageName);
+ page.setOwner(user);
+ page.setPageLayout(pageLayout);
+ page.setRenderSequence(renderSequence);
+ page.setRegions(regions);
+ // set this as a "user" page type
+ page.setPageType(PageType.USER);
+ pageRepository.save(page);
return page;
}
Modified:
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
URL:
http://svn.apache.org/viewvc/rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java?rev=1310534&r1=1310533&r2=1310534&view=diff
==============================================================================
---
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
(original)
+++
rave/trunk/rave-components/rave-core/src/test/java/org/apache/rave/portal/service/impl/DefaultPageServiceTest.java
Fri Apr 6 18:23:25 2012
@@ -205,7 +205,7 @@ public class DefaultPageServiceTest {
}
- @Test(expected = NoResultException.class)
+ @Test
public void addNewUserPage_noExistingPages_no_result_exception() {
final String PAGE_NAME = "my new page";
final Long EXPECTED_RENDER_SEQUENCE = 1L;
@@ -235,7 +235,7 @@ public class DefaultPageServiceTest {
verify(userService, pageLayoutRepository, pageRepository,
pageTemplateRepository);
}
- @Test(expected = NonUniqueResultException.class)
+ @Test
public void
addNewUserPage_noExistingPages_Non_Unique_ResultException_exception() {
final String PAGE_NAME = "my new page";
final Long EXPECTED_RENDER_SEQUENCE = 1L;