Page 1 of 1

Podcasts - java.lang.NullPointerException

Posted: 20 Jan 2016, 10:35
by frooop
Hello,
when i try to listen to a downloaded podcast (adding and downloading seems to work fine), I get these logentries. I can't play any of my podcasts.

Code: Select all

[20.01.16 10:30]	WARN	PodcastService	Failed to resolve media file ID for podcast channel 'ARD Radio Tatort': java.lang.NullPointerException
[20.01.16 10:30]	WARN	PodcastService	Failed to resolve media file ID for podcast channel 'Chaosradio': java.lang.NullPointerException
[20.01.16 10:30]	WARN	PodcastService	Failed to resolve media file ID for podcast channel 'Methodisch inkorrekt': java.lang.NullPointerException
[20.01.16 10:30]	WARN	PodcastService	Failed to resolve media file ID for podcast channel 'Welcome to Night Vale': java.lang.NullPointerException
My music plays fine.

Whats wrong here? How can I help to solve the problem?

Re: Podcasts - java.lang.NullPointerException

Posted: 21 Jan 2016, 21:48
by boco
I have this exact same issue.

Boco

Re: Podcasts - java.lang.NullPointerException

Posted: 05 Feb 2016, 10:30
by frooop
This problem still exists in version MADSONIC 6.0.7960.c288541.20160122.0103

I still get the NullPointerExeption and when I click "download" on one of the already downloaded podcast files, I get this error page:

Code: Select all

HTTP ERROR 400

Problem accessing /madsonic/download.view. Reason:

    Bad Request
Powered by Jetty://

Re: Podcasts - java.lang.NullPointerException

Posted: 05 Feb 2016, 13:42
by frooop
Here is the compete stacktrace of one of those errors. Maybe that helps.

Code: Select all

[2016-02-05 13:39:25,851] WARN PodcastService - Failed to resolve media file ID for podcast channel 'Welcome to Night Vale': java.lang.NullPointerException
java.lang.NullPointerException
	at org.madsonic.service.MediaFileService.createMediaFile(MediaFileService.java:918)
	at org.madsonic.service.MediaFileService.getMediaFile(MediaFileService.java:140)
	at org.madsonic.service.MediaFileService.getMediaFile(MediaFileService.java:106)
	at org.madsonic.service.PodcastService.addMediaFileIdToChannels(PodcastService.java:284)
	at org.madsonic.service.PodcastService.getAllChannels(PodcastService.java:196)
	at org.madsonic.controller.PodcastReceiverController.handleRequestInternal(PodcastReceiverController.java:60)
	at org.springframework.web.servlet.mvc.AbstractController.handleRequest(AbstractController.java:153)
	at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:48)
	at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:933)
	at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:867)
	at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:951)
	at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:842)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:735)
	at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:827)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
	at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:684)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1496)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
	at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
	at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:106)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
	at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
	at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
	at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
	at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:343)
	at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:260)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
	at org.madsonic.filter.ResponseHeaderFilter.doFilter(ResponseHeaderFilter.java:47)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
	at org.madsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:43)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
	at org.madsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:54)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1484)
	at org.madsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:58)
	at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1476)
	at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:501)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
	at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:557)
	at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
	at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1086)
	at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:429)
	at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
	at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1020)
	at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:135)
	at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:116)
	at org.eclipse.jetty.server.Server.handle(Server.java:370)
	at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:494)
	at org.eclipse.jetty.server.AbstractHttpConnection.headerComplete(AbstractHttpConnection.java:971)
	at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.headerComplete(AbstractHttpConnection.java:1033)
	at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:640)
	at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:231)
	at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:696)
	at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:53)
	at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:608)
	at org.eclipse.jetty.util.thread.QueuedThreadPool$3.run(QueuedThreadPool.java:543)
	at java.lang.Thread.run(Thread.java:745)

Re: Podcasts - java.lang.NullPointerException

Posted: 05 May 2016, 12:40
by FoxBJK
I found the fix for this issue - you have to add your Podcasts directory as a media source, then everything works just fine. It doesn't have to be in any kind of group, it just needs to be listed as a source.

Re: Podcasts - java.lang.NullPointerException

Posted: 06 Sep 2016, 22:11
by jsgates
Thank You, Thank you, Thank You! Thanks for posting the solution to this. I have been working on trying to get my Podcasts working again for over year and since a 5.x build of Madsonic. I had tried all kinds of permissions related fixes on my Linux server folders etc. It does makes sense now though. When you specify a different download location for Podcasts, I guess Madsonic needs to have it listed as a media folder as you said. I guess you don't have to do this for the default Podcast download folder location since Madsonic/Subsonic will look there by default, and therefore that default path isn't listed in the media folders. I am wondering if this affects Subsonic as well as Madsonic. If it's not in Subsonic, but is in Madsonic, then there probably just needs to be a note added to the Podcast Settings page stating that you need to add the path to your Media folders (or the Podcasts directory should be shown by default in the media folders). Thanks again! I thought I was crazy!