[Bedework-commit] calendarapi r648 - in releases/bedework-3.4.1.1/calCore: resources/hbms src/org/bedework/calcore/hibernate

svnadmin at bedework.org svnadmin at bedework.org
Wed Jun 4 11:00:58 EDT 2008


Author: douglm
Date: 2008-06-04 11:00:53 -0400 (Wed, 04 Jun 2008)
New Revision: 648

Modified:
   releases/bedework-3.4.1.1/calCore/resources/hbms/Calendar.hbm.xml
   releases/bedework-3.4.1.1/calCore/src/org/bedework/calcore/hibernate/CoreCalendars.java
Log:
Fix a test to show up a missed calendar deletion bug

Fix the bug - side effect, deletion should be faster

Modified: releases/bedework-3.4.1.1/calCore/resources/hbms/Calendar.hbm.xml
===================================================================
--- releases/bedework-3.4.1.1/calCore/resources/hbms/Calendar.hbm.xml	2008-06-03 17:55:29 UTC (rev 647)
+++ releases/bedework-3.4.1.1/calCore/resources/hbms/Calendar.hbm.xml	2008-06-04 15:00:53 UTC (rev 648)
@@ -149,5 +149,10 @@
     select count(*) from org.bedework.calfacade.BwEventObj as ev
       where ev.calendar = :cal
   ]]></query>
+
+  <query name="countCalendarChildren"><![CDATA[
+    select count(*) from org.bedework.calfacade.BwCalendar as c
+      where c.calendar = :cal
+  ]]></query>
 </hibernate-mapping>
 

Modified: releases/bedework-3.4.1.1/calCore/src/org/bedework/calcore/hibernate/CoreCalendars.java
===================================================================
--- releases/bedework-3.4.1.1/calCore/src/org/bedework/calcore/hibernate/CoreCalendars.java	2008-06-03 17:55:29 UTC (rev 647)
+++ releases/bedework-3.4.1.1/calCore/src/org/bedework/calcore/hibernate/CoreCalendars.java	2008-06-04 15:00:53 UTC (rev 648)
@@ -446,7 +446,7 @@
     }
 
     val = unwrap(val);
-    if (val.hasChildren()) {
+    if (!isEmpty(val)) {
       throw new CalFacadeException(CalFacadeException.calendarNotEmpty);
     }
 
@@ -469,15 +469,23 @@
     Long res = (Long)sess.getUnique();
 
     if (debug) {
-      trace(" ----------- count = " + res);
+      trace(" ----------- count events = " + res);
     }
 
     if ((res != null) && (res.intValue() > 0)) {
       return false;
     }
 
-    Collection<BwCalendar> cals = val.getChildren();
-    return (cals == null) || (cals.size() > 0);
+    sess.namedQuery("countCalendarChildren");
+    sess.setEntity("cal", unwrap(val));
+
+    res = (Long)sess.getUnique();
+
+    if (debug) {
+      trace(" ----------- count children = " + res);
+    }
+
+    return (res == null) || (res.intValue() == 0);
   }
 
   /* ====================================================================



More information about the Bedework-commit mailing list