[announcement] MusicCabinet 0.7.12 released

Artist radio, genre radio & related artists. A Subsonic server for music nerds.

Moderator: moderators

[announcement] MusicCabinet 0.7.12 released

Postby hakko » Sun Oct 14, 2012 11:06 am

Main features: a lot of "under the hood" components updated. Added composer in web interface, top tracks for mobile clients, and links to full compilation albums from the artist view. See viewtopic.php?f=4&t=9777&p=47322#p47322 for details.

This thread is for discussing the release, to keep the announcement thread clean.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: [announcement] MusicCabinet 0.7.12 released

Postby jake- » Sun Oct 14, 2012 8:03 pm

hakko wrote:Main features: a lot of "under the hood" components updated. Added composer in web interface, top tracks for mobile clients, and links to full compilation albums from the artist view. See viewtopic.php?f=4&t=9777&p=47322#p47322 for details.

This thread is for discussing the release, to keep the announcement thread clean.


Throws exception when saving tags:

java.lang.NullPointerException
at net.sourceforge.subsonic.controller.TagSettingsController.doSubmitAction(TagSettingsController.java:43)
at org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:449)
at org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:415)
at org.springframework.web.servlet.mvc.SimpleFormController.onSubmit(SimpleFormController.java:387)
at org.springframework.web.servlet.mvc.SimpleFormController.processFormSubmission(SimpleFormController.java:272)
at org.springframework.web.servlet.mvc.AbstractFormController.handleRequestInternal(AbstractFormController.java:268)
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:900)
at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:827)
at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:882)
at org.springframework.web.servlet.FrameworkServlet.doPost(FrameworkServlet.java:789)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
at org.eclipse.jetty.servlet.ServletHolder.handle(ServletHolder.java:648)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1336)
at org.eclipse.jetty.servlets.UserAgentFilter.doFilter(UserAgentFilter.java:82)
at org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:242)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:146)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at net.sourceforge.subsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:43)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at net.sourceforge.subsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:54)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at net.sourceforge.subsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:54)
at org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1307)
at org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:453)
at org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:137)
at org.eclipse.jetty.security.SecurityHandler.handle(SecurityHandler.java:559)
at org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:231)
at org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1072)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:382)
at org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:193)
at org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1006)
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:365)
at org.eclipse.jetty.server.AbstractHttpConnection.handleRequest(AbstractHttpConnection.java:485)
at org.eclipse.jetty.server.AbstractHttpConnection.content(AbstractHttpConnection.java:937)
at org.eclipse.jetty.server.AbstractHttpConnection$RequestHandler.content(AbstractHttpConnection.java:998)
at org.eclipse.jetty.http.HttpParser.parseNext(HttpParser.java:856)
at org.eclipse.jetty.http.HttpParser.parseAvailable(HttpParser.java:240)
at org.eclipse.jetty.server.AsyncHttpConnection.handle(AsyncHttpConnection.java:82)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint.handle(SelectChannelEndPoint.java:627)
at org.eclipse.jetty.io.nio.SelectChannelEndPoint$1.run(SelectChannelEndPoint.java:51)
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:722)
jake-
 
Posts: 40
Joined: Sat Oct 16, 2010 8:09 pm

Re: [announcement] MusicCabinet 0.7.12 released

Postby hakko » Sun Oct 14, 2012 8:19 pm

