示例#1
0
 public synchronized void run() {
   try {
     sleep(50);
     CacheController.clearCache(Class.forName(entity), new Object[] {entityId}, true);
     CacheController.clearCaches(entity, entityId, null, true);
   } catch (Exception e) {
     logger.error("An error occurred in the PublicationThread:" + e.getMessage());
   }
 }
示例#2
0
  public int doEndTag() throws JspException {
    try {
      CacheController.clearCache(Class.forName(entity), new Object[] {entityId}, true);
      CacheController.clearCaches(entity, entityId, null, true);
      // CacheController.clearCaches(null, null, null, true);

      // CacheUpdateThread cacheUpdateThread = new CacheUpdateThread();
      // cacheUpdateThread.start();
    } catch (Exception e) {
      e.printStackTrace();
    }

    return EVAL_PAGE;
  }
  public static void restoreSessionFactory(Throwable we) {
    try {
      logger.error("Restoring session factory...");

      String serverName = "Unknown";
      try {
        InetAddress localhost = InetAddress.getLocalHost();
        serverName = localhost.getHostName();
      } catch (Exception e) {
      }

      String errorMessage = "";
      String stacktrace = "";
      StringWriter sw = new StringWriter();
      if (we != null) {
        errorMessage = we.getMessage();
        we.printStackTrace(new PrintWriter(sw));
        stacktrace = sw.toString().replaceAll("(\r\n|\r|\n|\n\r)", "<br/>");
      }

      String subject = "CMS - Restoring session factory on " + serverName;
      String message =
          "OS Workflow had problems accessing the database or some other problem occurred. Check why the database went away or the error occurred.";
      message = message + "\n\n" + errorMessage + "\n\n" + stacktrace;

      String warningEmailReceiver = CmsPropertyHandler.getWarningEmailReceiver();
      if (warningEmailReceiver != null
          && !warningEmailReceiver.equals("")
          && warningEmailReceiver.indexOf("@warningEmailReceiver@") == -1) {
        try {
          MailServiceFactory.getService()
              .sendEmail(
                  "text/html",
                  warningEmailReceiver,
                  warningEmailReceiver,
                  null,
                  null,
                  null,
                  null,
                  subject,
                  message,
                  "utf-8");
        } catch (Exception e) {
          logger.error("Could not send mail:" + e.getMessage(), e);
        }
      }
      try {
        logger.info("Closing:" + hibernateSessionFactory);
        hibernateSessionFactory.close();
        CacheController.clearCache("propertySetCache");
      } catch (Exception e) {
        logger.error(
            "An error occurred when we tried to close the hibernate session factory:"
                + e.getMessage());
      }
      hibernateSessionFactory = new Configuration().configure().buildSessionFactory();
      logger.info("Opened:" + hibernateSessionFactory);
    } catch (Exception e) {
      logger.error(
          "An error occurred when we tried to restore the hibernate session factory:"
              + e.getMessage(),
          e);
    }
  }