* slightly improved exception handling

This commit is contained in:
Reinhard Pointner 2009-02-10 21:51:02 +00:00
parent dac55956f6
commit c3939dcb98
10 changed files with 37 additions and 11 deletions

View File

@ -184,7 +184,7 @@ public abstract class AbstractSearchPanel<S, E> extends FileBotPanel {
} catch (Exception e) {
tab.close();
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCause(e).getMessage(), e);
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCauseMessage(e), e);
}
}
@ -240,7 +240,7 @@ public abstract class AbstractSearchPanel<S, E> extends FileBotPanel {
} catch (Exception e) {
tab.close();
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCause(e).getMessage(), e);
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCauseMessage(e), e);
} finally {
tab.setLoading(false);
}

View File

@ -14,6 +14,7 @@ import javax.swing.Icon;
import javax.swing.SwingUtilities;
import net.sourceforge.filebot.ResourceManager;
import net.sourceforge.tuned.ExceptionUtilities;
import net.sourceforge.tuned.ui.notification.MessageNotification;
import net.sourceforge.tuned.ui.notification.NotificationManager;
import net.sourceforge.tuned.ui.notification.QueueNotificationLayout;
@ -61,7 +62,7 @@ public class NotificationLoggingHandler extends Handler {
if (message == null || message.isEmpty()) {
// if message is empty, display exception string
message = record.getThrown().toString();
return ExceptionUtilities.getMessage(record.getThrown());
}
return message;

View File

@ -18,6 +18,7 @@ import java.util.Iterator;
import java.util.LinkedHashSet;
import java.util.List;
import java.util.Set;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.AbstractAction;
@ -31,6 +32,7 @@ import javax.swing.tree.TreePath;
import javax.swing.tree.TreeSelectionModel;
import net.sourceforge.filebot.ResourceManager;
import net.sourceforge.tuned.ExceptionUtilities;
import net.sourceforge.tuned.FilterIterator;
import net.sourceforge.tuned.TreeIterator;
@ -158,7 +160,7 @@ public class FileTree extends JTree {
Desktop.getDesktop().open(file);
}
} catch (Exception e) {
Logger.getLogger("ui").warning(e.getMessage());
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCauseMessage(e), e);
}
}
}

View File

@ -4,6 +4,7 @@ package net.sourceforge.filebot.ui.panel.analyze;
import java.io.File;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import net.sourceforge.filebot.ui.panel.analyze.FileTree.AbstractTreeNode;
@ -50,7 +51,7 @@ class FileTreeTransferablePolicy extends BackgroundFileTransferablePolicy<Abstra
@Override
protected void process(Exception e) {
Logger.getLogger("ui").warning(ExceptionUtilities.getRootCause(e).getMessage());
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCauseMessage(e), e);
}

View File

@ -90,11 +90,13 @@ abstract class Tool<M> extends JComponent {
try {
setModel(get());
} catch (Exception e) {
if (ExceptionUtilities.getRootCause(e) instanceof ConcurrentModificationException) {
Throwable cause = ExceptionUtilities.getRootCause(e);
if (cause instanceof ConcurrentModificationException || cause instanceof InterruptedException) {
// if it happens, it is supposed to
} else {
// should not happen
Logger.getLogger("global").log(Level.WARNING, e.toString(), e);
Logger.getLogger("global").log(Level.WARNING, e.getMessage(), e);
}
}
}

View File

@ -13,6 +13,7 @@ import javax.swing.AbstractAction;
import net.sourceforge.filebot.ResourceManager;
import net.sourceforge.filebot.similarity.Match;
import net.sourceforge.tuned.ExceptionUtilities;
import net.sourceforge.tuned.FileUtilities;
@ -68,7 +69,7 @@ class RenameAction extends AbstractAction {
Logger.getLogger("ui").info(String.format("%d files renamed.", renameCount));
} catch (IOException e) {
// rename failed
Logger.getLogger("ui").warning(e.getMessage());
Logger.getLogger("ui").warning(ExceptionUtilities.getRootCauseMessage(e));
boolean revertFailed = false;

View File

@ -10,6 +10,7 @@ import java.awt.event.ActionEvent;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.swing.AbstractAction;
@ -214,7 +215,7 @@ public class RenamePanel extends FileBotPanel {
model.names().addAll(names);
model.files().addAll(files);
} catch (Exception e) {
Logger.getLogger("ui").warning(ExceptionUtilities.getRootCause(e).getMessage());
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCauseMessage(e), e);
}
}
};

View File

@ -13,6 +13,8 @@ import javax.swing.border.EmptyBorder;
import javax.swing.table.DefaultTableCellRenderer;
import javax.swing.table.TableCellRenderer;
import net.sourceforge.tuned.ExceptionUtilities;
class ChecksumTableCellRenderer extends DefaultTableCellRenderer {
@ -34,7 +36,7 @@ class ChecksumTableCellRenderer extends DefaultTableCellRenderer {
setText("Pending ...");
break;
case ERROR:
setText(checksum.getError().getMessage());
setText(ExceptionUtilities.getMessage(checksum.getError()));
break;
default:
return progressBarRenderer.getTableCellRendererComponent(table, value, isSelected, hasFocus, row, column);

View File

@ -55,7 +55,7 @@ class SfvTransferablePolicy extends BackgroundFileTransferablePolicy<ChecksumCel
@Override
protected void process(Exception e) {
Logger.getLogger("ui").warning(ExceptionUtilities.getRootCause(e).getMessage());
Logger.getLogger("ui").log(Level.WARNING, ExceptionUtilities.getRootCauseMessage(e), e);
}

View File

@ -13,6 +13,22 @@ public final class ExceptionUtilities {
}
public static String getRootCauseMessage(Throwable t) {
return getMessage(getRootCause(t));
}
public static String getMessage(Throwable t) {
String message = t.getMessage();
if (message == null || message.isEmpty()) {
return t.toString();
}
return message;
}
public static RuntimeException asRuntimeException(Throwable t) {
if (t instanceof RuntimeException) {
return (RuntimeException) t;