private boolean loadContext(String zipPostfix, String entryName) {
   try {
     JBZipFile archive = getTasksArchive(zipPostfix);
     JBZipEntry entry = archive.getEntry(entryName.startsWith("/") ? entryName : "/" + entryName);
     if (entry != null) {
       byte[] bytes = entry.getData();
       Document document = JDOMUtil.loadDocument(new String(bytes));
       Element rootElement = document.getRootElement();
       loadContext(rootElement);
       archive.close();
       return true;
     }
   } catch (Exception e) {
     LOG.error(e);
   }
   return false;
 }
 private void saveContext(
     @Nullable String entryName, String zipPostfix, @Nullable String comment) {
   try {
     JBZipFile archive = getTasksArchive(zipPostfix);
     if (entryName == null) {
       int i = archive.getEntries().size();
       do {
         entryName = "context" + i++;
       } while (archive.getEntry("/" + entryName) != null);
     }
     JBZipEntry entry = archive.getOrCreateEntry("/" + entryName);
     if (comment != null) {
       entry.setComment(comment);
     }
     Element element = new Element("context");
     saveContext(element);
     String s = new XMLOutputter().outputString(element);
     entry.setData(s.getBytes());
     archive.close();
   } catch (IOException e) {
     LOG.error(e);
   }
 }
 public int compare(JBZipEntry o1, JBZipEntry o2) {
   return (int) (o2.getTime() - o1.getTime());
 }