public static void logException(Throwable e, final String title, String message) { if (e instanceof InvocationTargetException) { e = ((InvocationTargetException) e).getTargetException(); } IStatus status = null; if (e instanceof CoreException) status = ((CoreException) e).getStatus(); else { if (message == null) message = e.getMessage(); if (message == null) message = e.toString(); status = new Status(IStatus.ERROR, getPluginId(), IStatus.OK, message, e); } ResourcesPlugin.getPlugin().getLog().log(status); Display display = SWTUtil.getStandardDisplay(); final IStatus fstatus = status; display.asyncExec( new Runnable() { public void run() { ErrorDialog.openError(null, title, null, fstatus); } }); }