private void setNext()
   {
      initial = true;
      try
      {
         if (next != null) jar.closeEntry();
         next = null;
         do
         {
            next = jar.getNextJarEntry();
         } while (next != null && (next.isDirectory() || (filter == null || !filter.accepts(next.getName()))));
         if (next == null)
         {
            close();
         }
      }
      catch (IOException e)
      {
         throw new RuntimeException("failed to browse jar", e);
      }
   }