: (

Could you help me out again so that I can reproduce it?

From pgAdmin/psql, do something like:

Code: Select all
copy music.tag to '/tmp/music-tag.csv' delimiter ',' csv header;
copy library.toptag to '/tmp/library-toptag.csv' delimiter ',' csv header;


Send me the two resulting .csv files (dropbox or PM) and I'll try and figure why it works on my side but not on yours.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: [announcement] MusicCabinet 0.7.12 released

Postby vshaulsk » Mon Oct 15, 2012 1:37 am

I can no longer play music using the webplayer. When I click on a son or genre ..... nothing is loaded in the webplayer. When I look at the log is says trackID=null

Any ideas ?
vshaulsk
 
Posts: 3
Joined: Thu Sep 20, 2012 11:10 am

Re: [announcement] MusicCabinet 0.7.12 released

Postby hakko » Mon Oct 15, 2012 6:30 am

Could it be that you switched from using the Flash player to using the HTML5 player, but you're trying to play a type of file that is not supported in your browser?

For example, Firefox doesn't seem to play MP3 because of licensing issues, see http://stackoverflow.com/questions/4923 ... t-in-audio
When I was testing MP3 files with the HTML player, I noticed I couldn't play them using Firefox or Safari, but Google Chrome worked. HTML5 is still early. For me at least, everything works as before when I'm using the Flash player.

If you right-click the player box, is it Flash or HTML5?
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: [announcement] MusicCabinet 0.7.12 released

Postby hakko » Mon Oct 15, 2012 7:20 pm

I made some minor changes in 0.7.12 (released as 0.7.12b):

  • a bug with certain composer names that stopped the playlist view from working
  • make artist names in playlist view and search view a link to artist page
  • fix jake-'s NullPointer (full fix not done)

Easiest way to upgrade: download http://dilerium.se/musiccabinet/subsonic.war and replace your current subsonic.war.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: [announcement] MusicCabinet 0.7.12 released

Postby GJ51 » Tue Oct 16, 2012 2:00 pm

0.7.11 ran fine.

Installation of the latest WAR, 0.7.12b, fails on my system:

HTTP Status 500 -

type Exception report

message

description The server encountered an internal error () that prevented it from fulfilling this request.

exception

java.lang.IllegalStateException: !(Jetty || Servlet 3.0 || ContinuationFilter)
org.eclipse.jetty.continuation.ContinuationSupport.getContinuation(ContinuationSupport.java:149)
org.eclipse.jetty.servlets.GzipFilter.doFilter(GzipFilter.java:247)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:311)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:116)
org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:83)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:101)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.authentication.rememberme.RememberMeAuthenticationFilter.doFilter(RememberMeAuthenticationFilter.java:139)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:54)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.authentication.www.BasicAuthenticationFilter.doFilter(BasicAuthenticationFilter.java:150)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:182)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:105)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:323)
org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:173)
org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:346)
org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:259)
net.sourceforge.subsonic.filter.RequestEncodingFilter.doFilter(RequestEncodingFilter.java:43)
net.sourceforge.subsonic.filter.ParameterDecodingFilter.doFilter(ParameterDecodingFilter.java:54)
net.sourceforge.subsonic.filter.BootstrapVerificationFilter.doFilter(BootstrapVerificationFilter.java:73)
note The full stack trace of the root cause is available in the Apache Tomcat/6.0.35 logs.
Gary J

http://bios-mods.com
http://www.maplegrovepartners.com
http://theaverageguy.tv/category/tagpodcasts/cyberfrontiers/
User avatar
GJ51
 
Posts: 3492
Joined: Wed Oct 20, 2010 11:58 pm
Location: Western New York

Re: [announcement] MusicCabinet 0.7.12 released

Postby hakko » Tue Oct 16, 2012 2:11 pm

Interesting! Are you running Tomcat 6?

One thing I did in 0.7.12 (part of the "experimental" stuff) was to start gzipping certain parts of the interface, to minimize bandwidth for i.e the artist frame and make it load faster on slow connections. I haven't decided if I'll keep that or not, I need to make some more tests.

From the error message, it looks like you're running a Tomcat version previous of 7 which started supporting the Servlet 3.0 standard.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: [announcement] MusicCabinet 0.7.12 released

Postby GJ51 » Tue Oct 16, 2012 2:37 pm

Yes I'm on Tomcat 6.0.35 - should I upgrade to a newer version of Tomcat?

Subsonic as I understand it in the standard release still doesn't support any newer version. Do you know if SS 4.7 has been upgraded to support newer Tomcat versions?
Last edited by GJ51 on Tue Oct 16, 2012 2:43 pm, edited 1 time in total.
Gary J

http://bios-mods.com
http://www.maplegrovepartners.com
http://theaverageguy.tv/category/tagpodcasts/cyberfrontiers/
User avatar
GJ51
 
Posts: 3492
Joined: Wed Oct 20, 2010 11:58 pm
Location: Western New York

Re: [announcement] MusicCabinet 0.7.12 released

Postby hakko » Tue Oct 16, 2012 2:43 pm

