[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