Audio annunciator unable to use audio files which have a space in their path
Maintainers usually reply within 1 day
Assessment
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Newbie friendliness
- 35/100
- Issue type
- Bug
- Clarity
- Mostly clear
- Activity status
- Stale
- Tech stack
- java
- Domain
- audio-video-rtc
Research direction
Start in AudioAnnunciator.java at createMediaPlayer, which the stack trace identifies as the point where JavaFX Media receives the file URL. Read the related issues #3142 and #3058 for context, then check how a path containing spaces is handled. Done when the annunciator can create a MediaPlayer for the reported path; linked pull request #3993 is already open.
Written by the indexing model from the issue text.
Description
OS: windows
Stack trace:
SEVERE [org.phoebus.applications.alarm.audio.annunciator.AudioAnnunciator] Failed to create MediaPlayer for URL: file:/C:/Users/kdt41815/Documents/Audacity/some test/alarm-undefined.wav
java.lang.IllegalArgumentException: java.net.URISyntaxException: Illegal character in path at index 47: file:/C:/Users/kdt41815/Documents/Audacity/some test/alarm-undefined.wav
at javafx.scene.media.Media.<init>(Media.java:384)
at org.phoebus.applications.alarm.audio.annunciator.AudioAnnunciator.createMediaPlayer(AudioAnnunciator.java:62)
at org.phoebus.applications.alarm.audio.annunciator.AudioAnnunciator.<init>(AudioAnnunciator.java:43)
at java.base/jdk.internal.reflect.DirectConstructorHandleAccessor.newInstance(DirectConstructorHandleAccessor.java:62)
at java.base/java.lang.reflect.Constructor.newInstanceWithCaller(Constructor.java:502)
at java.base/java.lang.reflect.Constructor.newInstance(Constructor.java:486)
at java.base/java.util.ServiceLoader$ProviderImpl.newInstance(ServiceLoader.java:707)
at java.base/java.util.ServiceLoader$ProviderImpl.get(ServiceLoader.java:672)
at java.base/java.util.stream.ReferencePipeline$3$1.accept(ReferencePipeline.java:214)
at java.base/java.util.ServiceLoader$ProviderSpliterator.tryAdvance(ServiceLoader.java:1352)
at java.base/java.util.Spliterator.forEachRemaining(Spliterator.java:332)
at java.base/java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:570)
at java.base/java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:560)
at java.base/java.util.stream.ReduceOps$ReduceOp.evaluateSequential(ReduceOps.java:921)
at java.base/java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:265)
at java.base/java.util.stream.ReferencePipeline.collect(ReferencePipeline.java:723)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorController.<init>(AnnunciatorController.java:68)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorTable.<init>(AnnunciatorTable.java:245)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorTableInstance.create(AnnunciatorTableInstance.java:80)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorTableInstance.<init>(AnnunciatorTableInstance.java:49)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorTableApplication.create(AnnunciatorTableApplication.java:69)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorTableApplication.create(AnnunciatorTableApplication.java:61)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorTableApplication.create(AnnunciatorTableApplication.java:31)
at org.phoebus.framework.workbench.ApplicationService.createInstance(ApplicationService.java:152)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorTableMenuEntry.call(AnnunciatorTableMenuEntry.java:26)
at org.phoebus.applications.alarm.ui.annunciator.AnnunciatorTableMenuEntry.call(AnnunciatorTableMenuEntry.java:20)
at org.phoebus.ui.application.PhoebusApplication.lambda$createMenuItem$0(PhoebusApplication.java:867)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:86)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:49)
at javafx.event.Event.fireEvent(Event.java:199)
at javafx.scene.control.MenuItem.fire(MenuItem.java:459)
at com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.doSelect(ContextMenuContent.java:1426)
at com.sun.javafx.scene.control.ContextMenuContent$MenuItemContainer.lambda$createChildren$6(ContextMenuContent.java:1379)
at com.sun.javafx.event.CompositeEventHandler$NormalEventHandlerRecord.handleBubblingEvent(CompositeEventHandler.java:247)
at com.sun.javafx.event.CompositeEventHandler.dispatchBubblingEvent(CompositeEventHandler.java:80)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:232)
at com.sun.javafx.event.EventHandlerManager.dispatchBubblingEvent(EventHandlerManager.java:189)
at com.sun.javafx.event.CompositeEventDispatcher.dispatchBubblingEvent(CompositeEventDispatcher.java:59)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:58)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.BasicEventDispatcher.dispatchEvent(BasicEventDispatcher.java:56)
at com.sun.javafx.event.EventDispatchChainImpl.dispatchEvent(EventDispatchChainImpl.java:114)
at com.sun.javafx.event.EventUtil.fireEventImpl(EventUtil.java:74)
at com.sun.javafx.event.EventUtil.fireEvent(EventUtil.java:54)
at javafx.event.Event.fireEvent(Event.java:199)
at javafx.scene.Scene$MouseHandler.process(Scene.java:4061)
at javafx.scene.Scene.processMouseEvent(Scene.java:1947)
at javafx.scene.Scene$ScenePeerListener.mouseEvent(Scene.java:2784)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:353)
at com.sun.javafx.tk.quantum.GlassViewEventHandler$MouseEventNotification.get(GlassViewEventHandler.java:255)
at com.sun.javafx.tk.quantum.QuantumToolkit.runWithoutRenderLock(QuantumToolkit.java:424)
at com.sun.javafx.tk.quantum.GlassViewEventHandler.handleMouseEvent(GlassViewEventHandler.java:387)
at com.sun.glass.ui.View.handleMouseEvent(View.java:573)
at com.sun.glass.ui.View.notifyMouse(View.java:975)
at com.sun.glass.ui.win.WinApplication._runLoop(Native Method)
at com.sun.glass.ui.win.WinApplication.lambda$runLoop$0(WinApplication.java:173)
at java.base/java.lang.Thread.run(Thread.java:1527)
Caused by: java.net.URISyntaxException: Illegal character in path at index 47: file:/C:/Users/kdt41815/Documents/Audacity/some test/alarm-undefined.wav
at java.base/java.net.URI$Parser.fail(URI.java:3008)
at java.base/java.net.URI$Parser.checkChars(URI.java:3179)
at java.base/java.net.URI$Parser.parseHierarchical(URI.java:3261)
at java.base/java.net.URI$Parser.parse(URI.java:3209)
at java.base/java.net.URI.<init>(URI.java:651)
at javafx.scene.media.Media.<init>(Media.java:382)
... 65 more
related: https://github.com/ControlSystemStudio/phoebus/issues/3142
also related: https://github.com/ControlSystemStudio/phoebus/issues/3058
- Dominant language
- Java
- Stars
- 130
- Forks
- 132
- Avg merge
- 2d 11h
- Merged PRs (30d)
- 23
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- No contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from ControlSystemStudio/phoebus
-
Difficulty 2/5 1-3 hours Newbie friendliness 62/100
ControlSystemStudio/phoebus#3983 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
ControlSystemStudio/phoebus#3979 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
ControlSystemStudio/phoebus#3962 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 65/100
ControlSystemStudio/phoebus#3865 · 1 comment ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 52/100
ControlSystemStudio/phoebus#3980 ·
Maintainers usually reply within 1 day
All issues in ControlSystemStudio/phoebus
Similar issues
-
Good First Issue
Difficulty 1/5 Under an hour Newbie friendliness 75/100
hiero-ledger/hiero-sdk-java#3025 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 80/100
-
DogFooding
Difficulty 1/5 Under an hour Newbie friendliness 88/100
OpenAEV-Platform/openaev#8768 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
federicoiosue/Omni-Notes#1039 ·
-
type: bug
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
micronaut-projects/micronaut-core#14179 ·
Maintainers usually reply within 1 day