[libbluray-devel] BDJLoader: do not re-use AppProxy and XletContext when xlet is restarted.

hpi1 git at videolan.org
Thu Jan 16 20:37:54 CET 2014


libbluray | branch: master | hpi1 <hpi1 at anonymous.org> | Wed Jan 15 10:40:35 2014 +0200| [fc3ec607e22f66f2cd46a305e820b052676b924c] | committer: hpi1

BDJLoader: do not re-use AppProxy and XletContext when xlet is restarted.
Fixes issues with unregistered callbacks, Ixc bindings etc.

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

 src/libbluray/bdj/java/org/videolan/BDJLoader.java |   16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/libbluray/bdj/java/org/videolan/BDJLoader.java b/src/libbluray/bdj/java/org/videolan/BDJLoader.java
index cb50ac9..0b71b7a 100644
--- a/src/libbluray/bdj/java/org/videolan/BDJLoader.java
+++ b/src/libbluray/bdj/java/org/videolan/BDJLoader.java
@@ -126,16 +126,22 @@ public class BDJLoader {
                 for (int i = 0; i < appTable.length; i++) {
                     if (id.equals(appTable[i].getIdentifier()) &&
                         entry.getInitialClass().equals(appTable[i].getInitialClass())) {
-                        if (restart && appTable[i].getIsServiceBound())
+                        if (restart && appTable[i].getIsServiceBound()) {
+                            logger.info("Stopping xlet " + appTable[i].getInitialClass() + " (for restart)");
                             proxy.stop(true);
-                        proxy.getXletContext().update(appTable[i], bdjo.getAppCaches());
-                        proxys[i] = proxy;
-                        proxy = null;
+                        } else {
+                            logger.info("Keeping xlet " + appTable[i].getInitialClass());
+                            proxy.getXletContext().update(appTable[i], bdjo.getAppCaches());
+                            proxys[i] = proxy;
+                            proxy = null;
+                        }
                         break;
                     }
                 }
-                if (proxy != null)
+                if (proxy != null) {
+                    logger.info("Terminating xlet " + entry.getInitialClass());
                     proxy.release();
+                }
             }
 
             // start bdj window



More information about the libbluray-devel mailing list