Skip to content
This repository has been archived by the owner on May 7, 2020. It is now read-only.

[Core] Handle audio exceptions more gracefully #5253

Merged
merged 1 commit into from Mar 19, 2018
Merged

[Core] Handle audio exceptions more gracefully #5253

merged 1 commit into from Mar 19, 2018

Conversation

cweitkamp
Copy link
Contributor

@cweitkamp cweitkamp commented Mar 19, 2018

  • Restore volume only if it was set before
  • Handle exceptions more gracefully
  • Minor improvements in documentation

An IOException from getVolume() or setVolume() methods leads to a stack trace log. The warning itself should be sufficient for the user.

2018-03-18 10:00:44.326 [WARN ] [core.audio.internal.AudioManagerImpl] - An exception occurred while setting the volume of sink webaudio : 'Web Audio sink does not support volume level changes.'
java.io.IOException: Web Audio sink does not support volume level changes.
	at org.eclipse.smarthome.io.webaudio.internal.SSEAudioSink.setVolume(SSEAudioSink.java:115) ~[?:?]
	at org.eclipse.smarthome.core.audio.internal.AudioManagerImpl.setVolume(AudioManagerImpl.java:180) ~[?:?]
	at org.eclipse.smarthome.core.audio.internal.AudioManagerImpl.play(AudioManagerImpl.java:115) ~[?:?]
	at org.eclipse.smarthome.core.audio.internal.AudioManagerImpl.playFile(AudioManagerImpl.java:144) ~[?:?]
	at org.eclipse.smarthome.core.audio.internal.AudioManagerImpl.playFile(AudioManagerImpl.java:124) ~[?:?]
	at org.eclipse.smarthome.model.script.actions.Audio.playSound(Audio.java:40) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:?]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1085) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeOperation(XbaseInterpreter.java:1060) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._invokeFeature(XbaseInterpreter.java:1046) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.invokeFeature(XbaseInterpreter.java:991) ~[?:?]
	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.invokeFeature(ScriptInterpreter.java:143) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:901) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:864) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:223) ~[?:?]
	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter._doEvaluate(XbaseInterpreter.java:446) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.doEvaluate(XbaseInterpreter.java:227) ~[?:?]
	at org.eclipse.smarthome.model.script.interpreter.ScriptInterpreter.doEvaluate(ScriptInterpreter.java:219) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.internalEvaluate(XbaseInterpreter.java:203) ~[?:?]
	at org.eclipse.xtext.xbase.interpreter.impl.XbaseInterpreter.evaluate(XbaseInterpreter.java:189) ~[?:?]
	at org.eclipse.smarthome.model.script.runtime.internal.engine.ScriptImpl.execute(ScriptImpl.java:82) ~[?:?]
	at org.eclipse.smarthome.model.rule.runtime.internal.engine.RuleEngineImpl.lambda$2(RuleEngineImpl.java:339) ~[?:?]
	at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:?]
	at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180) [?:?]
	at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293) [?:?]
	at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) [?:?]
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) [?:?]
	at java.lang.Thread.run(Thread.java:748) [?:?]

See https://community.openhab.org/t/web-audio-sink-does-not-support-volume-level-changes/41989

Signed-off-by: Christoph Weitkamp github@christophweitkamp.de

Restore volume only if it was set before

Signed-off-by: Christoph Weitkamp <github@christophweitkamp.de>
@maggu2810 maggu2810 merged commit 64f507f into eclipse-archived:master Mar 19, 2018
@cweitkamp cweitkamp deleted the bugfix-4963 branch March 19, 2018 15:35
@kaikreuzer kaikreuzer changed the title [audio] Handle exceptions more gracefully [Core] Handle audio exceptions more gracefully May 20, 2018
@htreu htreu added this to the 0.10.0 milestone Oct 30, 2018
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants