libbluray | branch: master | hpi1 <[email protected]> | Thu Dec 19 10:57:54 
2013 +0200| [33fadfde0c481c88fd1575ee3ee0e31ffc86e993] | committer: hpi1

org.dvb.event.EventManager: catch exceptions when calling 
ResourceClient.requestRelease()

> http://git.videolan.org/gitweb.cgi/libbluray.git/?a=commit;h=33fadfde0c481c88fd1575ee3ee0e31ffc86e993
---

 .../bdj/java/org/dvb/event/EventManager.java       |   20 +++++++++++++++++---
 1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/src/libbluray/bdj/java/org/dvb/event/EventManager.java 
b/src/libbluray/bdj/java/org/dvb/event/EventManager.java
index f5d8fcc..36fde6f 100644
--- a/src/libbluray/bdj/java/org/dvb/event/EventManager.java
+++ b/src/libbluray/bdj/java/org/dvb/event/EventManager.java
@@ -189,8 +189,14 @@ public class EventManager implements ResourceServer {
                 if (item.context == context)
                     continue;
                 if (hasOverlap(userEvents, item.userEvents)) {
-                    if (!item.client.requestRelease(item.userEvents, null))
+                    try {
+                        if (!item.client.requestRelease(item.userEvents, null))
+                            return false;
+                    } catch (Exception e) {
+                        logger.error("requestRelease() failed: " + 
e.getClass());
+                        logger.info("" + e.getStackTrace());
                         return false;
+                    }
                     sendResourceStatusEvent(new 
UserEventAvailableEvent(item.userEvents));
                     it.remove();
                 }
@@ -200,8 +206,14 @@ public class EventManager implements ResourceServer {
             if (item.context == context)
                 continue;
             if (hasOverlap(userEvents, item.userEvents)) {
-                if (!item.client.requestRelease(item.userEvents, null))
+                try {
+                    if (!item.client.requestRelease(item.userEvents, null))
+                        return false;
+                } catch (Exception e) {
+                    logger.error("requestRelease() failed: " + e.getClass());
+                    logger.info("" + e.getStackTrace());
                     return false;
+                }
                 sendResourceStatusEvent(new 
UserEventAvailableEvent(item.userEvents));
                 it.remove();
             }
@@ -231,7 +243,7 @@ public class EventManager implements ResourceServer {
             this.client = client;
             this.userEvents = userEvents.getNewInstance();
             if (context == null) {
-                Logger.getLogger(EventManager.class.getName()).error("Missing 
xlet context: " + Logger.dumpStack());
+                logger.error("Missing xlet context: " + Logger.dumpStack());
             }
         }
 
@@ -261,4 +273,6 @@ public class EventManager implements ResourceServer {
     private LinkedList resourceStatusEventListeners = new LinkedList();
 
     private static EventManager instance = null;
+
+    private static final Logger logger = 
Logger.getLogger(EventManager.class.getName());
 }

_______________________________________________
libbluray-devel mailing list
[email protected]
https://mailman.videolan.org/listinfo/libbluray-devel

Reply via email to