ICEfaces
  1. ICEfaces
  2. ICE-10356

ace:audioPlayer issues when using Glassfish 4.1 server

    Details

    • Type: Bug Bug
    • Status: Closed
    • Priority: Major Major
    • Resolution: Fixed
    • Affects Version/s: 4.0
    • Fix Version/s: 4.0
    • Component/s: ACE-Components
    • Labels:
      None
    • Environment:
      ICEfaces4 trunk r43012, Glassfish 4.1 server on amazonAWS.
      Glassfish javax.faces.jar is updated with ICEfaces mojarra javax.faces.jar
    • Assignee Priority:
      P2
    • Affects:
      Documentation (User Guide, Ref. Guide, etc.), Compatibility/Configuration

      Description

      Two issues:

      1.) Two of the QA ace:audioPlayer tests are failing when using glassfish 4.1 and all browsers. These tests can not be launched due to HTTP Status 500 Internal Sever Error. Not an issue with Tomcat 7.
      Test apps located at:
      http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Manual/audioPlayer

      > ace:audioPlayer dynamic JSF resource attribute test
      exception
      javax.servlet.ServletException: Cant instantiate class: org.icefaces.audioPlayer.ResourceBean.
      root cause
      com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: org.icefaces.audioPlayer.ResourceBean.
      root cause
      java.lang.NullPointerException

      > ace:audioPlayer dynamic byte array value test
      exception
      javax.servlet.ServletException: Cant instantiate class: org.icefaces.audioPlayer.ByteArrayBean.
      root cause
      com.sun.faces.mgbean.ManagedBeanCreationException: Cant instantiate class: org.icefaces.audioPlayer.ByteArrayBean.
      root cause
      java.lang.NullPointerException


      2.) This issue occurs only on Firefox when used with Glassfish 4.1 and is visible in the showcase ace:audioPlayer demo as well as the QA test applications. When loading a page the audioPlayer is rendered for a moment then is removed from view. The demo is not usable unless "Play in new window" is selected.
      This occurs in all tests in the QA ace:audioPlayer test suite and is accompanied by broken pipe server warning. Not an issue with Tomcat 7.
      Server warning:
      [#|2014-10-24T14:34:51.762-0400|WARNING|glassfish 4.1|javax.enterprise.web|_ThreadID=27;_ThreadName=http-listener-1(2);_TimeMillis=1414175691762;_LevelValue=900;|
        StandardWrapperValve[default]: Servlet.service() for servlet default threw exception
      java.io.IOException: java.io.IOException: Connection closed
              at org.glassfish.grizzly.http.io.OutputBuffer.blockAfterWriteIfNeeded(OutputBuffer.java:969)
              at org.glassfish.grizzly.http.io.OutputBuffer.write(OutputBuffer.java:686)
              at org.apache.catalina.connector.OutputBuffer.writeBytes(OutputBuffer.java:355)
              at org.apache.catalina.connector.OutputBuffer.write(OutputBuffer.java:342)
              at org.apache.catalina.connector.CoyoteOutputStream.write(CoyoteOutputStream.java:161)
              at org.apache.catalina.servlets.DefaultServlet.copyRange(DefaultServlet.java:2557)
              at org.apache.catalina.servlets.DefaultServlet.copy(DefaultServlet.java:2290)
              at org.apache.catalina.servlets.DefaultServlet.serveResource(DefaultServlet.java:1135)
              at org.apache.catalina.servlets.DefaultServlet.doGet(DefaultServlet.java:568)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:687)
              at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
              at org.apache.catalina.core.StandardWrapper.service(StandardWrapper.java:1682)
              at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:318)
              at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:160)
              at org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java:734)
              at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:673)
              at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:99)
              at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:174)
              at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:415)
              at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:282)
              at com.sun.enterprise.v3.services.impl.ContainerMapper$HttpHandlerCallable.call(ContainerMapper.java:459)
              at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:167)
              at org.glassfish.grizzly.http.server.HttpHandler.runService(HttpHandler.java:201)
              at org.glassfish.grizzly.http.server.HttpHandler.doHandle(HttpHandler.java:175)
              at org.glassfish.grizzly.http.server.HttpServerFilter.handleRead(HttpServerFilter.java:235)
              at org.glassfish.grizzly.filterchain.ExecutorResolver$9.execute(ExecutorResolver.java:119)
              at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeFilter(DefaultFilterChain.java:284)
              at org.glassfish.grizzly.filterchain.DefaultFilterChain.executeChainPart(DefaultFilterChain.java:201)
              at org.glassfish.grizzly.filterchain.DefaultFilterChain.execute(DefaultFilterChain.java:133)
              at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:112)
              at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
              at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
              at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
              at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
              at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.access$100(WorkerThreadIOStrategy.java:56)
              at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy$WorkerThreadRunnable.run(WorkerThreadIOStrategy.java:137)
              at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:565)
              at org.glassfish.grizzly.threadpool.AbstractThreadPool$Worker.run(AbstractThreadPool.java:545)
              at java.lang.Thread.run(Thread.java:722)
      Caused by: java.io.IOException: Connection closed
              at org.glassfish.grizzly.asyncqueue.TaskQueue.onClose(TaskQueue.java:317)
              at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.onClose(AbstractNIOAsyncQueueWriter.java:475)
              at org.glassfish.grizzly.nio.transport.TCPNIOTransport.closeConnection(TCPNIOTransport.java:400)
              at org.glassfish.grizzly.nio.NIOConnection.doClose(NIOConnection.java:593)
              at org.glassfish.grizzly.nio.NIOConnection$5.run(NIOConnection.java:559)
              at org.glassfish.grizzly.nio.DefaultSelectorHandler.execute(DefaultSelectorHandler.java:234)
              at org.glassfish.grizzly.nio.NIOConnection.terminate0(NIOConnection.java:553)
              at org.glassfish.grizzly.nio.transport.TCPNIOConnection.terminate0(TCPNIOConnection.java:292)
              at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.writeCompositeRecord(TCPNIOAsyncQueueWriter.java:169)
              at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.write0(TCPNIOAsyncQueueWriter.java:87)
              at org.glassfish.grizzly.nio.AbstractNIOAsyncQueueWriter.processAsync(AbstractNIOAsyncQueueWriter.java:333)
              at org.glassfish.grizzly.filterchain.DefaultFilterChain.process(DefaultFilterChain.java:108)
              at org.glassfish.grizzly.ProcessorExecutor.execute(ProcessorExecutor.java:77)
              at org.glassfish.grizzly.nio.transport.TCPNIOTransport.fireIOEvent(TCPNIOTransport.java:561)
              at org.glassfish.grizzly.strategies.AbstractIOStrategy.fireIOEvent(AbstractIOStrategy.java:112)
              at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.run0(WorkerThreadIOStrategy.java:117)
              at org.glassfish.grizzly.strategies.WorkerThreadIOStrategy.executeIoEvent(WorkerThreadIOStrategy.java:103)
              at org.glassfish.grizzly.strategies.AbstractIOStrategy.executeIoEvent(AbstractIOStrategy.java:89)
              at org.glassfish.grizzly.nio.SelectorRunner.iterateKeyEvents(SelectorRunner.java:414)
              at org.glassfish.grizzly.nio.SelectorRunner.iterateKeys(SelectorRunner.java:383)
              at org.glassfish.grizzly.nio.SelectorRunner.doSelect(SelectorRunner.java:347)
              at org.glassfish.grizzly.nio.SelectorRunner.run(SelectorRunner.java:278)
              ... 3 more
      Caused by: java.io.IOException: Broken pipe
              at sun.nio.ch.FileDispatcherImpl.write0(Native Method)
              at sun.nio.ch.SocketDispatcher.write(SocketDispatcher.java:47)
              at sun.nio.ch.IOUtil.writeFromNativeBuffer(IOUtil.java:89)
              at sun.nio.ch.IOUtil.write(IOUtil.java:46)
              at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:450)
              at org.glassfish.grizzly.nio.transport.TCPNIOUtils.flushByteBuffer(TCPNIOUtils.java:149)
              at org.glassfish.grizzly.nio.transport.TCPNIOAsyncQueueWriter.writeCompositeRecord(TCPNIOAsyncQueueWriter.java:158)
              ... 16 more
      |#]


      Test apps located at:
      http://dev.icesoft.com/svn/repo/qa/trunk/Regression-Icefaces4/Sparkle/Manual/audioPlayer

        Activity

        Hide
        Mircea Toma added a comment - - edited

        1) Fixed by modifying ResourceBean in audioPlayer test app to use absolute paths (as required) when looking up JAR resource streams.

        2) The mp3 mime-type entry in glassfish4/glassfish/domains/domain1/config/default-web.xml needs to be modified as follow:

          <mime-mapping>
            <extension>mp3</extension>
            <mime-type>audio/mpeg</mime-type>
          </mime-mapping>
        

        Glassfish is configured to return audio/x-mpeg mime type for *.mp3 extension, a mime-type that is not understood by Firefox.

        Show
        Mircea Toma added a comment - - edited 1) Fixed by modifying ResourceBean in audioPlayer test app to use absolute paths (as required) when looking up JAR resource streams. 2) The mp3 mime-type entry in glassfish4/glassfish/domains/domain1/config/default-web.xml needs to be modified as follow: <mime-mapping> <extension>mp3</extension> <mime-type>audio/mpeg</mime-type> </mime-mapping> Glassfish is configured to return audio/x-mpeg mime type for *.mp3 extension, a mime-type that is not understood by Firefox.
        Hide
        Liana Munroe added a comment -

        Verified ICEfaces 4 trunk r43118. Glassfish 4.1, Tomcat 7. IE 11, FF 33, Chrome 38.

        Show
        Liana Munroe added a comment - Verified ICEfaces 4 trunk r43118. Glassfish 4.1, Tomcat 7. IE 11, FF 33, Chrome 38.

          People

          • Assignee:
            Mircea Toma
            Reporter:
            Liana Munroe
          • Votes:
            0 Vote for this issue
            Watchers:
            2 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved: