Author: vdegtyarev
Date: Mon Dec 23 07:51:42 2013
New Revision: 1553082

URL: http://svn.apache.org/r1553082
Log:
OPENMEETINGS-864 is fixed. Now event updates without error and events are not 
duplicated if invite more then one guest.

Modified:
    
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
    
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java

Modified: 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java?rev=1553082&r1=1553081&r2=1553082&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/dao/calendar/AppointmentDao.java
 Mon Dec 23 07:51:42 2013
@@ -161,8 +161,8 @@ public class AppointmentDao {
                                        invitationManager.processInvitation(a, 
mm, MessageType.Create, baseUrl);
                                } else {
                                        boolean sendMail = a0 == null || 
!a0.getTitle().equals(a.getTitle()) ||
-                                               
!a0.getDescription().equals(a.getDescription()) ||
-                                               
!a0.getLocation().equals(a.getLocation()) ||
+                                               !(a0.getDescription() != null ? 
a0.getDescription().equals(a.getDescription()) : true) ||
+                                               !(a0.getLocation() != null ? 
a0.getLocation().equals(a.getLocation()) : true) ||
                                                
!a0.getStart().equals(a.getStart()) ||
                                                !a0.getEnd().equals(a.getEnd());
                                        mmIds.remove(mm.getId());

Modified: 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
URL: 
http://svn.apache.org/viewvc/openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java?rev=1553082&r1=1553081&r2=1553082&view=diff
==============================================================================
--- 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
 (original)
+++ 
openmeetings/trunk/singlewebapp/src/db/java/org/apache/openmeetings/db/entity/calendar/Appointment.java
 Mon Dec 23 07:51:42 2013
@@ -48,10 +48,10 @@ import org.simpleframework.xml.Root;
 @Entity
 @Table(name = "appointments")
 @NamedQueries({
-    @NamedQuery(name="getAppointmentById", query="SELECT a FROM Appointment a 
LEFT JOIN FETCH a.meetingMembers"
+    @NamedQuery(name="getAppointmentById", query="SELECT DISTINCT a FROM 
Appointment a LEFT JOIN FETCH a.meetingMembers"
                + " WHERE a.deleted = false AND a.id = :id")
     , @NamedQuery(name="appointmentsInRange",
-       query="SELECT a FROM Appointment a LEFT JOIN FETCH a.meetingMembers "
+       query="SELECT DISTINCT a FROM Appointment a LEFT JOIN FETCH 
a.meetingMembers "
                        + "WHERE a.deleted = false "
                        + "     AND ( "
                        + "             (a.start BETWEEN :starttime AND 
:endtime) "
@@ -61,7 +61,7 @@ import org.simpleframework.xml.Root;
                        + "     AND a.owner.user_id = :userId"
        )
     , @NamedQuery(name="joinedAppointmentsInRange",
-               query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment 
a LEFT JOIN FETCH a.meetingMembers "
+               query="SELECT DISTINCT a FROM MeetingMember mm INNER JOIN 
mm.appointment a LEFT JOIN FETCH a.meetingMembers "
                        + "WHERE mm.deleted = false AND mm.user.user_id <> 
a.owner.user_id AND mm.user.user_id = :userId "
                        + "     AND a.id NOT IN (SELECT a.id FROM Appointment a 
WHERE a.owner.user_id = :userId)"
                        + "     AND mm.connectedEvent = false " //TODO review: 
isConnectedEvent is set for the MeetingMember if event is created from "Private 
Messages", it is weird
@@ -72,7 +72,7 @@ import org.simpleframework.xml.Root;
                        + "     )"
        )
     , @NamedQuery(name="appointmentsInRangeRemind",
-               query="SELECT a FROM MeetingMember mm INNER JOIN mm.appointment 
a LEFT JOIN FETCH a.meetingMembers "
+               query="SELECT DISTINCT a FROM MeetingMember mm INNER JOIN 
mm.appointment a LEFT JOIN FETCH a.meetingMembers "
                        //only ReminderType simple mail is concerned!
                        + "WHERE mm.deleted = false AND a.deleted = false AND 
a.reminderEmailSend = false"
                        + " AND (a.remind.typId = 2 OR a.remind.typId = 3) "
@@ -82,7 +82,7 @@ import org.simpleframework.xml.Root;
                        + "             OR (a.start < :starttime AND a.end > 
:endtime) "
                        + "     )"
        )
-    , @NamedQuery(name="getAppointmentByRoomId", query="SELECT a FROM 
Appointment a LEFT JOIN FETCH a.meetingMembers"
+    , @NamedQuery(name="getAppointmentByRoomId", query="SELECT DISTINCT a FROM 
Appointment a LEFT JOIN FETCH a.meetingMembers"
                + " WHERE a.deleted = false AND a.room.rooms_id = :room_id")
        //TODO this query returns duplicates if the user books an appointment 
with
        //his own user as second meeting-member, swagner 19.02.2012


Reply via email to