]> git.basschouten.com Git - openhab-addons.git/commitdiff
[googlestt] Dispose oAuth2 service (#14936)
authorlolodomo <lg.hc@free.fr>
Fri, 5 May 2023 19:49:54 +0000 (21:49 +0200)
committerGitHub <noreply@github.com>
Fri, 5 May 2023 19:49:54 +0000 (21:49 +0200)
* [googlestt] Dispose oAuth2 service

Related to #14818

Signed-off-by: Laurent Garnier <lg.hc@free.fr>
bundles/org.openhab.voice.googlestt/src/main/java/org/openhab/voice/googlestt/internal/GoogleSTTService.java

index 7254e68df4eb1c2d976583f97b6632b0a702c95d..120460921c9efa83465e1b0327ef34d055b328ed 100644 (file)
@@ -48,6 +48,7 @@ import org.osgi.framework.Constants;
 import org.osgi.service.cm.ConfigurationAdmin;
 import org.osgi.service.component.annotations.Activate;
 import org.osgi.service.component.annotations.Component;
+import org.osgi.service.component.annotations.Deactivate;
 import org.osgi.service.component.annotations.Modified;
 import org.osgi.service.component.annotations.Reference;
 import org.slf4j.Logger;
@@ -117,6 +118,14 @@ public class GoogleSTTService implements STTService {
         updateConfig();
     }
 
+    @Deactivate
+    protected void dispose() {
+        if (oAuthService != null) {
+            oAuthFactory.ungetOAuthService(SERVICE_PID);
+            oAuthService = null;
+        }
+    }
+
     @Override
     public String getId() {
         return SERVICE_ID;
@@ -157,6 +166,10 @@ public class GoogleSTTService implements STTService {
     }
 
     private void updateConfig() {
+        if (oAuthService != null) {
+            oAuthFactory.ungetOAuthService(SERVICE_PID);
+            oAuthService = null;
+        }
         String clientId = this.config.clientId;
         String clientSecret = this.config.clientSecret;
         if (!clientId.isBlank() && !clientSecret.isBlank()) {