James Moger
2014-05-01 92a33bc2ef40a7252ca8800cc48657afe66db2ef
src/main/java/com/gitblit/tickets/RedisTicketService.java
@@ -22,7 +22,6 @@
import java.util.Set;
import org.apache.commons.pool2.impl.GenericObjectPoolConfig;
import org.eclipse.jgit.lib.Repository;
import redis.clients.jedis.Client;
import redis.clients.jedis.Jedis;
@@ -229,42 +228,24 @@
   public List<TicketModel> getTickets(RepositoryModel repository, TicketFilter filter) {
      Jedis jedis = pool.getResource();
      List<TicketModel> list = new ArrayList<TicketModel>();
      List<RepositoryModel> models = new ArrayList<RepositoryModel>();
      if(repository == null)
      {
         List<String> allRepo = repositoryManager.getRepositoryList();
         for(int i = 0; i < allRepo.size(); i++)
         {
            models.add(repositoryManager.getRepositoryModel(allRepo.get(i)));
         }
      }
      else
      {
         models.add(repository);
      }
      if (jedis == null) {
         return list;
      }
      for(int i = 0; i < models.size(); i++)
      {
         RepositoryModel model = models.get(i);
         try {
            // Deserialize each journal, build the ticket, and optionally filter
            Set<String> keys = jedis.keys(key(model, KeyType.journal, "*"));
         Set<String> keys = jedis.keys(key(repository, KeyType.journal, "*"));
            for (String key : keys) {
               // {repo}:journal:{id}
               String id = key.split(":")[2];
               long ticketId = Long.parseLong(id);
               List<Change> changes = getJournal(jedis, model, ticketId);
            List<Change> changes = getJournal(jedis, repository, ticketId);
               if (ArrayUtils.isEmpty(changes)) {
                  log.warn("Empty journal for {}:{}", model, ticketId);
               log.warn("Empty journal for {}:{}", repository, ticketId);
                  continue;
               }
               TicketModel ticket = TicketModel.buildTicket(changes);
               ticket.project = model.projectPath;
               ticket.repository = model.name;
            ticket.project = repository.projectPath;
            ticket.repository = repository.name;
               ticket.number = ticketId;
   
               // add the ticket, conditionally, to the list
@@ -276,6 +257,9 @@
                  }
               }
            }
         // sort the tickets by creation
         Collections.sort(list);
         } catch (JedisException e) {
            log.error("failed to retrieve tickets from Redis @ " + getUrl(), e);
            pool.returnBrokenResource(jedis);
@@ -285,9 +269,6 @@
               pool.returnResource(jedis);
            }
         }
      }
      // sort the tickets by creation
      Collections.sort(list);
      return list;
   }