private synchronized static Factory getFactory() {
    if (ourFactory == null) {
      try {
        ourFactory = new IdeaFactory();
      }
      catch (Throwable t) {
        try {
          ourFactory = new Slf4JFactory();
        }
        catch (Throwable t2) {
          ourFactory = new JavaFactory();
        }
      }
    }
    return ourFactory;
  }
private synchronized static Factory getFactory()