libbluray | branch: master | hpi1 <[email protected]> | Thu Apr 30 12:28:18 2015 +0300| [2e999752e8052e0175c60dde5e4b24582179e110] | committer: hpi1
Do not catch Throwable in places where thread should be terminated on Error or ThreadDeath > http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=2e999752e8052e0175c60dde5e4b24582179e110 --- .../bdj/java/com/aacsla/bluray/online/ContentAttribute.java | 4 ++-- src/libbluray/bdj/java/java/awt/BDJHelper.java | 2 +- src/libbluray/bdj/java/java/io/BDFileSystem.java | 2 +- src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java | 4 ++-- src/libbluray/bdj/java/org/videolan/BDJActionManager.java | 2 +- src/libbluray/bdj/java/org/videolan/BDJActionQueue.java | 5 ++++- src/libbluray/bdj/java/org/videolan/BDJXletContext.java | 4 ++-- src/libbluray/bdj/java/org/videolan/Copy.java | 4 ++-- .../java/org/videolan/media/content/playlist/Handler.java | 10 +++++----- 9 files changed, 20 insertions(+), 17 deletions(-) diff --git a/src/libbluray/bdj/java/com/aacsla/bluray/online/ContentAttribute.java b/src/libbluray/bdj/java/com/aacsla/bluray/online/ContentAttribute.java index de13511..fbfa45d 100644 --- a/src/libbluray/bdj/java/com/aacsla/bluray/online/ContentAttribute.java +++ b/src/libbluray/bdj/java/com/aacsla/bluray/online/ContentAttribute.java @@ -37,14 +37,14 @@ public class ContentAttribute { if (is.read(bytes, 0, 6) != 6) return null; return bytes; - } catch (Throwable e) { + } catch (Exception e) { e.printStackTrace(); return null; } finally { if (is != null) { try { is.close(); - } catch (Throwable e) { + } catch (Exception e) { e.printStackTrace(); } } diff --git a/src/libbluray/bdj/java/java/awt/BDJHelper.java b/src/libbluray/bdj/java/java/awt/BDJHelper.java index f5a165b..6d8c4af 100644 --- a/src/libbluray/bdj/java/java/awt/BDJHelper.java +++ b/src/libbluray/bdj/java/java/awt/BDJHelper.java @@ -84,7 +84,7 @@ public class BDJHelper { eq.postEvent(event); return true; } - } catch (Throwable e) { + } catch (Exception e) { org.videolan.Logger.getLogger("BDJHelper").error("postKeyEvent failed: " + e); } } else { diff --git a/src/libbluray/bdj/java/java/io/BDFileSystem.java b/src/libbluray/bdj/java/java/io/BDFileSystem.java index 0e1c07d..64c4c9e 100644 --- a/src/libbluray/bdj/java/java/io/BDFileSystem.java +++ b/src/libbluray/bdj/java/java/io/BDFileSystem.java @@ -90,7 +90,7 @@ public abstract class BDFileSystem extends FileSystem { } else { filesystem.set(null, new BDFileSystemImpl(fs)); } - } catch (Throwable t) { + } catch (Exception t) { System.err.print("Hooking FileSystem class failed: " + t); } } diff --git a/src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java b/src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java index 00c23fe..4016876 100644 --- a/src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java +++ b/src/libbluray/bdj/java/javax/tv/service/SIManagerImpl.java @@ -53,14 +53,14 @@ public class SIManagerImpl extends SIManager { for (int i = 0; i <= ntitles; i++) { try { list.add(new TitleImpl(i)); - } catch (Throwable t) { + } catch (Exception t) { org.videolan.Logger.getLogger("SIManagerImpl").error("Failed initializing title " + i + ": " + t); } } try { list.add(new TitleImpl(65535)); - } catch (Throwable t) { + } catch (Exception t) { org.videolan.Logger.getLogger("SIManagerImpl").error("Failed initializing title FirstPlay: " + t); } diff --git a/src/libbluray/bdj/java/org/videolan/BDJActionManager.java b/src/libbluray/bdj/java/org/videolan/BDJActionManager.java index 4188f11..d8b46db 100644 --- a/src/libbluray/bdj/java/org/videolan/BDJActionManager.java +++ b/src/libbluray/bdj/java/org/videolan/BDJActionManager.java @@ -38,7 +38,7 @@ public class BDJActionManager { protected static void shutdown() { try { instance.commandQueue.shutdown(); - } catch (Throwable t) { + } catch (Exception t) { } finally { running = false; } diff --git a/src/libbluray/bdj/java/org/videolan/BDJActionQueue.java b/src/libbluray/bdj/java/org/videolan/BDJActionQueue.java index fc74543..1530c56 100644 --- a/src/libbluray/bdj/java/org/videolan/BDJActionQueue.java +++ b/src/libbluray/bdj/java/org/videolan/BDJActionQueue.java @@ -50,7 +50,7 @@ public class BDJActionQueue implements Runnable { watchdog.shutdown(); try { thread.join(); - } catch (Throwable t) { + } catch (InterruptedException t) { logger.error("Error joining thread: " + t); } } @@ -75,6 +75,9 @@ public class BDJActionQueue implements Runnable { ((BDJAction)action).process(); watchdog.endAction(); + } catch (ThreadDeath d) { + System.err.println("action failed: " + d + "\n"); + throw d; } catch (Throwable e) { System.err.println("action failed: " + e + "\n" + Logger.dumpStack(e)); } diff --git a/src/libbluray/bdj/java/org/videolan/BDJXletContext.java b/src/libbluray/bdj/java/org/videolan/BDJXletContext.java index a22fc47..ae5b3a0 100644 --- a/src/libbluray/bdj/java/org/videolan/BDJXletContext.java +++ b/src/libbluray/bdj/java/org/videolan/BDJXletContext.java @@ -287,7 +287,7 @@ public class BDJXletContext implements javax.tv.xlet.XletContext, javax.microedi try { look = defClass.newInstance(); setDefaultLook(key, look); - } catch (Throwable t) { + } catch (Exception t) { logger.error("Error creating default look " + defClass.getName() + " for " + key + ": " + t); } } @@ -357,7 +357,7 @@ public class BDJXletContext implements javax.tv.xlet.XletContext, javax.microedi } try { thread.join(); - } catch (Throwable t) { } + } catch (InterruptedException e) { } } private void stopIxcThreads() { diff --git a/src/libbluray/bdj/java/org/videolan/Copy.java b/src/libbluray/bdj/java/org/videolan/Copy.java index 353fee7..ad15c22 100644 --- a/src/libbluray/bdj/java/org/videolan/Copy.java +++ b/src/libbluray/bdj/java/org/videolan/Copy.java @@ -65,10 +65,10 @@ public class Copy { } System.err.println("deepCopy: failed to resolve class " + desc.getName()); throw e; - } catch (Throwable t) { + } catch (Exception t) { System.err.println("deepCopy: failed to resolve class " + desc.getName() + ": " + t); return null; } } } -} \ No newline at end of file +} diff --git a/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java b/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java index 7046b77..7e52949 100644 --- a/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java +++ b/src/libbluray/bdj/java/org/videolan/media/content/playlist/Handler.java @@ -129,7 +129,7 @@ public class Handler extends BDHandler { updateTime(new Time(Libbluray.tellTime() * TO_SECONDS)); currentLocator = new BDLocator(locator.toExternalForm()); - } catch (Throwable e) { + } catch (Exception e) { return new ConnectionErrorEvent(this); } return super.doPrefetch(); @@ -141,14 +141,14 @@ public class Handler extends BDHandler { if (at != null) { try { Libbluray.seekTime((long)(at.getSeconds() * FROM_SECONDS)); - } catch (Throwable e) { + } catch (Exception e) { return new ConnectionErrorEvent(this); } } try { Libbluray.selectRate(rate, true); - } catch (Throwable e) { + } catch (Exception e) { return new ConnectionErrorEvent(this); } @@ -167,7 +167,7 @@ public class Handler extends BDHandler { if ((state == Prefetched) || (state == Started)) { try { Libbluray.seekTime((long)(at.getSeconds() * FROM_SECONDS)); - } catch (Throwable e) { + } catch (Exception e) { return; } at = new Time(Libbluray.tellTime() * TO_SECONDS); @@ -181,7 +181,7 @@ public class Handler extends BDHandler { if (state == Started) { try { Libbluray.selectRate(factor.floatValue()); - } catch (Throwable e) { + } catch (Exception e) { return; } if (state == Started) { _______________________________________________ libbluray-devel mailing list [email protected] https://mailman.videolan.org/listinfo/libbluray-devel
