Page 1 of 1

Error downloading playlist as podcast

PostPosted: Wed Oct 07, 2015 12:17 am
by cmdavisson
I am running SS 5.2.1 (build 4428) – March 4, 2015
on Ubuntu Server Edition 14.04

I'm getting an error when trying to download tracks on a playlist as a podcast on a mobile device. I've tried with downcast app on iphone, and podcast addict app on android, and seem to get the same result. As far as I can tell, any playlist I create causes this same problem, when I try to download as a podcast episode.

I first set up playlists and consumed them as podcasts over the weekend, and it worked flawlessly. Now, today, I am getting an error downloading.

For example, in downcast, when I try to explicitly load the podcast url, http://myserverip:4040/stream?playlist=0&suffix=.mp3
I get the following:

Error
Subsonic encountered an internal error. You can report this error in the Subsonic Forum. Please include the information below.
Exception java.lang.NullPointerException
Message null
Java version Oracle Corporation 1.7.0_79
Operating system Linux 3.19.0-30-generic
Server jetty-6.1.x
Memory Used 50 of 140 MB
Stack trace java.lang.NullPointerException at net.sourceforge.subsonic.controller.StreamController.handleRequest(StreamController.java:90) at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48) at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:875) at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:807) at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:571) at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:501) at javax.servlet.http.HttpServlet.service(HttpServlet.java:707) at javax.servlet.http.HttpServlet.service(HttpServlet.java:820) at org.mortbay.jetty.servlet.ServletHolder.handle(ServletHolder.java:487) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1093) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:265) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:107) at org.acegisecurity.intercept.web.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:72) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:166) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.providers.anonymous.AnonymousProcessingFilter.doFilter(AnonymousProcessingFilter.java:125) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.rememberme.RememberMeProcessingFilter.doFilter(RememberMeProcessingFilter.java:135) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.wrapper.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:81) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.basicauth.BasicProcessingFilter.doFilter(BasicProcessingFilter.java:173) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.AbstractProcessingFilter.doFilter(AbstractProcessingFilter.java:271) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.ui.logout.LogoutFilter.doFilter(LogoutFilter.java:110) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.context.HttpSessionContextIntegrationFilter.doFilter(HttpSessionContextIntegrationFilter.java:249) at org.acegisecurity.util.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:275) at org.acegisecurity.util.FilterChainProxy.doFilter(FilterChainProxy.java:149) at org.acegisecurity.util.FilterToBeanProxy.doFilter(FilterToBeanProxy.java:98) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at net.sourceforge.subsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:43) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at net.sourceforge.subsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:54) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at net.sourceforge.subsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:54) at org.mortbay.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1084) at org.mortbay.jetty.servlet.ServletHandler.handle(ServletHandler.java:360) at org.mortbay.jetty.security.SecurityHandler.handle(SecurityHandler.java:216) at org.mortbay.jetty.servlet.SessionHandler.handle(SessionHandler.java:181) at org.mortbay.jetty.handler.ContextHandler.handle(ContextHandler.java:712) at org.mortbay.jetty.webapp.WebAppContext.handle(WebAppContext.java:405) at org.mortbay.jetty.handler.HandlerWrapper.handle(HandlerWrapper.java:139) at org.mortbay.jetty.Server.handle(Server.java:313) at org.mortbay.jetty.HttpConnection.handleRequest(HttpConnection.java:506) at org.mortbay.jetty.HttpConnection$RequestHandler.headerComplete(HttpConnection.java:830) at org.mortbay.jetty.HttpParser.parseNext(HttpParser.java:514) at org.mortbay.jetty.HttpParser.parseAvailable(HttpParser.java:211) at org.mortbay.jetty.HttpConnection.handle(HttpConnection.java:381) at org.mortbay.io.nio.SelectChannelEndPoint.run(SelectChannelEndPoint.java:396) at org.mortbay.thread.BoundedThreadPool$PoolThread.run(BoundedThreadPool.java:442)

This is a feature that I'd very much like to be able to use. If I can provide any further information, please let me know.

If anyone can help, I'd appreciate it.

Thank you,

CMD

Re: Error downloading playlist as podcast

PostPosted: Wed Oct 07, 2015 10:18 pm
by cmdavisson
UPDATE:

It turns out that the failure to download tracks as podcasts, due to a Null Pointer Exception, is only happening from outside of my local network.

When I am on my home WIFI, along with my SS server, then the podcast catcher seems to download the files without problems. However, from work, neither my iOS nor Android devices can load a URL of the form http://mypublicipaddress:4040/stream?pl ... suffix=mp3. I get the NPE whether I try to load the URL from a podcatcher, or from a browser on the device, directly.

I have SS premium and use the subsonic.org redirector service. But, I am also able to access the SS server via the actual public IP:port. I can use the standard web client, as well as iSub, dSub, and pretty much everything else I've tried.

I only seem to have access problems when calling the 'stream' function via URL, from outside my firewall...

I hope this additional info might help someone show me how to solve the problem.

Thank you,

CMD

Re: Error downloading playlist as podcast

PostPosted: Tue Oct 13, 2015 11:28 pm
by cmdavisson
Another update... Maybe someone who has done development work on Subsonic can tell me what's going on.

I've determined that the download of playlist tracks as a podcast only works (that is, does not throw the null pointer exception in the stream command) if I am on my local network with the SS server, and I point the podcatcher at the local (192.168...) address for the server.

If I try to access through my firewall via port forwarding, it fails, with the null pointer exception.

I have port 4040 being redirected to the SS server, and I can play music from outside my network through mobile apps, and can load the HTTP interface, with no problems.

This only seems to be effecting the stream command used in the playlist/podcast functionality.

Any help is much appreciated.

Thanks,

CMD