From c18e1dfdb92661fcb8d2eaff87517ec5232f0f46 Mon Sep 17 00:00:00 2001
From: ulrich
Date: Fri, 23 Apr 2021 17:53:30 +0000
Subject: [PATCH] Abspielprozess wird nicht mehr auf null gesetzt

---
 src/de/uhilger/avdirektor/handler/OMXPlayer.java |   32 +++++++++++++++++++++++++-------
 1 files changed, 25 insertions(+), 7 deletions(-)

diff --git a/src/de/uhilger/avdirektor/handler/OMXPlayer.java b/src/de/uhilger/avdirektor/handler/OMXPlayer.java
index d360e13..926e9c8 100644
--- a/src/de/uhilger/avdirektor/handler/OMXPlayer.java
+++ b/src/de/uhilger/avdirektor/handler/OMXPlayer.java
@@ -49,6 +49,8 @@
   
   private static final Logger logger = Logger.getLogger(OMXPlayer.class.getName());
   
+  public static final String NAME = "omxplayer";
+  
   public static final String BLANK = " ";
   public static final String CMD_DEC_SPEED = "1";
   public static final String CMD_DEC_VOL = "-";
@@ -87,7 +89,7 @@
         tilgen();        
       }
       List<String> kommando = new ArrayList();
-      kommando.add("omxplayer");
+      kommando.add(NAME);
       kommando.addAll(Arrays.asList(parameter.split(BLANK)));
       if(urlStr.startsWith("http")) {
         kommando.add(urlStr.replace(" ", "%20"));
@@ -134,11 +136,11 @@
     try {
       Process o = App.getPlayerProcess();
       if(o == null) {
-        antwort = "Es ist kein Player zum Beenden vorhanden, aber der Servlet-Kontext wurde bereinigt.";
-        App.setPlayerProcess(null);
+        antwort = "Es ist kein Player zum Beenden vorhanden.";
+        //App.setPlayerProcess(null);
       } else {
         kommando(CMD_STOP); // setzt den Prozess der App auf null
-        antwort = "Player gestoppt, Kontext bereinigt.";
+        antwort = "Player gestoppt.";
       }
     } 
     catch(Exception ex) {
@@ -161,7 +163,7 @@
       //Object o = t.getAttribute(App.PI_PLAYER);
       Process o = App.getPlayerProcess();
       if(o == null) {
-        App.setPlayerProcess(null);
+        //App.setPlayerProcess(null);
         //servletContext.removeAttribute(PI_PLAYER);
         //t.setAttribute(App.PI_PLAYER, null);
         antwort = "Es wird nichts abgespielt dem ein Kommando gesendet werden kann.";
@@ -173,7 +175,16 @@
         out.flush();
         if(k.equals(CMD_STOP)) {
           out.close();
-          App.setPlayerProcess(null);
+          
+          /*
+            fuer den Fall, dass ein Stopp-Signal den Player nicht erreicht 
+            oder dort nicht funktioniert, gibt es keine Moeglichkeit festzustellen,
+            dass der Player noch spielt. Damit in einem solchen Fall der Zeiger 
+            auf den Abspielprozess nicht verloren geht, wird  der Zeiger nicht 
+            auf null gesetzt.
+          */
+          
+          //App.setPlayerProcess(null);
           //player_process.destroy();
           //player_process = null;
           //t.setAttribute(App.PI_PLAYER, null);
@@ -200,7 +211,14 @@
       logger.log(Level.INFO, 
               "Abspielen beendet, Meldung an {0} mit Statuscode {1} gesendet.", 
               new Object[]{meldeUrlStr, status});
-      App.setPlayerProcess(null);
+          /*
+            fuer den Fall, dass ein Stopp-Signal den Player nicht erreicht 
+            oder dort nicht funktioniert, gibt es keine Moeglichkeit festzustellen,
+            dass der Player noch spielt. Damit in einem solchen Fall der Zeiger 
+            auf den Abspielprozess nicht verloren geht, wird  der Zeiger nicht 
+            auf null gesetzt.
+          */
+      //App.setPlayerProcess(null);
     } catch(IOException ex) {
       logger.log(Level.INFO, ex.getMessage(), ex);
     }

--
Gitblit v1.9.3