BUISSON Christian
2014-04-15 3380373c3123f875f50e48b0290c84dfae0519e4
src/main/java/com/gitblit/tickets/FileTicketService.java
@@ -207,8 +207,27 @@
   @Override
   public List<TicketModel> getTickets(RepositoryModel repository, TicketFilter filter) {
      List<TicketModel> list = new ArrayList<TicketModel>();
      List<Repository> databases = new ArrayList<Repository>();
      List<RepositoryModel> models = new ArrayList<RepositoryModel>();
      Repository db = repositoryManager.getRepository(repository.name);
      if(repository == null)
      {
         List<String> allRepo = repositoryManager.getRepositoryList();
         for(int i = 0; i < allRepo.size(); i++)
         {
            databases.add(repositoryManager.getRepository(allRepo.get(i)));
            models.add(repositoryManager.getRepositoryModel(allRepo.get(i)));
         }
      }
      else
      {
         databases.add(repositoryManager.getRepository(repository.name));
         models.add(repository);
      }
      for(int i = 0; i < databases.size(); i++)
      {
         Repository db = databases.get(i);
      try {
         // Collect the set of all json files
         File dir = new File(db.getDirectory(), TICKETS_PATH);
@@ -234,12 +253,12 @@
               long ticketId = Long.parseLong(tid);
               List<Change> changes = TicketSerializer.deserializeJournal(json);
               if (ArrayUtils.isEmpty(changes)) {
                  log.warn("Empty journal for {}:{}", repository, journal);
                     log.warn("Empty journal for {}:{}", models.get(i), journal);
                  continue;
               }
               TicketModel ticket = TicketModel.buildTicket(changes);
               ticket.project = repository.projectPath;
               ticket.repository = repository.name;
                  ticket.project = models.get(i).projectPath;
                  ticket.repository = models.get(i).name;
               ticket.number = ticketId;
               // add the ticket, conditionally, to the list
@@ -252,17 +271,18 @@
               }
            } catch (Exception e) {
               log.error("failed to deserialize {}/{}\n{}",
                     new Object [] { repository, journal, e.getMessage()});
                        new Object [] { models.get(i), journal, e.getMessage()});
               log.error(null, e);
               }
            }
         } finally {
            db.close();
            }
         }
         // sort the tickets by creation
         Collections.sort(list);
         return list;
      } finally {
         db.close();
      }
   }
   private List<File> findAll(File dir, String filename) {