Нужно чтоб с автопродлением была только одна подписка и нельзя было поставить автопродление на закончившуюся подписку
Код:
   @Override
   public int subscriptionUpdate(Subscription subscription) 
       throws BGException
   {   
      Connection con =getConnection();
      int subId=subscription.getId();
      int contractId = subscription.getContractId();
      try (SubscriptionDao subscriptionDao = new SubscriptionDao(con, SMIDID, 0) )
      {
         if (subscription.isAvtoCommit()){
               PeriodWithTime subscriptionPeriod = subscription.getPeriod();
             if ( !TimeUtils.timeInRange( new Date(), subscriptionPeriod.getDateFrom(), subscriptionPeriod.getDateTo() ) )
               {
                  throw new BGMessageException( "Период подписки еще не наступил или уже закончился" );
              }
            List<Subscription> subslist=subscriptionDao.list(contractId);
            for (Subscription sub : subslist){
               if (!sub.equals(subscription) && sub.isAvtoCommit()){
                  sub.setAvtoCommit(false);
                  subscriptionDao.update(sub);
               }
            }   
           }
      }
   return subId;   
   }
Если ставлю в редакторе флаг в закончившейся подписке, нажимаю Сохранить, выдает exception. Нажимаю Отмена и в подписке сохраняется флаг. Как этого избежать? И что-то не нашел, какое int должен возвращать subscriptionUpdate, поставил от фонаря ид подписки?