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;


Reply via email to