infoRoomList.remove(infoLessonAux.getInfoSala());
if (infoLesson.getIdInternal() != null && !infoLesson.getIdInternal().equals(infoLessonAux.getIdInternal())) { infoRoomList.remove(infoLessonAux.getInfoSala()); } else if (infoLesson.getIdInternal() == null) { infoRoomList.remove(infoLessonAux.getInfoSala()); }
	public Object run(		InfoRoom infoRoom,		InfoLesson infoLesson,		InfoExecutionPeriod infoExecutionPeriod)		throws FenixServiceException {		try {			ISuportePersistente sp = SuportePersistenteOJB.getInstance();			IAulaPersistente lessonDAO = sp.getIAulaPersistente();			ISalaPersistente roomDAO = sp.getISalaPersistente();			// Check is time interval is valid			if (!validTimeInterval(infoLesson)) {				throw new InvalidTimeInterval();			}			// Read all Rooms with a capacity			List roomList =				roomDAO.readSalas(					null,					null,					null,					null,					infoRoom.getCapacidadeNormal(),					null);			Iterator roomListIterator = roomList.iterator();			List infoRoomList = new ArrayList();			while (roomListIterator.hasNext()) {				ISala element = (ISala) roomListIterator.next();				try {					InfoRoom infoRoomElement =						Cloner.copyRoom2InfoRoom(element);					infoRoomList.add(infoRoomElement);				} catch (IllegalArgumentException e) {					// ignored				}			}			// remove predicate			infoRoomList =				(List) CollectionUtils.select(					infoRoomList,					new RoomLessonPredicate());			IAula lesson = Cloner.copyInfoLesson2Lesson(infoLesson);			IExecutionPeriod executionPeriod =				Cloner.copyInfoExecutionPeriod2IExecutionPeriod(					infoExecutionPeriod);			//List lessonList = lessonDAO.readLessonsInPeriod(lesson);			List lessonList =				lessonDAO.readLessonsInBroadPeriodInAnyRoom(lesson,executionPeriod);			Iterator lessonIterator = lessonList.iterator();			/* remove lesson's rooms from room list */			while (lessonIterator.hasNext()) {				IAula lessonAux = (IAula) lessonIterator.next();				InfoLesson infoLessonAux =					Cloner.copyILesson2InfoLesson(lessonAux);				infoRoomList.remove(infoLessonAux.getInfoSala());			}			return infoRoomList;		} catch (ExcepcaoPersistencia e) {			throw new FenixServiceException(e);		}	}