/** * @param ex * @return the root cause or if not root cause exists, the exception itself. */ public static Throwable getRootCause(Throwable ex) { if (ex.getCause() != null) return getRootCause(ex.getCause()); return ex; }
void excecute(final String sql) { checkAccess(); log.info("Executing groovy: " + sql); try { Map<String, Object> context = new HashMap<>(); StringWriter sout = new StringWriter(); PrintWriter pout = new PrintWriter(sout); context.put("out", pout); GroovyShell shell = new GroovyShell(Thread.currentThread().getContextClassLoader()); for (Map.Entry<String, Object> me : context.entrySet()) { shell.setVariable(me.getKey(), me.getValue()); } shell.evaluate(sql); pout.flush(); sout.flush(); form.setResultString(HtmlHelper.escapeHtml(sout.getBuffer().toString(), true)); } catch (final Exception ex) { log.info("Groovy statement produced an error: " + ex.getMessage()); form.setResultString(HtmlHelper.escapeHtml(ExceptionHelper.printStackTrace(ex), true)); } }
showFeedback = true; if (throwable != null) { rootCause = ExceptionHelper.getRootCause(throwable); if (rootCause instanceof ProjectForgeException) { errorMessage = getExceptionMessage(this, (ProjectForgeException) rootCause, true); form.data.setMessageNumber(messageNumber); form.data.setMessage(throwable != null ? throwable.getMessage() : ""); form.data.setStackTrace(throwable != null ? ExceptionHelper.printStackTrace(throwable) : ""); form.data.setSender(ThreadLocalUserContext.getUser().getFullname()); final String subject = "ProjectForge-Error #" + form.data.getMessageNumber() + " from " + form.data.getSender(); if (rootCause != null) { form.data.setRootCause(rootCause.getMessage()); form.data.setRootCauseStackTrace(ExceptionHelper.printStackTrace(rootCause));
final UserException ex = (UserException) exception; if (doLog == true) { log.info(ex.toString() + ExceptionHelper.getFilteredStackTrace(ex, ONLY4NAMESPACE)); final InternalErrorException ex = (InternalErrorException) exception; if (doLog == true) { log.info(ex.toString() + ExceptionHelper.getFilteredStackTrace(ex, ONLY4NAMESPACE)); final AccessException ex = (AccessException) exception; if (doLog == true) { log.info(ex.toString() + ExceptionHelper.getFilteredStackTrace(ex, ONLY4NAMESPACE));
final Throwable rootCause = ExceptionHelper.getRootCause(ex);
form.setResultString(HtmlHelper.escapeHtml(ExceptionHelper.printStackTrace(ex), true));
void excecuteLucene(boolean lucene, Class<?> entityClass, final String sql, String fieldList) { checkAccess(); log.info("Executing Lucene: " + sql); try { String resultString; if (lucene == true) { resultString = luceneService.searchSimple(entityClass, sql, fieldList); } else { resultString = luceneService.searchViaHibernateSearch(entityClass, sql, fieldList); } form.setResultString(resultString); } catch (final Exception ex) { log.info("Lucene statement produced an error: " + ex.getMessage()); form.setResultString(HtmlHelper.escapeHtml(ExceptionHelper.printStackTrace(ex), true)); } }