If it's not a big deal, it would be interesting. Then I'd know for sure that Tomcat 7 is a requirement for those who don't want it to run on Jetty.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: [announcement] MusicCabinet 0.7.12 released

Postby GJ51 » Tue Oct 16, 2012 2:46 pm

If I try ver 7 do you know if I can "upgrade" over the ver 6 install or will I need to do a clean install? Will I have to copy/save the server and web xml files and then restore to preseve the port and SSL settings?
Gary J

http://bios-mods.com
http://www.maplegrovepartners.com
http://theaverageguy.tv/category/tagpodcasts/cyberfrontiers/
User avatar
GJ51
 
Posts: 3492
Joined: Wed Oct 20, 2010 11:58 pm
Location: Western New York

Re: [announcement] MusicCabinet 0.7.12 released

Postby hakko » Tue Oct 16, 2012 2:57 pm

I need to quote the official Apache site on that (http://tomcat.apache.org/migration.html):

When migrating from one major Tomcat version to another (e.g. from Tomcat 6 to Tomcat 7), you should not blindly copy the configuration files from the old version. The recommended approach is to start with the default configuration of the new version of Apache Tomcat and to adjust it as necessary.

I feel like I'm forcing everyone to upgrade their systems (latest Postgres, latest Java, latest Tomcat) but that's simply because I use this project for my own learning purposes. By not being forced to support old clients, I am much more free to choose modern solutions to problems I encounter, which in turn makes the project more fun to work with.
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: [announcement] MusicCabinet 0.7.12 released

Postby GJ51 » Tue Oct 16, 2012 3:06 pm

I don't have any problem with that, other than it caught me a bit by surprise as standard Subsonic is known not to work with Tomcat 7 and your previous releases were fine on Tomcat 6. Not being aware that this would be an issue, I overwrote the WAR file to the latest version and I see no way to drop back to 0.7.11 no longer having a copy of that version. Certainly my fault for not making a backup before attempting the upgrade, but I had no idea that this was going to be an issue.

I have no problem doing the move to Tomcat 7, but it is now going to take a bit more effort and time to do this upgrade than I had anticipated. A simple "heads up" would have been greatly appreciated.
Gary J

http://bios-mods.com
http://www.maplegrovepartners.com
http://theaverageguy.tv/category/tagpodcasts/cyberfrontiers/
User avatar
GJ51
 
Posts: 3492
Joined: Wed Oct 20, 2010 11:58 pm
Location: Western New York

Re: [announcement] MusicCabinet 0.7.12 released

Postby hakko » Tue Oct 16, 2012 4:11 pm

Sorry about the unpleasant surprise. I wrote this as the first release note: "This release contains a couple of "under the hood" changes that might affect your installation. Please report on the forum if you encounter any issues. It's safe to go back to 0.7.11 after trying, by using the two previous subsonic.war and .jar files". Honestly, I didn't foresee the Tomcat 6/7 issue, I've only tested Jetty on different platforms/different browsers.

But since I knew this update does contain a lot of updates (like the Jetty 6 to 8 upgrade!) I made sure to only include backward-compatible changes in it. I also made back-ups of previous versions, so you can get 0.7.11 back from http://dilerium.se/musiccabinet/subsonic-0.7.11.war, and use that to get a working installation back on Tomcat 6 (hopefully).
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Re: [announcement] MusicCabinet 0.7.12 released

Postby hakko » Tue Oct 16, 2012 4:31 pm

I quickly tried settings up Tomcat 7 with MusicCabinet 0.7.12, and it fails because Jetty has already precompiled all JSPs with Glassfish V2. However, the precompilation is something I actually do want to keep, as it makes it faster to load all pages in Subsonic the first time they are visited. It also reduces the risk of failed JSPs (which we've seen happening on the forums).

I think I'll simply have to build a separate release for Tomcat (subsonic-tomcat.war) as part of my releases. Until I've written that routine, stick to http://dilerium.se/musiccabinet/subsonic-0.7.11.war

Thanks for your input!
MusicCabinet developer
hakko
 
Posts: 1416
Joined: Tue Apr 17, 2012 7:05 pm
Location: Sweden

Next

Return to MusicCabinet

Who is online

Users browsing this forum: No registered users and 2 guests