You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@wicket.apache.org by Benjamin Chew <bc...@smarthealth.com> on 2019/08/22 20:04:57 UTC

Streaming a PDF into an iFrame

Hi,

I'm pretty new to Wicket, and am trying to figure out how to stream a PDF
into an iFrame. I've searched for a solution and come across Ernesto's
DocumentInlineFrame class here:

https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java

Since IResourceListener is no longer a part of Wicket 8, I've modified the
class in these ways:
1) The class implements IRequestListener
2) Return urlForListener(null) in getURL()
3) Renamed onResourceRequested() to onRequest()

But I'm getting an error:
ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error occurred
java.lang.IllegalStateException: Committed

The code and full stack trace are below. Any ideas on what I'm doing wrong?

Thanks,
Ben

/*** CODE ***/
public class DocumentInlineFrame extends WebMarkupContainer implements
*IRequestListener* {
    private static final long serialVersionUID = 1 L;

    private IResource documentResource;

    /**
     * Constructor receiving an IResourceStream..
     *
     * @param id
     * @param stream
     */
    public DocumentInlineFrame(String id, IResourceStream stream) {
        this(id, new ResourceStreamResource(stream));
    }

    /**
     * Constructor receiving an IResource..
     *
     * @param id
     * @param resourceListener
     */
    public DocumentInlineFrame(final String id, IResource documentResource)
{
        super(id);
        this.documentResource = documentResource;
    }

    /**
     * Gets the url to use for this link.
     *
     * @return The URL that this link links to
     */
    protected CharSequence getURL() {
        //return urlForListener(new PageParameters());
        *return urlForListener(null);*
    }

    /**
     * Handles this frame's tag.
     *
     * @param tag the component tag
     * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
     */
    @Override
    protected void onComponentTag(final ComponentTag tag) {
        checkComponentTag(tag, "iframe");

        // Set href to link to this frame's frameRequested method
        CharSequence url = getURL();

        // generate the src attribute
        tag.put("src", Strings.replaceAll(url, "&", "&amp;"));

        super.onComponentTag(tag);
    }

    @Override
    protected boolean getStatelessHint() {
        return false;
    }

    @Override
    public void onRequest() {


*RequestCycle requestCycle = RequestCycle.get();        Attributes
attributes = new Attributes(requestCycle.getRequest(),
requestCycle.getResponse(), null);
this.documentResource.respond(attributes);*
    }
}
/*** END CODE ***/

/*** STACK TRACE ***/
Aug 22 12:37:54 WARN  RequestCycleExtra  - ********************************
Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
Unexpected error occurred
java.lang.IllegalStateException: Committed
at org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
at
org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
at
org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
at
org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
at
org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
at
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
at
org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
at
org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:503)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:745)
Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
Exception retry count exceeded
java.lang.IllegalStateException: STREAM
at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
at
org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
at
org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
at
org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
at
org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
at
org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
at
org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
at
org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:503)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:745)
/*** END STACK TRACE ***/

Re: Streaming a PDF into an iFrame

Posted by Benjamin Chew <bc...@smarthealth.com>.
Thanks Martin, I will look into that.

Ben


On Wed, Aug 28, 2019 at 11:01 PM Martin Grigorov <mg...@apache.org>
wrote:

> Hi,
>
> Check the response headers of PDF.
> If chunked transfer encoding is used then maybe you can fix it by providing
> explicitly the Content-Lenght in your Wicket code.
>
> On Thu, Aug 29, 2019 at 12:05 AM Benjamin Chew <bc...@smarthealth.com>
> wrote:
>
> > Yes, they are the full PDFs that I'm expecting.
> >
> > Ben
> >
> >
> > On Wed, Aug 28, 2019 at 12:34 PM Lon Varscsak <lo...@gmail.com>
> > wrote:
> >
> > > If it's closing the connection on the PDF pre-maturely, are you getting
> > the
> > > FULL PDF downloaded?
> > >
> > > -Lon
> > >
> > > On Wed, Aug 28, 2019 at 10:14 AM Benjamin Chew <bc...@smarthealth.com>
> > > wrote:
> > >
> > > > Hi Sven,
> > > >
> > > > Hmm... so this seems to be a problem only on specific browsers.
> > > >
> > > > I'm seeing this on:
> > > > - Google Chrome Version 76.0.3809.100 (OS X Mojave & Win 7)
> > > > - Safari Version 12.1.2 (OS X Mojave)
> > > > - IE 11 Version 11.0.135 (Win 7)
> > > >
> > > > And not seeing this on:
> > > > - Firefox Quantum 68.0.2 (OS X Mojave)
> > > > - Firefox Quantum 68.0.1 (Win 7)
> > > >
> > > > Knowing this, I'm going to move on from this issue (for now), but
> > thanks
> > > > for all your help!
> > > >
> > > > Ben
> > > >
> > > >
> > > > On Wed, Aug 28, 2019 at 9:32 AM Sven Meier <sv...@meiers.net> wrote:
> > > >
> > > > > Hi Ben,
> > > > >
> > > > > which browser?
> > > > >
> > > > > We had long time problems with IE stopping requests an
> re-requesting
> > > > > resources without reason.
> > > > >
> > > > > Sven
> > > > >
> > > > > Am 28. August 2019 16:18:23 MESZ schrieb Benjamin Chew <
> > > > > bchew@smarthealth.com>:
> > > > > >Thanks, Sven.
> > > > > >
> > > > > >The weird thing is that this is happening during my testing, and
> I’m
> > > > > >not navigating away from the page at all...
> > > > > >
> > > > > >Ben
> > > > > >
> > > > > >> On Aug 27, 2019, at 11:34 AM, Sven Meier <sv...@meiers.net>
> wrote:
> > > > > >>
> > > > > >> Hi Benjamin,
> > > > > >>
> > > > > >> this just means that the browser closed the connection before
> the
> > > pdf
> > > > > >was fully loaded from the server, e.g. if the user switches to a
> > > > > >different page before the iframe has finished loading.
> > > > > >>
> > > > > >> Nothing you need/can do about it.
> > > > > >>
> > > > > >> Have fun
> > > > > >> Sven
> > > > > >>
> > > > > >>
> > > > > >>> On 27.08.19 02:13, Benjamin Chew wrote:
> > > > > >>> I said thanks too soon. ;)
> > > > > >>>
> > > > > >>> Now I'm seeing this warning intermittently:
> > > > > >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> > > > > >>> org.eclipse.jetty.io.EofException
> > > > > >>> Caused by: org.eclipse.jetty.io.EofException
> > > > > >>> Caused by: java.io.IOException: Broken pipe
> > > > > >>>
> > > > > >>> Is there anything in the DocumentInlineFrame class or the way
> I'm
> > > > > >using it
> > > > > >>> that would cause this problem?
> > > > > >>>
> > > > > >>> Thanks,
> > > > > >>> Ben
> > > > > >>>
> > > > > >>> /*** Calling Class ***/
> > > > > >>> queue(new DocumentInlineFrame("ticketsIFrame", new
> > > > > >ResourceStreamResource()
> > > > > >>> {
> > > > > >>>    @Override
> > > > > >>>    protected IResourceStream getResourceStream(Attributes
> > > > > >attributes) {
> > > > > >>>        return
> > > > > >>>
> pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
> > > > > >>>    }
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >}.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));
> > > > > >>>
> > > > > >>>
> > > > > >>>
> > > > > >>> /*** DocumentInlineFrame Class ***/
> > > > > >>> public class DocumentInlineFrame extends WebMarkupContainer
> > > > > >implements
> > > > > >>> IRequestListener {
> > > > > >>>     private static final long serialVersionUID = 1 L;
> > > > > >>>     private IResource documentResource;
> > > > > >>>
> > > > > >>>     /**
> > > > > >>>      * Constructor receiving an IResourceStream..
> > > > > >>>      *
> > > > > >>>      * @param id
> > > > > >>>      * @param stream
> > > > > >>>      */
> > > > > >>>     public DocumentInlineFrame(String id, IResourceStream
> > stream) {
> > > > > >>>         this(id, new ResourceStreamResource(stream));
> > > > > >>>     }
> > > > > >>>
> > > > > >>>     /**
> > > > > >>>      * Constructor receiving an IResource..
> > > > > >>>      *
> > > > > >>>      * @param id
> > > > > >>>      * @param resourceListener
> > > > > >>>      */
> > > > > >>>     public DocumentInlineFrame(final String id, IResource
> > > > > >documentResource)
> > > > > >>> {
> > > > > >>>         super(id);
> > > > > >>>         this.documentResource = documentResource;
> > > > > >>>     }
> > > > > >>>
> > > > > >>>     /**
> > > > > >>>      * Gets the url to use for this link.
> > > > > >>>      *
> > > > > >>>      * @return The URL that this link links to
> > > > > >>>      */
> > > > > >>>     protected CharSequence getURL() {
> > > > > >>>         return urlForListener(null);
> > > > > >>>     }
> > > > > >>>
> > > > > >>>     /**
> > > > > >>>      * Handles this frame's tag.
> > > > > >>>      *
> > > > > >>>      * @param tag the component tag
> > > > > >>>      * @see
> > > org.apache.wicket.Component#onComponentTag(ComponentTag)
> > > > > >>>      */
> > > > > >>>     @Override
> > > > > >>>     protected void onComponentTag(final ComponentTag tag) {
> > > > > >>>         checkComponentTag(tag, "iframe");
> > > > > >>>
> > > > > >>>         // Set href to link to this frame's frameRequested
> method
> > > > > >>>         CharSequence url = getURL();
> > > > > >>>
> > > > > >>>         // Generate the src attribute
> > > > > >>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> > > > > >>>
> > > > > >>>         super.onComponentTag(tag);
> > > > > >>>     }
> > > > > >>>
> > > > > >>>     @Override
> > > > > >>>     protected boolean getStatelessHint() {
> > > > > >>>         return false;
> > > > > >>>     }
> > > > > >>>
> > > > > >>>     @Override
> > > > > >>>     public boolean rendersPage() {
> > > > > >>>         return false;
> > > > > >>>     }
> > > > > >>>
> > > > > >>>     @Override
> > > > > >>>     public void onRequest() {
> > > > > >>>         RequestCycle requestCycle = RequestCycle.get();
> > > > > >>>         Attributes attributes = new
> > > > > >Attributes(requestCycle.getRequest(),
> > > > > >>> requestCycle.getResponse(), null);
> > > > > >>>
> > > > > >>>         this.documentResource.respond(attributes);
> > > > > >>>     }
> > > > > >>> }
> > > > > >>>
> > > > > >>>
> > > > > >>>
> > > > > >>> /*** Full Stacktrace ***/
> > > > > >>> Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the
> following
> > > > > >exception
> > > > > >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> > > > > >>> org.eclipse.jetty.io.EofException
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
> > > > > >>> at
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > > > >>> at
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > > >>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > > > >>> at
> > > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > > > >>> at
> > > > > >>>
> > > > > >org.eclipse.jetty.io
> > > > >
> > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > > > >>> at org.eclipse.jetty.io
> > > .FillInterest.fillable(FillInterest.java:103)
> > > > > >>> at
> > > > > >org.eclipse.jetty.io
> > .ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > > > >>> at java.lang.Thread.run(Thread.java:745)
> > > > > >>> Caused by: org.eclipse.jetty.io.EofException
> > > > > >>> at
> > > > > >org.eclipse.jetty.io
> > .ChannelEndPoint.flush(ChannelEndPoint.java:286)
> > > > > >>> at org.eclipse.jetty.io
> > .WriteFlusher.flush(WriteFlusher.java:393)
> > > > > >>> at org.eclipse.jetty.io
> > .WriteFlusher.write(WriteFlusher.java:277)
> > > > > >>> at
> > > > > >org.eclipse.jetty.io
> > > .AbstractEndPoint.write(AbstractEndPoint.java:380)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> > > > > >>> at
> > > > >
> > >org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
> > > > > >>> at
> > > > >
> > >
> >org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
> > > > > >>> at
> > org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
> > > > > >>> at
> org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
> > > > > >>> at
> org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
> > > > > >>> at
> org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
> > > > > >>> at java.io.OutputStream.write(OutputStream.java:75)
> > > > > >>> at
> > > > > >>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
> > > > > >>> ... 48 more
> > > > > >>> Caused by: java.io.IOException: Broken pipe
> > > > > >>> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
> > > > > >>> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
> > > > > >>> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
> > > > > >>> at
> sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
> > > > > >>> at
> > > > > >org.eclipse.jetty.io
> > .ChannelEndPoint.flush(ChannelEndPoint.java:266)
> > > > > >>> ... 67 more
> > > > > >>>
> > > > > >>>
> > > > > >>>> On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew
> > > > > ><bc...@smarthealth.com> wrote:
> > > > > >>>>
> > > > > >>>> Thanks, Sven.
> > > > > >>>>
> > > > > >>>> And thanks Ernesto for writing that example in the first
> place!
> > > > > >>>>
> > > > > >>>> Ben
> > > > > >>>>
> > > > > >>>>
> > > > > >>>> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
> > > > > >>>> reiern70@gmail.com> wrote:
> > > > > >>>>
> > > > > >>>>> Hi,
> > > > > >>>>>
> > > > > >>>>> Thanks for reporting this. I will fix the example and adapt
> it
> > to
> > > > > >wicket
> > > > > >>>>> 8.x.
> > > > > >>>>>
> > > > > >>>>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew
> > > > > ><bc...@smarthealth.com>
> > > > > >>>>> wrote:
> > > > > >>>>>
> > > > > >>>>>> Hi,
> > > > > >>>>>>
> > > > > >>>>>> I'm pretty new to Wicket, and am trying to figure out how to
> > > > > >stream a
> > > > > >>>>> PDF
> > > > > >>>>>> into an iFrame. I've searched for a solution and come across
> > > > > >Ernesto's
> > > > > >>>>>> DocumentInlineFrame class here:
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > > >
> > > > >
> > > >
> > >
> >
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
> > > > > >>>>>> Since IResourceListener is no longer a part of Wicket 8,
> I've
> > > > > >modified
> > > > > >>>>> the
> > > > > >>>>>> class in these ways:
> > > > > >>>>>> 1) The class implements IRequestListener
> > > > > >>>>>> 2) Return urlForListener(null) in getURL()
> > > > > >>>>>> 3) Renamed onResourceRequested() to onRequest()
> > > > > >>>>>>
> > > > > >>>>>> But I'm getting an error:
> > > > > >>>>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected
> > > > > >error
> > > > > >>>>> occurred
> > > > > >>>>>> java.lang.IllegalStateException: Committed
> > > > > >>>>>>
> > > > > >>>>>> The code and full stack trace are below. Any ideas on what
> I'm
> > > > > >doing
> > > > > >>>>> wrong?
> > > > > >>>>>> Thanks,
> > > > > >>>>>> Ben
> > > > > >>>>>>
> > > > > >>>>>> /*** CODE ***/
> > > > > >>>>>> public class DocumentInlineFrame extends WebMarkupContainer
> > > > > >implements
> > > > > >>>>>> *IRequestListener* {
> > > > > >>>>>>     private static final long serialVersionUID = 1 L;
> > > > > >>>>>>
> > > > > >>>>>>     private IResource documentResource;
> > > > > >>>>>>
> > > > > >>>>>>     /**
> > > > > >>>>>>      * Constructor receiving an IResourceStream..
> > > > > >>>>>>      *
> > > > > >>>>>>      * @param id
> > > > > >>>>>>      * @param stream
> > > > > >>>>>>      */
> > > > > >>>>>>     public DocumentInlineFrame(String id, IResourceStream
> > > stream)
> > > > > >{
> > > > > >>>>>>         this(id, new ResourceStreamResource(stream));
> > > > > >>>>>>     }
> > > > > >>>>>>
> > > > > >>>>>>     /**
> > > > > >>>>>>      * Constructor receiving an IResource..
> > > > > >>>>>>      *
> > > > > >>>>>>      * @param id
> > > > > >>>>>>      * @param resourceListener
> > > > > >>>>>>      */
> > > > > >>>>>>     public DocumentInlineFrame(final String id, IResource
> > > > > >>>>> documentResource)
> > > > > >>>>>> {
> > > > > >>>>>>         super(id);
> > > > > >>>>>>         this.documentResource = documentResource;
> > > > > >>>>>>     }
> > > > > >>>>>>
> > > > > >>>>>>     /**
> > > > > >>>>>>      * Gets the url to use for this link.
> > > > > >>>>>>      *
> > > > > >>>>>>      * @return The URL that this link links to
> > > > > >>>>>>      */
> > > > > >>>>>>     protected CharSequence getURL() {
> > > > > >>>>>>         //return urlForListener(new PageParameters());
> > > > > >>>>>>         *return urlForListener(null);*
> > > > > >>>>>>     }
> > > > > >>>>>>
> > > > > >>>>>>     /**
> > > > > >>>>>>      * Handles this frame's tag.
> > > > > >>>>>>      *
> > > > > >>>>>>      * @param tag the component tag
> > > > > >>>>>>      * @see
> > > > > >org.apache.wicket.Component#onComponentTag(ComponentTag)
> > > > > >>>>>>      */
> > > > > >>>>>>     @Override
> > > > > >>>>>>     protected void onComponentTag(final ComponentTag tag) {
> > > > > >>>>>>         checkComponentTag(tag, "iframe");
> > > > > >>>>>>
> > > > > >>>>>>         // Set href to link to this frame's frameRequested
> > > method
> > > > > >>>>>>         CharSequence url = getURL();
> > > > > >>>>>>
> > > > > >>>>>>         // generate the src attribute
> > > > > >>>>>>         tag.put("src", Strings.replaceAll(url, "&",
> "&amp;"));
> > > > > >>>>>>
> > > > > >>>>>>         super.onComponentTag(tag);
> > > > > >>>>>>     }
> > > > > >>>>>>
> > > > > >>>>>>     @Override
> > > > > >>>>>>     protected boolean getStatelessHint() {
> > > > > >>>>>>         return false;
> > > > > >>>>>>     }
> > > > > >>>>>>
> > > > > >>>>>>     @Override
> > > > > >>>>>>     public void onRequest() {
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>> *RequestCycle requestCycle = RequestCycle.get();
> > > > > >Attributes
> > > > > >>>>>> attributes = new Attributes(requestCycle.getRequest(),
> > > > > >>>>>> requestCycle.getResponse(), null);
> > > > > >>>>>> this.documentResource.respond(attributes);*
> > > > > >>>>>>     }
> > > > > >>>>>> }
> > > > > >>>>>> /*** END CODE ***/
> > > > > >>>>>>
> > > > > >>>>>> /*** STACK TRACE ***/
> > > > > >>>>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
> > > > > >>>>> ********************************
> > > > > >>>>>> Aug 22 12:37:54 ERROR
> org.apache.wicket.DefaultExceptionMapper
> > > -
> > > > > >>>>>> Unexpected error occurred
> > > > > >>>>>> java.lang.IllegalStateException: Committed
> > > > > >>>>>> at
> > > > > >>>>>
> > > > >
> > >org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> > > > > >>>>>> at
> > > > >
> >org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > > >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > > > >>>>>> at
> > > > > >>>>>> org.eclipse.jetty.io
> > > > > >>>>>>
> > > > >
> > >
> >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.io
> > .ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > > > >>>>>> at java.lang.Thread.run(Thread.java:745)
> > > > > >>>>>> Aug 22 12:37:54 ERROR
> > > > > >org.apache.wicket.request.cycle.RequestCycle  -
> > > > > >>>>>> Exception retry count exceeded
> > > > > >>>>>> java.lang.IllegalStateException: STREAM
> > > > > >>>>>> at
> > > org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > > >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > > > >>>>>> at
> > > > > >>>>>> org.eclipse.jetty.io
> > > > > >>>>>>
> > > > >
> > >
> >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > > > > >>>>>> at
> > > > > >org.eclipse.jetty.io
> > .ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > > > >>>>>> at
> > > > > >>>>>>
> > > > > >>>>>>
> > > > > >>>>>
> > > > >
> > > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > > > >>>>>> at java.lang.Thread.run(Thread.java:745)
> > > > > >>>>>> /*** END STACK TRACE ***/
> > > > > >>>>>>
> > > > > >>>>>
> > > > > >>>>> --
> > > > > >>>>> Regards - Ernesto Reinaldo Barreiro
> > > > > >>>>>
> > > > > >>
> > > > > >>
> > > ---------------------------------------------------------------------
> > > > > >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > > >> For additional commands, e-mail: users-help@wicket.apache.org
> > > > > >>
> > > > > >
> > > > >
> > >---------------------------------------------------------------------
> > > > > >To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > > >For additional commands, e-mail: users-help@wicket.apache.org
> > > > >
> > > >
> > >
> >
>

Re: Streaming a PDF into an iFrame

Posted by Martin Grigorov <mg...@apache.org>.
Hi,

Check the response headers of PDF.
If chunked transfer encoding is used then maybe you can fix it by providing
explicitly the Content-Lenght in your Wicket code.

On Thu, Aug 29, 2019 at 12:05 AM Benjamin Chew <bc...@smarthealth.com>
wrote:

> Yes, they are the full PDFs that I'm expecting.
>
> Ben
>
>
> On Wed, Aug 28, 2019 at 12:34 PM Lon Varscsak <lo...@gmail.com>
> wrote:
>
> > If it's closing the connection on the PDF pre-maturely, are you getting
> the
> > FULL PDF downloaded?
> >
> > -Lon
> >
> > On Wed, Aug 28, 2019 at 10:14 AM Benjamin Chew <bc...@smarthealth.com>
> > wrote:
> >
> > > Hi Sven,
> > >
> > > Hmm... so this seems to be a problem only on specific browsers.
> > >
> > > I'm seeing this on:
> > > - Google Chrome Version 76.0.3809.100 (OS X Mojave & Win 7)
> > > - Safari Version 12.1.2 (OS X Mojave)
> > > - IE 11 Version 11.0.135 (Win 7)
> > >
> > > And not seeing this on:
> > > - Firefox Quantum 68.0.2 (OS X Mojave)
> > > - Firefox Quantum 68.0.1 (Win 7)
> > >
> > > Knowing this, I'm going to move on from this issue (for now), but
> thanks
> > > for all your help!
> > >
> > > Ben
> > >
> > >
> > > On Wed, Aug 28, 2019 at 9:32 AM Sven Meier <sv...@meiers.net> wrote:
> > >
> > > > Hi Ben,
> > > >
> > > > which browser?
> > > >
> > > > We had long time problems with IE stopping requests an re-requesting
> > > > resources without reason.
> > > >
> > > > Sven
> > > >
> > > > Am 28. August 2019 16:18:23 MESZ schrieb Benjamin Chew <
> > > > bchew@smarthealth.com>:
> > > > >Thanks, Sven.
> > > > >
> > > > >The weird thing is that this is happening during my testing, and I’m
> > > > >not navigating away from the page at all...
> > > > >
> > > > >Ben
> > > > >
> > > > >> On Aug 27, 2019, at 11:34 AM, Sven Meier <sv...@meiers.net> wrote:
> > > > >>
> > > > >> Hi Benjamin,
> > > > >>
> > > > >> this just means that the browser closed the connection before the
> > pdf
> > > > >was fully loaded from the server, e.g. if the user switches to a
> > > > >different page before the iframe has finished loading.
> > > > >>
> > > > >> Nothing you need/can do about it.
> > > > >>
> > > > >> Have fun
> > > > >> Sven
> > > > >>
> > > > >>
> > > > >>> On 27.08.19 02:13, Benjamin Chew wrote:
> > > > >>> I said thanks too soon. ;)
> > > > >>>
> > > > >>> Now I'm seeing this warning intermittently:
> > > > >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> > > > >>> org.eclipse.jetty.io.EofException
> > > > >>> Caused by: org.eclipse.jetty.io.EofException
> > > > >>> Caused by: java.io.IOException: Broken pipe
> > > > >>>
> > > > >>> Is there anything in the DocumentInlineFrame class or the way I'm
> > > > >using it
> > > > >>> that would cause this problem?
> > > > >>>
> > > > >>> Thanks,
> > > > >>> Ben
> > > > >>>
> > > > >>> /*** Calling Class ***/
> > > > >>> queue(new DocumentInlineFrame("ticketsIFrame", new
> > > > >ResourceStreamResource()
> > > > >>> {
> > > > >>>    @Override
> > > > >>>    protected IResourceStream getResourceStream(Attributes
> > > > >attributes) {
> > > > >>>        return
> > > > >>> pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
> > > > >>>    }
> > > > >>>
> > > >
> > > >
> > >
> >
> >}.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>> /*** DocumentInlineFrame Class ***/
> > > > >>> public class DocumentInlineFrame extends WebMarkupContainer
> > > > >implements
> > > > >>> IRequestListener {
> > > > >>>     private static final long serialVersionUID = 1 L;
> > > > >>>     private IResource documentResource;
> > > > >>>
> > > > >>>     /**
> > > > >>>      * Constructor receiving an IResourceStream..
> > > > >>>      *
> > > > >>>      * @param id
> > > > >>>      * @param stream
> > > > >>>      */
> > > > >>>     public DocumentInlineFrame(String id, IResourceStream
> stream) {
> > > > >>>         this(id, new ResourceStreamResource(stream));
> > > > >>>     }
> > > > >>>
> > > > >>>     /**
> > > > >>>      * Constructor receiving an IResource..
> > > > >>>      *
> > > > >>>      * @param id
> > > > >>>      * @param resourceListener
> > > > >>>      */
> > > > >>>     public DocumentInlineFrame(final String id, IResource
> > > > >documentResource)
> > > > >>> {
> > > > >>>         super(id);
> > > > >>>         this.documentResource = documentResource;
> > > > >>>     }
> > > > >>>
> > > > >>>     /**
> > > > >>>      * Gets the url to use for this link.
> > > > >>>      *
> > > > >>>      * @return The URL that this link links to
> > > > >>>      */
> > > > >>>     protected CharSequence getURL() {
> > > > >>>         return urlForListener(null);
> > > > >>>     }
> > > > >>>
> > > > >>>     /**
> > > > >>>      * Handles this frame's tag.
> > > > >>>      *
> > > > >>>      * @param tag the component tag
> > > > >>>      * @see
> > org.apache.wicket.Component#onComponentTag(ComponentTag)
> > > > >>>      */
> > > > >>>     @Override
> > > > >>>     protected void onComponentTag(final ComponentTag tag) {
> > > > >>>         checkComponentTag(tag, "iframe");
> > > > >>>
> > > > >>>         // Set href to link to this frame's frameRequested method
> > > > >>>         CharSequence url = getURL();
> > > > >>>
> > > > >>>         // Generate the src attribute
> > > > >>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> > > > >>>
> > > > >>>         super.onComponentTag(tag);
> > > > >>>     }
> > > > >>>
> > > > >>>     @Override
> > > > >>>     protected boolean getStatelessHint() {
> > > > >>>         return false;
> > > > >>>     }
> > > > >>>
> > > > >>>     @Override
> > > > >>>     public boolean rendersPage() {
> > > > >>>         return false;
> > > > >>>     }
> > > > >>>
> > > > >>>     @Override
> > > > >>>     public void onRequest() {
> > > > >>>         RequestCycle requestCycle = RequestCycle.get();
> > > > >>>         Attributes attributes = new
> > > > >Attributes(requestCycle.getRequest(),
> > > > >>> requestCycle.getResponse(), null);
> > > > >>>
> > > > >>>         this.documentResource.respond(attributes);
> > > > >>>     }
> > > > >>> }
> > > > >>>
> > > > >>>
> > > > >>>
> > > > >>> /*** Full Stacktrace ***/
> > > > >>> Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the following
> > > > >exception
> > > > >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> > > > >>> org.eclipse.jetty.io.EofException
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
> > > > >>> at
> > > >
> > >
> >
> >org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > > >>> at
> > > > >>>
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > > >>> at
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > >>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > > >>> at
> > org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > > >>> at
> > > > >>>
> > > > >org.eclipse.jetty.io
> > > >
> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > > >>> at org.eclipse.jetty.io
> > .FillInterest.fillable(FillInterest.java:103)
> > > > >>> at
> > > > >org.eclipse.jetty.io
> .ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > > >>> at java.lang.Thread.run(Thread.java:745)
> > > > >>> Caused by: org.eclipse.jetty.io.EofException
> > > > >>> at
> > > > >org.eclipse.jetty.io
> .ChannelEndPoint.flush(ChannelEndPoint.java:286)
> > > > >>> at org.eclipse.jetty.io
> .WriteFlusher.flush(WriteFlusher.java:393)
> > > > >>> at org.eclipse.jetty.io
> .WriteFlusher.write(WriteFlusher.java:277)
> > > > >>> at
> > > > >org.eclipse.jetty.io
> > .AbstractEndPoint.write(AbstractEndPoint.java:380)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> > > > >>> at
> > > >
> >org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
> > > > >>> at
> > > >
> > >org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
> > > > >>> at
> org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
> > > > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
> > > > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
> > > > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
> > > > >>> at java.io.OutputStream.write(OutputStream.java:75)
> > > > >>> at
> > > > >>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
> > > > >>> ... 48 more
> > > > >>> Caused by: java.io.IOException: Broken pipe
> > > > >>> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
> > > > >>> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
> > > > >>> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
> > > > >>> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
> > > > >>> at
> > > > >org.eclipse.jetty.io
> .ChannelEndPoint.flush(ChannelEndPoint.java:266)
> > > > >>> ... 67 more
> > > > >>>
> > > > >>>
> > > > >>>> On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew
> > > > ><bc...@smarthealth.com> wrote:
> > > > >>>>
> > > > >>>> Thanks, Sven.
> > > > >>>>
> > > > >>>> And thanks Ernesto for writing that example in the first place!
> > > > >>>>
> > > > >>>> Ben
> > > > >>>>
> > > > >>>>
> > > > >>>> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
> > > > >>>> reiern70@gmail.com> wrote:
> > > > >>>>
> > > > >>>>> Hi,
> > > > >>>>>
> > > > >>>>> Thanks for reporting this. I will fix the example and adapt it
> to
> > > > >wicket
> > > > >>>>> 8.x.
> > > > >>>>>
> > > > >>>>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew
> > > > ><bc...@smarthealth.com>
> > > > >>>>> wrote:
> > > > >>>>>
> > > > >>>>>> Hi,
> > > > >>>>>>
> > > > >>>>>> I'm pretty new to Wicket, and am trying to figure out how to
> > > > >stream a
> > > > >>>>> PDF
> > > > >>>>>> into an iFrame. I've searched for a solution and come across
> > > > >Ernesto's
> > > > >>>>>> DocumentInlineFrame class here:
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > > >
> > > >
> > >
> >
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
> > > > >>>>>> Since IResourceListener is no longer a part of Wicket 8, I've
> > > > >modified
> > > > >>>>> the
> > > > >>>>>> class in these ways:
> > > > >>>>>> 1) The class implements IRequestListener
> > > > >>>>>> 2) Return urlForListener(null) in getURL()
> > > > >>>>>> 3) Renamed onResourceRequested() to onRequest()
> > > > >>>>>>
> > > > >>>>>> But I'm getting an error:
> > > > >>>>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected
> > > > >error
> > > > >>>>> occurred
> > > > >>>>>> java.lang.IllegalStateException: Committed
> > > > >>>>>>
> > > > >>>>>> The code and full stack trace are below. Any ideas on what I'm
> > > > >doing
> > > > >>>>> wrong?
> > > > >>>>>> Thanks,
> > > > >>>>>> Ben
> > > > >>>>>>
> > > > >>>>>> /*** CODE ***/
> > > > >>>>>> public class DocumentInlineFrame extends WebMarkupContainer
> > > > >implements
> > > > >>>>>> *IRequestListener* {
> > > > >>>>>>     private static final long serialVersionUID = 1 L;
> > > > >>>>>>
> > > > >>>>>>     private IResource documentResource;
> > > > >>>>>>
> > > > >>>>>>     /**
> > > > >>>>>>      * Constructor receiving an IResourceStream..
> > > > >>>>>>      *
> > > > >>>>>>      * @param id
> > > > >>>>>>      * @param stream
> > > > >>>>>>      */
> > > > >>>>>>     public DocumentInlineFrame(String id, IResourceStream
> > stream)
> > > > >{
> > > > >>>>>>         this(id, new ResourceStreamResource(stream));
> > > > >>>>>>     }
> > > > >>>>>>
> > > > >>>>>>     /**
> > > > >>>>>>      * Constructor receiving an IResource..
> > > > >>>>>>      *
> > > > >>>>>>      * @param id
> > > > >>>>>>      * @param resourceListener
> > > > >>>>>>      */
> > > > >>>>>>     public DocumentInlineFrame(final String id, IResource
> > > > >>>>> documentResource)
> > > > >>>>>> {
> > > > >>>>>>         super(id);
> > > > >>>>>>         this.documentResource = documentResource;
> > > > >>>>>>     }
> > > > >>>>>>
> > > > >>>>>>     /**
> > > > >>>>>>      * Gets the url to use for this link.
> > > > >>>>>>      *
> > > > >>>>>>      * @return The URL that this link links to
> > > > >>>>>>      */
> > > > >>>>>>     protected CharSequence getURL() {
> > > > >>>>>>         //return urlForListener(new PageParameters());
> > > > >>>>>>         *return urlForListener(null);*
> > > > >>>>>>     }
> > > > >>>>>>
> > > > >>>>>>     /**
> > > > >>>>>>      * Handles this frame's tag.
> > > > >>>>>>      *
> > > > >>>>>>      * @param tag the component tag
> > > > >>>>>>      * @see
> > > > >org.apache.wicket.Component#onComponentTag(ComponentTag)
> > > > >>>>>>      */
> > > > >>>>>>     @Override
> > > > >>>>>>     protected void onComponentTag(final ComponentTag tag) {
> > > > >>>>>>         checkComponentTag(tag, "iframe");
> > > > >>>>>>
> > > > >>>>>>         // Set href to link to this frame's frameRequested
> > method
> > > > >>>>>>         CharSequence url = getURL();
> > > > >>>>>>
> > > > >>>>>>         // generate the src attribute
> > > > >>>>>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> > > > >>>>>>
> > > > >>>>>>         super.onComponentTag(tag);
> > > > >>>>>>     }
> > > > >>>>>>
> > > > >>>>>>     @Override
> > > > >>>>>>     protected boolean getStatelessHint() {
> > > > >>>>>>         return false;
> > > > >>>>>>     }
> > > > >>>>>>
> > > > >>>>>>     @Override
> > > > >>>>>>     public void onRequest() {
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>> *RequestCycle requestCycle = RequestCycle.get();
> > > > >Attributes
> > > > >>>>>> attributes = new Attributes(requestCycle.getRequest(),
> > > > >>>>>> requestCycle.getResponse(), null);
> > > > >>>>>> this.documentResource.respond(attributes);*
> > > > >>>>>>     }
> > > > >>>>>> }
> > > > >>>>>> /*** END CODE ***/
> > > > >>>>>>
> > > > >>>>>> /*** STACK TRACE ***/
> > > > >>>>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
> > > > >>>>> ********************************
> > > > >>>>>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper
> > -
> > > > >>>>>> Unexpected error occurred
> > > > >>>>>> java.lang.IllegalStateException: Committed
> > > > >>>>>> at
> > > > >>>>>
> > > >
> >org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > > >>>>>> at
> > > > >>>>>> org.eclipse.jetty.io
> > > > >>>>>>
> > > >
> > >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.io
> .ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > > >>>>>> at java.lang.Thread.run(Thread.java:745)
> > > > >>>>>> Aug 22 12:37:54 ERROR
> > > > >org.apache.wicket.request.cycle.RequestCycle  -
> > > > >>>>>> Exception retry count exceeded
> > > > >>>>>> java.lang.IllegalStateException: STREAM
> > > > >>>>>> at
> > org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>
> > > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > > >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > > >>>>>> at
> > > > >>>>>> org.eclipse.jetty.io
> > > > >>>>>>
> > > >
> > >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > > > >>>>>> at
> > > > >org.eclipse.jetty.io
> .ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > > >>>>>> at
> > > > >>>>>>
> > > > >>>>>>
> > > > >>>>>
> > > >
> > > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > > >>>>>> at java.lang.Thread.run(Thread.java:745)
> > > > >>>>>> /*** END STACK TRACE ***/
> > > > >>>>>>
> > > > >>>>>
> > > > >>>>> --
> > > > >>>>> Regards - Ernesto Reinaldo Barreiro
> > > > >>>>>
> > > > >>
> > > > >>
> > ---------------------------------------------------------------------
> > > > >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > >> For additional commands, e-mail: users-help@wicket.apache.org
> > > > >>
> > > > >
> > > >
> >---------------------------------------------------------------------
> > > > >To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > > >For additional commands, e-mail: users-help@wicket.apache.org
> > > >
> > >
> >
>

Re: Streaming a PDF into an iFrame

Posted by Benjamin Chew <bc...@smarthealth.com>.
Yes, they are the full PDFs that I'm expecting.

Ben


On Wed, Aug 28, 2019 at 12:34 PM Lon Varscsak <lo...@gmail.com>
wrote:

> If it's closing the connection on the PDF pre-maturely, are you getting the
> FULL PDF downloaded?
>
> -Lon
>
> On Wed, Aug 28, 2019 at 10:14 AM Benjamin Chew <bc...@smarthealth.com>
> wrote:
>
> > Hi Sven,
> >
> > Hmm... so this seems to be a problem only on specific browsers.
> >
> > I'm seeing this on:
> > - Google Chrome Version 76.0.3809.100 (OS X Mojave & Win 7)
> > - Safari Version 12.1.2 (OS X Mojave)
> > - IE 11 Version 11.0.135 (Win 7)
> >
> > And not seeing this on:
> > - Firefox Quantum 68.0.2 (OS X Mojave)
> > - Firefox Quantum 68.0.1 (Win 7)
> >
> > Knowing this, I'm going to move on from this issue (for now), but thanks
> > for all your help!
> >
> > Ben
> >
> >
> > On Wed, Aug 28, 2019 at 9:32 AM Sven Meier <sv...@meiers.net> wrote:
> >
> > > Hi Ben,
> > >
> > > which browser?
> > >
> > > We had long time problems with IE stopping requests an re-requesting
> > > resources without reason.
> > >
> > > Sven
> > >
> > > Am 28. August 2019 16:18:23 MESZ schrieb Benjamin Chew <
> > > bchew@smarthealth.com>:
> > > >Thanks, Sven.
> > > >
> > > >The weird thing is that this is happening during my testing, and I’m
> > > >not navigating away from the page at all...
> > > >
> > > >Ben
> > > >
> > > >> On Aug 27, 2019, at 11:34 AM, Sven Meier <sv...@meiers.net> wrote:
> > > >>
> > > >> Hi Benjamin,
> > > >>
> > > >> this just means that the browser closed the connection before the
> pdf
> > > >was fully loaded from the server, e.g. if the user switches to a
> > > >different page before the iframe has finished loading.
> > > >>
> > > >> Nothing you need/can do about it.
> > > >>
> > > >> Have fun
> > > >> Sven
> > > >>
> > > >>
> > > >>> On 27.08.19 02:13, Benjamin Chew wrote:
> > > >>> I said thanks too soon. ;)
> > > >>>
> > > >>> Now I'm seeing this warning intermittently:
> > > >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> > > >>> org.eclipse.jetty.io.EofException
> > > >>> Caused by: org.eclipse.jetty.io.EofException
> > > >>> Caused by: java.io.IOException: Broken pipe
> > > >>>
> > > >>> Is there anything in the DocumentInlineFrame class or the way I'm
> > > >using it
> > > >>> that would cause this problem?
> > > >>>
> > > >>> Thanks,
> > > >>> Ben
> > > >>>
> > > >>> /*** Calling Class ***/
> > > >>> queue(new DocumentInlineFrame("ticketsIFrame", new
> > > >ResourceStreamResource()
> > > >>> {
> > > >>>    @Override
> > > >>>    protected IResourceStream getResourceStream(Attributes
> > > >attributes) {
> > > >>>        return
> > > >>> pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
> > > >>>    }
> > > >>>
> > >
> > >
> >
> >}.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));
> > > >>>
> > > >>>
> > > >>>
> > > >>> /*** DocumentInlineFrame Class ***/
> > > >>> public class DocumentInlineFrame extends WebMarkupContainer
> > > >implements
> > > >>> IRequestListener {
> > > >>>     private static final long serialVersionUID = 1 L;
> > > >>>     private IResource documentResource;
> > > >>>
> > > >>>     /**
> > > >>>      * Constructor receiving an IResourceStream..
> > > >>>      *
> > > >>>      * @param id
> > > >>>      * @param stream
> > > >>>      */
> > > >>>     public DocumentInlineFrame(String id, IResourceStream stream) {
> > > >>>         this(id, new ResourceStreamResource(stream));
> > > >>>     }
> > > >>>
> > > >>>     /**
> > > >>>      * Constructor receiving an IResource..
> > > >>>      *
> > > >>>      * @param id
> > > >>>      * @param resourceListener
> > > >>>      */
> > > >>>     public DocumentInlineFrame(final String id, IResource
> > > >documentResource)
> > > >>> {
> > > >>>         super(id);
> > > >>>         this.documentResource = documentResource;
> > > >>>     }
> > > >>>
> > > >>>     /**
> > > >>>      * Gets the url to use for this link.
> > > >>>      *
> > > >>>      * @return The URL that this link links to
> > > >>>      */
> > > >>>     protected CharSequence getURL() {
> > > >>>         return urlForListener(null);
> > > >>>     }
> > > >>>
> > > >>>     /**
> > > >>>      * Handles this frame's tag.
> > > >>>      *
> > > >>>      * @param tag the component tag
> > > >>>      * @see
> org.apache.wicket.Component#onComponentTag(ComponentTag)
> > > >>>      */
> > > >>>     @Override
> > > >>>     protected void onComponentTag(final ComponentTag tag) {
> > > >>>         checkComponentTag(tag, "iframe");
> > > >>>
> > > >>>         // Set href to link to this frame's frameRequested method
> > > >>>         CharSequence url = getURL();
> > > >>>
> > > >>>         // Generate the src attribute
> > > >>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> > > >>>
> > > >>>         super.onComponentTag(tag);
> > > >>>     }
> > > >>>
> > > >>>     @Override
> > > >>>     protected boolean getStatelessHint() {
> > > >>>         return false;
> > > >>>     }
> > > >>>
> > > >>>     @Override
> > > >>>     public boolean rendersPage() {
> > > >>>         return false;
> > > >>>     }
> > > >>>
> > > >>>     @Override
> > > >>>     public void onRequest() {
> > > >>>         RequestCycle requestCycle = RequestCycle.get();
> > > >>>         Attributes attributes = new
> > > >Attributes(requestCycle.getRequest(),
> > > >>> requestCycle.getResponse(), null);
> > > >>>
> > > >>>         this.documentResource.respond(attributes);
> > > >>>     }
> > > >>> }
> > > >>>
> > > >>>
> > > >>>
> > > >>> /*** Full Stacktrace ***/
> > > >>> Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the following
> > > >exception
> > > >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> > > >>> org.eclipse.jetty.io.EofException
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
> > > >>> at
> > >
> >
> >org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > >>> at
> > > >>>
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > >>> at
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > >>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > >>> at
> org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > >>> at
> > > >>>
> > > >org.eclipse.jetty.io
> > > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > >>> at org.eclipse.jetty.io
> .FillInterest.fillable(FillInterest.java:103)
> > > >>> at
> > > >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > >>> at java.lang.Thread.run(Thread.java:745)
> > > >>> Caused by: org.eclipse.jetty.io.EofException
> > > >>> at
> > > >org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:286)
> > > >>> at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:393)
> > > >>> at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
> > > >>> at
> > > >org.eclipse.jetty.io
> .AbstractEndPoint.write(AbstractEndPoint.java:380)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> > > >>> at
> > > >org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
> > > >>> at
> > >
> >org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
> > > >>> at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
> > > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
> > > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
> > > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
> > > >>> at java.io.OutputStream.write(OutputStream.java:75)
> > > >>> at
> > > >>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
> > > >>> ... 48 more
> > > >>> Caused by: java.io.IOException: Broken pipe
> > > >>> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
> > > >>> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
> > > >>> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
> > > >>> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
> > > >>> at
> > > >org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:266)
> > > >>> ... 67 more
> > > >>>
> > > >>>
> > > >>>> On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew
> > > ><bc...@smarthealth.com> wrote:
> > > >>>>
> > > >>>> Thanks, Sven.
> > > >>>>
> > > >>>> And thanks Ernesto for writing that example in the first place!
> > > >>>>
> > > >>>> Ben
> > > >>>>
> > > >>>>
> > > >>>> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
> > > >>>> reiern70@gmail.com> wrote:
> > > >>>>
> > > >>>>> Hi,
> > > >>>>>
> > > >>>>> Thanks for reporting this. I will fix the example and adapt it to
> > > >wicket
> > > >>>>> 8.x.
> > > >>>>>
> > > >>>>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew
> > > ><bc...@smarthealth.com>
> > > >>>>> wrote:
> > > >>>>>
> > > >>>>>> Hi,
> > > >>>>>>
> > > >>>>>> I'm pretty new to Wicket, and am trying to figure out how to
> > > >stream a
> > > >>>>> PDF
> > > >>>>>> into an iFrame. I've searched for a solution and come across
> > > >Ernesto's
> > > >>>>>> DocumentInlineFrame class here:
> > > >>>>>>
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > > >
> > >
> >
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
> > > >>>>>> Since IResourceListener is no longer a part of Wicket 8, I've
> > > >modified
> > > >>>>> the
> > > >>>>>> class in these ways:
> > > >>>>>> 1) The class implements IRequestListener
> > > >>>>>> 2) Return urlForListener(null) in getURL()
> > > >>>>>> 3) Renamed onResourceRequested() to onRequest()
> > > >>>>>>
> > > >>>>>> But I'm getting an error:
> > > >>>>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected
> > > >error
> > > >>>>> occurred
> > > >>>>>> java.lang.IllegalStateException: Committed
> > > >>>>>>
> > > >>>>>> The code and full stack trace are below. Any ideas on what I'm
> > > >doing
> > > >>>>> wrong?
> > > >>>>>> Thanks,
> > > >>>>>> Ben
> > > >>>>>>
> > > >>>>>> /*** CODE ***/
> > > >>>>>> public class DocumentInlineFrame extends WebMarkupContainer
> > > >implements
> > > >>>>>> *IRequestListener* {
> > > >>>>>>     private static final long serialVersionUID = 1 L;
> > > >>>>>>
> > > >>>>>>     private IResource documentResource;
> > > >>>>>>
> > > >>>>>>     /**
> > > >>>>>>      * Constructor receiving an IResourceStream..
> > > >>>>>>      *
> > > >>>>>>      * @param id
> > > >>>>>>      * @param stream
> > > >>>>>>      */
> > > >>>>>>     public DocumentInlineFrame(String id, IResourceStream
> stream)
> > > >{
> > > >>>>>>         this(id, new ResourceStreamResource(stream));
> > > >>>>>>     }
> > > >>>>>>
> > > >>>>>>     /**
> > > >>>>>>      * Constructor receiving an IResource..
> > > >>>>>>      *
> > > >>>>>>      * @param id
> > > >>>>>>      * @param resourceListener
> > > >>>>>>      */
> > > >>>>>>     public DocumentInlineFrame(final String id, IResource
> > > >>>>> documentResource)
> > > >>>>>> {
> > > >>>>>>         super(id);
> > > >>>>>>         this.documentResource = documentResource;
> > > >>>>>>     }
> > > >>>>>>
> > > >>>>>>     /**
> > > >>>>>>      * Gets the url to use for this link.
> > > >>>>>>      *
> > > >>>>>>      * @return The URL that this link links to
> > > >>>>>>      */
> > > >>>>>>     protected CharSequence getURL() {
> > > >>>>>>         //return urlForListener(new PageParameters());
> > > >>>>>>         *return urlForListener(null);*
> > > >>>>>>     }
> > > >>>>>>
> > > >>>>>>     /**
> > > >>>>>>      * Handles this frame's tag.
> > > >>>>>>      *
> > > >>>>>>      * @param tag the component tag
> > > >>>>>>      * @see
> > > >org.apache.wicket.Component#onComponentTag(ComponentTag)
> > > >>>>>>      */
> > > >>>>>>     @Override
> > > >>>>>>     protected void onComponentTag(final ComponentTag tag) {
> > > >>>>>>         checkComponentTag(tag, "iframe");
> > > >>>>>>
> > > >>>>>>         // Set href to link to this frame's frameRequested
> method
> > > >>>>>>         CharSequence url = getURL();
> > > >>>>>>
> > > >>>>>>         // generate the src attribute
> > > >>>>>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> > > >>>>>>
> > > >>>>>>         super.onComponentTag(tag);
> > > >>>>>>     }
> > > >>>>>>
> > > >>>>>>     @Override
> > > >>>>>>     protected boolean getStatelessHint() {
> > > >>>>>>         return false;
> > > >>>>>>     }
> > > >>>>>>
> > > >>>>>>     @Override
> > > >>>>>>     public void onRequest() {
> > > >>>>>>
> > > >>>>>>
> > > >>>>>> *RequestCycle requestCycle = RequestCycle.get();
> > > >Attributes
> > > >>>>>> attributes = new Attributes(requestCycle.getRequest(),
> > > >>>>>> requestCycle.getResponse(), null);
> > > >>>>>> this.documentResource.respond(attributes);*
> > > >>>>>>     }
> > > >>>>>> }
> > > >>>>>> /*** END CODE ***/
> > > >>>>>>
> > > >>>>>> /*** STACK TRACE ***/
> > > >>>>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
> > > >>>>> ********************************
> > > >>>>>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper
> -
> > > >>>>>> Unexpected error occurred
> > > >>>>>> java.lang.IllegalStateException: Committed
> > > >>>>>> at
> > > >>>>>
> > > >org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> > > >>>>>> at
> > > >org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> > > >>>>>> at
> > > >org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> > > >>>>>> at
> > > >org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> > > >>>>>> at
> > > >org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > >>>>>> at
> > > >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > >>>>>> at
> > > >>>>>> org.eclipse.jetty.io
> > > >>>>>>
> > >
> >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > >>>>>> at
> > > >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > > >>>>>> at
> > > >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > >>>>>> at java.lang.Thread.run(Thread.java:745)
> > > >>>>>> Aug 22 12:37:54 ERROR
> > > >org.apache.wicket.request.cycle.RequestCycle  -
> > > >>>>>> Exception retry count exceeded
> > > >>>>>> java.lang.IllegalStateException: STREAM
> > > >>>>>> at
> org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>
> > >
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > > >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > > >>>>>> at
> > > >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > > >>>>>> at
> > > >>>>>> org.eclipse.jetty.io
> > > >>>>>>
> > >
> >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > > >>>>>> at
> > > >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > > >>>>>> at
> > > >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > > >>>>>> at
> > > >>>>>>
> > > >>>>>>
> > > >>>>>
> > >
> > >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > > >>>>>> at java.lang.Thread.run(Thread.java:745)
> > > >>>>>> /*** END STACK TRACE ***/
> > > >>>>>>
> > > >>>>>
> > > >>>>> --
> > > >>>>> Regards - Ernesto Reinaldo Barreiro
> > > >>>>>
> > > >>
> > > >>
> ---------------------------------------------------------------------
> > > >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > >> For additional commands, e-mail: users-help@wicket.apache.org
> > > >>
> > > >
> > > >---------------------------------------------------------------------
> > > >To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > > >For additional commands, e-mail: users-help@wicket.apache.org
> > >
> >
>

Re: Streaming a PDF into an iFrame

Posted by Lon Varscsak <lo...@gmail.com>.
If it's closing the connection on the PDF pre-maturely, are you getting the
FULL PDF downloaded?

-Lon

On Wed, Aug 28, 2019 at 10:14 AM Benjamin Chew <bc...@smarthealth.com>
wrote:

> Hi Sven,
>
> Hmm... so this seems to be a problem only on specific browsers.
>
> I'm seeing this on:
> - Google Chrome Version 76.0.3809.100 (OS X Mojave & Win 7)
> - Safari Version 12.1.2 (OS X Mojave)
> - IE 11 Version 11.0.135 (Win 7)
>
> And not seeing this on:
> - Firefox Quantum 68.0.2 (OS X Mojave)
> - Firefox Quantum 68.0.1 (Win 7)
>
> Knowing this, I'm going to move on from this issue (for now), but thanks
> for all your help!
>
> Ben
>
>
> On Wed, Aug 28, 2019 at 9:32 AM Sven Meier <sv...@meiers.net> wrote:
>
> > Hi Ben,
> >
> > which browser?
> >
> > We had long time problems with IE stopping requests an re-requesting
> > resources without reason.
> >
> > Sven
> >
> > Am 28. August 2019 16:18:23 MESZ schrieb Benjamin Chew <
> > bchew@smarthealth.com>:
> > >Thanks, Sven.
> > >
> > >The weird thing is that this is happening during my testing, and I’m
> > >not navigating away from the page at all...
> > >
> > >Ben
> > >
> > >> On Aug 27, 2019, at 11:34 AM, Sven Meier <sv...@meiers.net> wrote:
> > >>
> > >> Hi Benjamin,
> > >>
> > >> this just means that the browser closed the connection before the pdf
> > >was fully loaded from the server, e.g. if the user switches to a
> > >different page before the iframe has finished loading.
> > >>
> > >> Nothing you need/can do about it.
> > >>
> > >> Have fun
> > >> Sven
> > >>
> > >>
> > >>> On 27.08.19 02:13, Benjamin Chew wrote:
> > >>> I said thanks too soon. ;)
> > >>>
> > >>> Now I'm seeing this warning intermittently:
> > >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> > >>> org.eclipse.jetty.io.EofException
> > >>> Caused by: org.eclipse.jetty.io.EofException
> > >>> Caused by: java.io.IOException: Broken pipe
> > >>>
> > >>> Is there anything in the DocumentInlineFrame class or the way I'm
> > >using it
> > >>> that would cause this problem?
> > >>>
> > >>> Thanks,
> > >>> Ben
> > >>>
> > >>> /*** Calling Class ***/
> > >>> queue(new DocumentInlineFrame("ticketsIFrame", new
> > >ResourceStreamResource()
> > >>> {
> > >>>    @Override
> > >>>    protected IResourceStream getResourceStream(Attributes
> > >attributes) {
> > >>>        return
> > >>> pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
> > >>>    }
> > >>>
> >
> >
> >}.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));
> > >>>
> > >>>
> > >>>
> > >>> /*** DocumentInlineFrame Class ***/
> > >>> public class DocumentInlineFrame extends WebMarkupContainer
> > >implements
> > >>> IRequestListener {
> > >>>     private static final long serialVersionUID = 1 L;
> > >>>     private IResource documentResource;
> > >>>
> > >>>     /**
> > >>>      * Constructor receiving an IResourceStream..
> > >>>      *
> > >>>      * @param id
> > >>>      * @param stream
> > >>>      */
> > >>>     public DocumentInlineFrame(String id, IResourceStream stream) {
> > >>>         this(id, new ResourceStreamResource(stream));
> > >>>     }
> > >>>
> > >>>     /**
> > >>>      * Constructor receiving an IResource..
> > >>>      *
> > >>>      * @param id
> > >>>      * @param resourceListener
> > >>>      */
> > >>>     public DocumentInlineFrame(final String id, IResource
> > >documentResource)
> > >>> {
> > >>>         super(id);
> > >>>         this.documentResource = documentResource;
> > >>>     }
> > >>>
> > >>>     /**
> > >>>      * Gets the url to use for this link.
> > >>>      *
> > >>>      * @return The URL that this link links to
> > >>>      */
> > >>>     protected CharSequence getURL() {
> > >>>         return urlForListener(null);
> > >>>     }
> > >>>
> > >>>     /**
> > >>>      * Handles this frame's tag.
> > >>>      *
> > >>>      * @param tag the component tag
> > >>>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
> > >>>      */
> > >>>     @Override
> > >>>     protected void onComponentTag(final ComponentTag tag) {
> > >>>         checkComponentTag(tag, "iframe");
> > >>>
> > >>>         // Set href to link to this frame's frameRequested method
> > >>>         CharSequence url = getURL();
> > >>>
> > >>>         // Generate the src attribute
> > >>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> > >>>
> > >>>         super.onComponentTag(tag);
> > >>>     }
> > >>>
> > >>>     @Override
> > >>>     protected boolean getStatelessHint() {
> > >>>         return false;
> > >>>     }
> > >>>
> > >>>     @Override
> > >>>     public boolean rendersPage() {
> > >>>         return false;
> > >>>     }
> > >>>
> > >>>     @Override
> > >>>     public void onRequest() {
> > >>>         RequestCycle requestCycle = RequestCycle.get();
> > >>>         Attributes attributes = new
> > >Attributes(requestCycle.getRequest(),
> > >>> requestCycle.getResponse(), null);
> > >>>
> > >>>         this.documentResource.respond(attributes);
> > >>>     }
> > >>> }
> > >>>
> > >>>
> > >>>
> > >>> /*** Full Stacktrace ***/
> > >>> Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the following
> > >exception
> > >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> > >>> org.eclipse.jetty.io.EofException
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
> > >>> at
> >
> >org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
> > >>> at
> > >>>
> >
> >
> >com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
> > >>> at
> > >>>
> >
> >
> >com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > >>> at
> > >>>
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > >>> at
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > >>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > >>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > >>> at
> > >>>
> > >org.eclipse.jetty.io
> > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > >>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > >>> at
> > >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > >>> at java.lang.Thread.run(Thread.java:745)
> > >>> Caused by: org.eclipse.jetty.io.EofException
> > >>> at
> > >org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:286)
> > >>> at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:393)
> > >>> at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
> > >>> at
> > >org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> > >>> at
> > >org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
> > >>> at
> > >org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
> > >>> at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
> > >>> at
> > >>>
> >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
> > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
> > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
> > >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
> > >>> at java.io.OutputStream.write(OutputStream.java:75)
> > >>> at
> > >>>
> >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
> > >>> ... 48 more
> > >>> Caused by: java.io.IOException: Broken pipe
> > >>> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
> > >>> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
> > >>> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
> > >>> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
> > >>> at
> > >org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:266)
> > >>> ... 67 more
> > >>>
> > >>>
> > >>>> On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew
> > ><bc...@smarthealth.com> wrote:
> > >>>>
> > >>>> Thanks, Sven.
> > >>>>
> > >>>> And thanks Ernesto for writing that example in the first place!
> > >>>>
> > >>>> Ben
> > >>>>
> > >>>>
> > >>>> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
> > >>>> reiern70@gmail.com> wrote:
> > >>>>
> > >>>>> Hi,
> > >>>>>
> > >>>>> Thanks for reporting this. I will fix the example and adapt it to
> > >wicket
> > >>>>> 8.x.
> > >>>>>
> > >>>>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew
> > ><bc...@smarthealth.com>
> > >>>>> wrote:
> > >>>>>
> > >>>>>> Hi,
> > >>>>>>
> > >>>>>> I'm pretty new to Wicket, and am trying to figure out how to
> > >stream a
> > >>>>> PDF
> > >>>>>> into an iFrame. I've searched for a solution and come across
> > >Ernesto's
> > >>>>>> DocumentInlineFrame class here:
> > >>>>>>
> > >>>>>>
> > >>>>>>
> > >>>>>
> > >
> >
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
> > >>>>>> Since IResourceListener is no longer a part of Wicket 8, I've
> > >modified
> > >>>>> the
> > >>>>>> class in these ways:
> > >>>>>> 1) The class implements IRequestListener
> > >>>>>> 2) Return urlForListener(null) in getURL()
> > >>>>>> 3) Renamed onResourceRequested() to onRequest()
> > >>>>>>
> > >>>>>> But I'm getting an error:
> > >>>>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected
> > >error
> > >>>>> occurred
> > >>>>>> java.lang.IllegalStateException: Committed
> > >>>>>>
> > >>>>>> The code and full stack trace are below. Any ideas on what I'm
> > >doing
> > >>>>> wrong?
> > >>>>>> Thanks,
> > >>>>>> Ben
> > >>>>>>
> > >>>>>> /*** CODE ***/
> > >>>>>> public class DocumentInlineFrame extends WebMarkupContainer
> > >implements
> > >>>>>> *IRequestListener* {
> > >>>>>>     private static final long serialVersionUID = 1 L;
> > >>>>>>
> > >>>>>>     private IResource documentResource;
> > >>>>>>
> > >>>>>>     /**
> > >>>>>>      * Constructor receiving an IResourceStream..
> > >>>>>>      *
> > >>>>>>      * @param id
> > >>>>>>      * @param stream
> > >>>>>>      */
> > >>>>>>     public DocumentInlineFrame(String id, IResourceStream stream)
> > >{
> > >>>>>>         this(id, new ResourceStreamResource(stream));
> > >>>>>>     }
> > >>>>>>
> > >>>>>>     /**
> > >>>>>>      * Constructor receiving an IResource..
> > >>>>>>      *
> > >>>>>>      * @param id
> > >>>>>>      * @param resourceListener
> > >>>>>>      */
> > >>>>>>     public DocumentInlineFrame(final String id, IResource
> > >>>>> documentResource)
> > >>>>>> {
> > >>>>>>         super(id);
> > >>>>>>         this.documentResource = documentResource;
> > >>>>>>     }
> > >>>>>>
> > >>>>>>     /**
> > >>>>>>      * Gets the url to use for this link.
> > >>>>>>      *
> > >>>>>>      * @return The URL that this link links to
> > >>>>>>      */
> > >>>>>>     protected CharSequence getURL() {
> > >>>>>>         //return urlForListener(new PageParameters());
> > >>>>>>         *return urlForListener(null);*
> > >>>>>>     }
> > >>>>>>
> > >>>>>>     /**
> > >>>>>>      * Handles this frame's tag.
> > >>>>>>      *
> > >>>>>>      * @param tag the component tag
> > >>>>>>      * @see
> > >org.apache.wicket.Component#onComponentTag(ComponentTag)
> > >>>>>>      */
> > >>>>>>     @Override
> > >>>>>>     protected void onComponentTag(final ComponentTag tag) {
> > >>>>>>         checkComponentTag(tag, "iframe");
> > >>>>>>
> > >>>>>>         // Set href to link to this frame's frameRequested method
> > >>>>>>         CharSequence url = getURL();
> > >>>>>>
> > >>>>>>         // generate the src attribute
> > >>>>>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> > >>>>>>
> > >>>>>>         super.onComponentTag(tag);
> > >>>>>>     }
> > >>>>>>
> > >>>>>>     @Override
> > >>>>>>     protected boolean getStatelessHint() {
> > >>>>>>         return false;
> > >>>>>>     }
> > >>>>>>
> > >>>>>>     @Override
> > >>>>>>     public void onRequest() {
> > >>>>>>
> > >>>>>>
> > >>>>>> *RequestCycle requestCycle = RequestCycle.get();
> > >Attributes
> > >>>>>> attributes = new Attributes(requestCycle.getRequest(),
> > >>>>>> requestCycle.getResponse(), null);
> > >>>>>> this.documentResource.respond(attributes);*
> > >>>>>>     }
> > >>>>>> }
> > >>>>>> /*** END CODE ***/
> > >>>>>>
> > >>>>>> /*** STACK TRACE ***/
> > >>>>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
> > >>>>> ********************************
> > >>>>>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
> > >>>>>> Unexpected error occurred
> > >>>>>> java.lang.IllegalStateException: Committed
> > >>>>>> at
> > >>>>>
> > >org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> > >>>>>> at
> > >org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> > >>>>>> at
> > >org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> > >>>>>> at
> > >org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> > >>>>>> at
> > >org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > >>>>>> at
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > >>>>>> at
> > >>>>>>
> > >>>>>
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > >>>>>> at
> > >>>>>>
> > >>>>>
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > >>>>>> at
> > >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > >>>>>> at
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > >>>>>> at
> > >>>>>> org.eclipse.jetty.io
> > >>>>>>
> > >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > >>>>>> at
> > >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > >>>>>> at
> > >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > >>>>>> at java.lang.Thread.run(Thread.java:745)
> > >>>>>> Aug 22 12:37:54 ERROR
> > >org.apache.wicket.request.cycle.RequestCycle  -
> > >>>>>> Exception retry count exceeded
> > >>>>>> java.lang.IllegalStateException: STREAM
> > >>>>>> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > >>>>>> at
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > >>>>>> at
> > >>>>>>
> > >>>>>
> >
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > >>>>>> at
> > >>>>>>
> > >>>>>
> >
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > >>>>>> at
> > >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > >>>>>> at
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > >>>>>> at
> > >>>>>> org.eclipse.jetty.io
> > >>>>>>
> > >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > >>>>>> at
> > >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > >>>>>> at
> > >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > >>>>>> at
> > >>>>>>
> > >>>>>>
> > >>>>>
> >
> >
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > >>>>>> at java.lang.Thread.run(Thread.java:745)
> > >>>>>> /*** END STACK TRACE ***/
> > >>>>>>
> > >>>>>
> > >>>>> --
> > >>>>> Regards - Ernesto Reinaldo Barreiro
> > >>>>>
> > >>
> > >> ---------------------------------------------------------------------
> > >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > >> For additional commands, e-mail: users-help@wicket.apache.org
> > >>
> > >
> > >---------------------------------------------------------------------
> > >To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> > >For additional commands, e-mail: users-help@wicket.apache.org
> >
>

Re: Streaming a PDF into an iFrame

Posted by Benjamin Chew <bc...@smarthealth.com>.
Hi Sven,

Hmm... so this seems to be a problem only on specific browsers.

I'm seeing this on:
- Google Chrome Version 76.0.3809.100 (OS X Mojave & Win 7)
- Safari Version 12.1.2 (OS X Mojave)
- IE 11 Version 11.0.135 (Win 7)

And not seeing this on:
- Firefox Quantum 68.0.2 (OS X Mojave)
- Firefox Quantum 68.0.1 (Win 7)

Knowing this, I'm going to move on from this issue (for now), but thanks
for all your help!

Ben


On Wed, Aug 28, 2019 at 9:32 AM Sven Meier <sv...@meiers.net> wrote:

> Hi Ben,
>
> which browser?
>
> We had long time problems with IE stopping requests an re-requesting
> resources without reason.
>
> Sven
>
> Am 28. August 2019 16:18:23 MESZ schrieb Benjamin Chew <
> bchew@smarthealth.com>:
> >Thanks, Sven.
> >
> >The weird thing is that this is happening during my testing, and I’m
> >not navigating away from the page at all...
> >
> >Ben
> >
> >> On Aug 27, 2019, at 11:34 AM, Sven Meier <sv...@meiers.net> wrote:
> >>
> >> Hi Benjamin,
> >>
> >> this just means that the browser closed the connection before the pdf
> >was fully loaded from the server, e.g. if the user switches to a
> >different page before the iframe has finished loading.
> >>
> >> Nothing you need/can do about it.
> >>
> >> Have fun
> >> Sven
> >>
> >>
> >>> On 27.08.19 02:13, Benjamin Chew wrote:
> >>> I said thanks too soon. ;)
> >>>
> >>> Now I'm seeing this warning intermittently:
> >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> >>> org.eclipse.jetty.io.EofException
> >>> Caused by: org.eclipse.jetty.io.EofException
> >>> Caused by: java.io.IOException: Broken pipe
> >>>
> >>> Is there anything in the DocumentInlineFrame class or the way I'm
> >using it
> >>> that would cause this problem?
> >>>
> >>> Thanks,
> >>> Ben
> >>>
> >>> /*** Calling Class ***/
> >>> queue(new DocumentInlineFrame("ticketsIFrame", new
> >ResourceStreamResource()
> >>> {
> >>>    @Override
> >>>    protected IResourceStream getResourceStream(Attributes
> >attributes) {
> >>>        return
> >>> pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
> >>>    }
> >>>
>
> >}.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));
> >>>
> >>>
> >>>
> >>> /*** DocumentInlineFrame Class ***/
> >>> public class DocumentInlineFrame extends WebMarkupContainer
> >implements
> >>> IRequestListener {
> >>>     private static final long serialVersionUID = 1 L;
> >>>     private IResource documentResource;
> >>>
> >>>     /**
> >>>      * Constructor receiving an IResourceStream..
> >>>      *
> >>>      * @param id
> >>>      * @param stream
> >>>      */
> >>>     public DocumentInlineFrame(String id, IResourceStream stream) {
> >>>         this(id, new ResourceStreamResource(stream));
> >>>     }
> >>>
> >>>     /**
> >>>      * Constructor receiving an IResource..
> >>>      *
> >>>      * @param id
> >>>      * @param resourceListener
> >>>      */
> >>>     public DocumentInlineFrame(final String id, IResource
> >documentResource)
> >>> {
> >>>         super(id);
> >>>         this.documentResource = documentResource;
> >>>     }
> >>>
> >>>     /**
> >>>      * Gets the url to use for this link.
> >>>      *
> >>>      * @return The URL that this link links to
> >>>      */
> >>>     protected CharSequence getURL() {
> >>>         return urlForListener(null);
> >>>     }
> >>>
> >>>     /**
> >>>      * Handles this frame's tag.
> >>>      *
> >>>      * @param tag the component tag
> >>>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
> >>>      */
> >>>     @Override
> >>>     protected void onComponentTag(final ComponentTag tag) {
> >>>         checkComponentTag(tag, "iframe");
> >>>
> >>>         // Set href to link to this frame's frameRequested method
> >>>         CharSequence url = getURL();
> >>>
> >>>         // Generate the src attribute
> >>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> >>>
> >>>         super.onComponentTag(tag);
> >>>     }
> >>>
> >>>     @Override
> >>>     protected boolean getStatelessHint() {
> >>>         return false;
> >>>     }
> >>>
> >>>     @Override
> >>>     public boolean rendersPage() {
> >>>         return false;
> >>>     }
> >>>
> >>>     @Override
> >>>     public void onRequest() {
> >>>         RequestCycle requestCycle = RequestCycle.get();
> >>>         Attributes attributes = new
> >Attributes(requestCycle.getRequest(),
> >>> requestCycle.getResponse(), null);
> >>>
> >>>         this.documentResource.respond(attributes);
> >>>     }
> >>> }
> >>>
> >>>
> >>>
> >>> /*** Full Stacktrace ***/
> >>> Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the following
> >exception
> >>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> >>> org.eclipse.jetty.io.EofException
> >>> at
> >>>
>
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
> >>> at
> >>>
>
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
> >>> at
> >org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
> >>> at
> >>>
>
> >com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
> >>> at
> >>>
>
> >org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
> >>> at
> >>>
>
> >org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
> >>> at
> >>>
>
> >com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
> >>> at
> >>>
>
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
> >>> at
> >>>
>
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
> >>> at
> >>>
>
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
> >>> at
> >>>
>
> >org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
> >>> at
> >>>
>
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> >>> at
> >>>
>
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> >>> at
> >>>
>
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> >>> at
> >>>
>
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> >>> at
> >>>
>
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> >>> at
> >>>
>
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> >>> at
> >>>
>
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> >>> at
> >>>
>
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> >>> at
> >>>
>
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> >>> at
> >>>
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> >>> at
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> >>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> >>> at
> >>>
> >org.eclipse.jetty.io
> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> >>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> >>> at
> >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> >>> at java.lang.Thread.run(Thread.java:745)
> >>> Caused by: org.eclipse.jetty.io.EofException
> >>> at
> >org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:286)
> >>> at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:393)
> >>> at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
> >>> at
> >org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> >>> at
> >org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
> >>> at
> >org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
> >>> at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> >>> at
> >>>
>
> >org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
> >>> at
> >>>
>
> >org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
> >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
> >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
> >>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
> >>> at java.io.OutputStream.write(OutputStream.java:75)
> >>> at
> >>>
>
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
> >>> ... 48 more
> >>> Caused by: java.io.IOException: Broken pipe
> >>> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
> >>> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
> >>> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
> >>> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
> >>> at
> >org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:266)
> >>> ... 67 more
> >>>
> >>>
> >>>> On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew
> ><bc...@smarthealth.com> wrote:
> >>>>
> >>>> Thanks, Sven.
> >>>>
> >>>> And thanks Ernesto for writing that example in the first place!
> >>>>
> >>>> Ben
> >>>>
> >>>>
> >>>> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
> >>>> reiern70@gmail.com> wrote:
> >>>>
> >>>>> Hi,
> >>>>>
> >>>>> Thanks for reporting this. I will fix the example and adapt it to
> >wicket
> >>>>> 8.x.
> >>>>>
> >>>>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew
> ><bc...@smarthealth.com>
> >>>>> wrote:
> >>>>>
> >>>>>> Hi,
> >>>>>>
> >>>>>> I'm pretty new to Wicket, and am trying to figure out how to
> >stream a
> >>>>> PDF
> >>>>>> into an iFrame. I've searched for a solution and come across
> >Ernesto's
> >>>>>> DocumentInlineFrame class here:
> >>>>>>
> >>>>>>
> >>>>>>
> >>>>>
> >
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
> >>>>>> Since IResourceListener is no longer a part of Wicket 8, I've
> >modified
> >>>>> the
> >>>>>> class in these ways:
> >>>>>> 1) The class implements IRequestListener
> >>>>>> 2) Return urlForListener(null) in getURL()
> >>>>>> 3) Renamed onResourceRequested() to onRequest()
> >>>>>>
> >>>>>> But I'm getting an error:
> >>>>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected
> >error
> >>>>> occurred
> >>>>>> java.lang.IllegalStateException: Committed
> >>>>>>
> >>>>>> The code and full stack trace are below. Any ideas on what I'm
> >doing
> >>>>> wrong?
> >>>>>> Thanks,
> >>>>>> Ben
> >>>>>>
> >>>>>> /*** CODE ***/
> >>>>>> public class DocumentInlineFrame extends WebMarkupContainer
> >implements
> >>>>>> *IRequestListener* {
> >>>>>>     private static final long serialVersionUID = 1 L;
> >>>>>>
> >>>>>>     private IResource documentResource;
> >>>>>>
> >>>>>>     /**
> >>>>>>      * Constructor receiving an IResourceStream..
> >>>>>>      *
> >>>>>>      * @param id
> >>>>>>      * @param stream
> >>>>>>      */
> >>>>>>     public DocumentInlineFrame(String id, IResourceStream stream)
> >{
> >>>>>>         this(id, new ResourceStreamResource(stream));
> >>>>>>     }
> >>>>>>
> >>>>>>     /**
> >>>>>>      * Constructor receiving an IResource..
> >>>>>>      *
> >>>>>>      * @param id
> >>>>>>      * @param resourceListener
> >>>>>>      */
> >>>>>>     public DocumentInlineFrame(final String id, IResource
> >>>>> documentResource)
> >>>>>> {
> >>>>>>         super(id);
> >>>>>>         this.documentResource = documentResource;
> >>>>>>     }
> >>>>>>
> >>>>>>     /**
> >>>>>>      * Gets the url to use for this link.
> >>>>>>      *
> >>>>>>      * @return The URL that this link links to
> >>>>>>      */
> >>>>>>     protected CharSequence getURL() {
> >>>>>>         //return urlForListener(new PageParameters());
> >>>>>>         *return urlForListener(null);*
> >>>>>>     }
> >>>>>>
> >>>>>>     /**
> >>>>>>      * Handles this frame's tag.
> >>>>>>      *
> >>>>>>      * @param tag the component tag
> >>>>>>      * @see
> >org.apache.wicket.Component#onComponentTag(ComponentTag)
> >>>>>>      */
> >>>>>>     @Override
> >>>>>>     protected void onComponentTag(final ComponentTag tag) {
> >>>>>>         checkComponentTag(tag, "iframe");
> >>>>>>
> >>>>>>         // Set href to link to this frame's frameRequested method
> >>>>>>         CharSequence url = getURL();
> >>>>>>
> >>>>>>         // generate the src attribute
> >>>>>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> >>>>>>
> >>>>>>         super.onComponentTag(tag);
> >>>>>>     }
> >>>>>>
> >>>>>>     @Override
> >>>>>>     protected boolean getStatelessHint() {
> >>>>>>         return false;
> >>>>>>     }
> >>>>>>
> >>>>>>     @Override
> >>>>>>     public void onRequest() {
> >>>>>>
> >>>>>>
> >>>>>> *RequestCycle requestCycle = RequestCycle.get();
> >Attributes
> >>>>>> attributes = new Attributes(requestCycle.getRequest(),
> >>>>>> requestCycle.getResponse(), null);
> >>>>>> this.documentResource.respond(attributes);*
> >>>>>>     }
> >>>>>> }
> >>>>>> /*** END CODE ***/
> >>>>>>
> >>>>>> /*** STACK TRACE ***/
> >>>>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
> >>>>> ********************************
> >>>>>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
> >>>>>> Unexpected error occurred
> >>>>>> java.lang.IllegalStateException: Committed
> >>>>>> at
> >>>>>
> >org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> >>>>>> at
> >org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> >>>>>> at
> >org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> >>>>>> at
> >org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> >>>>>> at
> >org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> >>>>>> at
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> >>>>>> at
> >>>>>>
> >>>>>
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> >>>>>> at
> >>>>>>
> >>>>>
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> >>>>>> at
> >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> >>>>>> at
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> >>>>>> at
> >>>>>> org.eclipse.jetty.io
> >>>>>>
> >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> >>>>>> at
> >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> >>>>>> at
> >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> >>>>>> at java.lang.Thread.run(Thread.java:745)
> >>>>>> Aug 22 12:37:54 ERROR
> >org.apache.wicket.request.cycle.RequestCycle  -
> >>>>>> Exception retry count exceeded
> >>>>>> java.lang.IllegalStateException: STREAM
> >>>>>> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> >>>>>> at
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> >>>>>> at
> >>>>>>
> >>>>>
> >org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> >>>>>> at
> >>>>>>
> >>>>>
> >org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> >>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> >>>>>> at
> >org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> >>>>>> at
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> >>>>>> at
> >>>>>> org.eclipse.jetty.io
> >>>>>>
> >.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> >>>>>> at
> >org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> >>>>>> at
> >org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> >>>>>> at
> >>>>>>
> >>>>>>
> >>>>>
>
> >org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> >>>>>> at java.lang.Thread.run(Thread.java:745)
> >>>>>> /*** END STACK TRACE ***/
> >>>>>>
> >>>>>
> >>>>> --
> >>>>> Regards - Ernesto Reinaldo Barreiro
> >>>>>
> >>
> >> ---------------------------------------------------------------------
> >> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >> For additional commands, e-mail: users-help@wicket.apache.org
> >>
> >
> >---------------------------------------------------------------------
> >To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> >For additional commands, e-mail: users-help@wicket.apache.org
>

Re: Streaming a PDF into an iFrame

Posted by Sven Meier <sv...@meiers.net>.
Hi Ben,

which browser?

We had long time problems with IE stopping requests an re-requesting resources without reason.

Sven

Am 28. August 2019 16:18:23 MESZ schrieb Benjamin Chew <bc...@smarthealth.com>:
>Thanks, Sven. 
>
>The weird thing is that this is happening during my testing, and I’m
>not navigating away from the page at all... 
>
>Ben
>
>> On Aug 27, 2019, at 11:34 AM, Sven Meier <sv...@meiers.net> wrote:
>> 
>> Hi Benjamin,
>> 
>> this just means that the browser closed the connection before the pdf
>was fully loaded from the server, e.g. if the user switches to a
>different page before the iframe has finished loading.
>> 
>> Nothing you need/can do about it.
>> 
>> Have fun
>> Sven
>> 
>> 
>>> On 27.08.19 02:13, Benjamin Chew wrote:
>>> I said thanks too soon. ;)
>>> 
>>> Now I'm seeing this warning intermittently:
>>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
>>> org.eclipse.jetty.io.EofException
>>> Caused by: org.eclipse.jetty.io.EofException
>>> Caused by: java.io.IOException: Broken pipe
>>> 
>>> Is there anything in the DocumentInlineFrame class or the way I'm
>using it
>>> that would cause this problem?
>>> 
>>> Thanks,
>>> Ben
>>> 
>>> /*** Calling Class ***/
>>> queue(new DocumentInlineFrame("ticketsIFrame", new
>ResourceStreamResource()
>>> {
>>>    @Override
>>>    protected IResourceStream getResourceStream(Attributes
>attributes) {
>>>        return
>>> pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
>>>    }
>>>
>}.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));
>>> 
>>> 
>>> 
>>> /*** DocumentInlineFrame Class ***/
>>> public class DocumentInlineFrame extends WebMarkupContainer
>implements
>>> IRequestListener {
>>>     private static final long serialVersionUID = 1 L;
>>>     private IResource documentResource;
>>> 
>>>     /**
>>>      * Constructor receiving an IResourceStream..
>>>      *
>>>      * @param id
>>>      * @param stream
>>>      */
>>>     public DocumentInlineFrame(String id, IResourceStream stream) {
>>>         this(id, new ResourceStreamResource(stream));
>>>     }
>>> 
>>>     /**
>>>      * Constructor receiving an IResource..
>>>      *
>>>      * @param id
>>>      * @param resourceListener
>>>      */
>>>     public DocumentInlineFrame(final String id, IResource
>documentResource)
>>> {
>>>         super(id);
>>>         this.documentResource = documentResource;
>>>     }
>>> 
>>>     /**
>>>      * Gets the url to use for this link.
>>>      *
>>>      * @return The URL that this link links to
>>>      */
>>>     protected CharSequence getURL() {
>>>         return urlForListener(null);
>>>     }
>>> 
>>>     /**
>>>      * Handles this frame's tag.
>>>      *
>>>      * @param tag the component tag
>>>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>>>      */
>>>     @Override
>>>     protected void onComponentTag(final ComponentTag tag) {
>>>         checkComponentTag(tag, "iframe");
>>> 
>>>         // Set href to link to this frame's frameRequested method
>>>         CharSequence url = getURL();
>>> 
>>>         // Generate the src attribute
>>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>>> 
>>>         super.onComponentTag(tag);
>>>     }
>>> 
>>>     @Override
>>>     protected boolean getStatelessHint() {
>>>         return false;
>>>     }
>>> 
>>>     @Override
>>>     public boolean rendersPage() {
>>>         return false;
>>>     }
>>> 
>>>     @Override
>>>     public void onRequest() {
>>>         RequestCycle requestCycle = RequestCycle.get();
>>>         Attributes attributes = new
>Attributes(requestCycle.getRequest(),
>>> requestCycle.getResponse(), null);
>>> 
>>>         this.documentResource.respond(attributes);
>>>     }
>>> }
>>> 
>>> 
>>> 
>>> /*** Full Stacktrace ***/
>>> Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the following
>exception
>>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
>>> org.eclipse.jetty.io.EofException
>>> at
>>>
>org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
>>> at
>>>
>org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
>>> at
>org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
>>> at
>>>
>com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
>>> at
>>>
>org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
>>> at
>>>
>org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
>>> at
>>>
>com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
>>> at
>>>
>org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
>>> at
>>>
>org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
>>> at
>>>
>org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
>>> at
>>>
>org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>> at
>>>
>org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>> at
>>>
>org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>> at
>>>
>org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>> at
>>>
>org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>> at
>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>> at
>>>
>org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>> at
>>>
>org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>> at
>org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>> at
>>>
>org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>> at
>>>
>org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>> at
>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>> at
>>>
>org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>> at
>>>
>org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>> at
>org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>> at
>>>
>org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>> at
>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>> at
>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>> at java.lang.Thread.run(Thread.java:745)
>>> Caused by: org.eclipse.jetty.io.EofException
>>> at
>org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:286)
>>> at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:393)
>>> at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
>>> at
>org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380)
>>> at
>>>
>org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
>>> at
>>>
>org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
>>> at
>>>
>org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
>>> at
>org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
>>> at
>org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
>>> at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
>>> at
>>>
>org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
>>> at
>>>
>org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
>>> at
>>>
>org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
>>> at
>>>
>org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
>>> at
>>>
>org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
>>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
>>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
>>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
>>> at java.io.OutputStream.write(OutputStream.java:75)
>>> at
>>>
>org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
>>> ... 48 more
>>> Caused by: java.io.IOException: Broken pipe
>>> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
>>> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
>>> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
>>> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
>>> at
>org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:266)
>>> ... 67 more
>>> 
>>> 
>>>> On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew
><bc...@smarthealth.com> wrote:
>>>> 
>>>> Thanks, Sven.
>>>> 
>>>> And thanks Ernesto for writing that example in the first place!
>>>> 
>>>> Ben
>>>> 
>>>> 
>>>> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
>>>> reiern70@gmail.com> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> Thanks for reporting this. I will fix the example and adapt it to
>wicket
>>>>> 8.x.
>>>>> 
>>>>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew
><bc...@smarthealth.com>
>>>>> wrote:
>>>>> 
>>>>>> Hi,
>>>>>> 
>>>>>> I'm pretty new to Wicket, and am trying to figure out how to
>stream a
>>>>> PDF
>>>>>> into an iFrame. I've searched for a solution and come across
>Ernesto's
>>>>>> DocumentInlineFrame class here:
>>>>>> 
>>>>>> 
>>>>>> 
>>>>>
>https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
>>>>>> Since IResourceListener is no longer a part of Wicket 8, I've
>modified
>>>>> the
>>>>>> class in these ways:
>>>>>> 1) The class implements IRequestListener
>>>>>> 2) Return urlForListener(null) in getURL()
>>>>>> 3) Renamed onResourceRequested() to onRequest()
>>>>>> 
>>>>>> But I'm getting an error:
>>>>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected
>error
>>>>> occurred
>>>>>> java.lang.IllegalStateException: Committed
>>>>>> 
>>>>>> The code and full stack trace are below. Any ideas on what I'm
>doing
>>>>> wrong?
>>>>>> Thanks,
>>>>>> Ben
>>>>>> 
>>>>>> /*** CODE ***/
>>>>>> public class DocumentInlineFrame extends WebMarkupContainer
>implements
>>>>>> *IRequestListener* {
>>>>>>     private static final long serialVersionUID = 1 L;
>>>>>> 
>>>>>>     private IResource documentResource;
>>>>>> 
>>>>>>     /**
>>>>>>      * Constructor receiving an IResourceStream..
>>>>>>      *
>>>>>>      * @param id
>>>>>>      * @param stream
>>>>>>      */
>>>>>>     public DocumentInlineFrame(String id, IResourceStream stream)
>{
>>>>>>         this(id, new ResourceStreamResource(stream));
>>>>>>     }
>>>>>> 
>>>>>>     /**
>>>>>>      * Constructor receiving an IResource..
>>>>>>      *
>>>>>>      * @param id
>>>>>>      * @param resourceListener
>>>>>>      */
>>>>>>     public DocumentInlineFrame(final String id, IResource
>>>>> documentResource)
>>>>>> {
>>>>>>         super(id);
>>>>>>         this.documentResource = documentResource;
>>>>>>     }
>>>>>> 
>>>>>>     /**
>>>>>>      * Gets the url to use for this link.
>>>>>>      *
>>>>>>      * @return The URL that this link links to
>>>>>>      */
>>>>>>     protected CharSequence getURL() {
>>>>>>         //return urlForListener(new PageParameters());
>>>>>>         *return urlForListener(null);*
>>>>>>     }
>>>>>> 
>>>>>>     /**
>>>>>>      * Handles this frame's tag.
>>>>>>      *
>>>>>>      * @param tag the component tag
>>>>>>      * @see
>org.apache.wicket.Component#onComponentTag(ComponentTag)
>>>>>>      */
>>>>>>     @Override
>>>>>>     protected void onComponentTag(final ComponentTag tag) {
>>>>>>         checkComponentTag(tag, "iframe");
>>>>>> 
>>>>>>         // Set href to link to this frame's frameRequested method
>>>>>>         CharSequence url = getURL();
>>>>>> 
>>>>>>         // generate the src attribute
>>>>>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>>>>>> 
>>>>>>         super.onComponentTag(tag);
>>>>>>     }
>>>>>> 
>>>>>>     @Override
>>>>>>     protected boolean getStatelessHint() {
>>>>>>         return false;
>>>>>>     }
>>>>>> 
>>>>>>     @Override
>>>>>>     public void onRequest() {
>>>>>> 
>>>>>> 
>>>>>> *RequestCycle requestCycle = RequestCycle.get();       
>Attributes
>>>>>> attributes = new Attributes(requestCycle.getRequest(),
>>>>>> requestCycle.getResponse(), null);
>>>>>> this.documentResource.respond(attributes);*
>>>>>>     }
>>>>>> }
>>>>>> /*** END CODE ***/
>>>>>> 
>>>>>> /*** STACK TRACE ***/
>>>>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
>>>>> ********************************
>>>>>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
>>>>>> Unexpected error occurred
>>>>>> java.lang.IllegalStateException: Committed
>>>>>> at
>>>>>
>org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
>>>>>> at
>org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
>>>>>> at
>org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
>>>>>> at
>org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
>>>>>> at
>org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>>>>> at
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>>>>> at
>>>>>> 
>>>>>
>org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>>>>> at
>>>>>> 
>>>>>
>org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>>>> at
>org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>>>> at
>>>>>> 
>>>>>
>org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>>>>> at
>>>>>> org.eclipse.jetty.io
>>>>>>
>.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>>>>> at
>org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>>> at
>org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>> Aug 22 12:37:54 ERROR
>org.apache.wicket.request.cycle.RequestCycle  -
>>>>>> Exception retry count exceeded
>>>>>> java.lang.IllegalStateException: STREAM
>>>>>> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>>>>> at
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>>>>> at
>>>>>> 
>>>>>
>org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>>>>> at
>>>>>> 
>>>>>
>org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>>>> at
>org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>>>> at
>>>>>> 
>>>>>
>org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>>>>> at
>>>>>> org.eclipse.jetty.io
>>>>>>
>.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>>>>> at
>org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>>> at
>org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>>>>> at
>>>>>> 
>>>>>> 
>>>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>>> /*** END STACK TRACE ***/
>>>>>> 
>>>>> 
>>>>> --
>>>>> Regards - Ernesto Reinaldo Barreiro
>>>>> 
>> 
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>> For additional commands, e-mail: users-help@wicket.apache.org
>> 
>
>---------------------------------------------------------------------
>To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
>For additional commands, e-mail: users-help@wicket.apache.org

Re: Streaming a PDF into an iFrame

Posted by Benjamin Chew <bc...@smarthealth.com>.
Thanks, Sven. 

The weird thing is that this is happening during my testing, and I’m not navigating away from the page at all... 

Ben

> On Aug 27, 2019, at 11:34 AM, Sven Meier <sv...@meiers.net> wrote:
> 
> Hi Benjamin,
> 
> this just means that the browser closed the connection before the pdf was fully loaded from the server, e.g. if the user switches to a different page before the iframe has finished loading.
> 
> Nothing you need/can do about it.
> 
> Have fun
> Sven
> 
> 
>> On 27.08.19 02:13, Benjamin Chew wrote:
>> I said thanks too soon. ;)
>> 
>> Now I'm seeing this warning intermittently:
>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
>> org.eclipse.jetty.io.EofException
>> Caused by: org.eclipse.jetty.io.EofException
>> Caused by: java.io.IOException: Broken pipe
>> 
>> Is there anything in the DocumentInlineFrame class or the way I'm using it
>> that would cause this problem?
>> 
>> Thanks,
>> Ben
>> 
>> /*** Calling Class ***/
>> queue(new DocumentInlineFrame("ticketsIFrame", new ResourceStreamResource()
>> {
>>    @Override
>>    protected IResourceStream getResourceStream(Attributes attributes) {
>>        return
>> pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
>>    }
>> }.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));
>> 
>> 
>> 
>> /*** DocumentInlineFrame Class ***/
>> public class DocumentInlineFrame extends WebMarkupContainer implements
>> IRequestListener {
>>     private static final long serialVersionUID = 1 L;
>>     private IResource documentResource;
>> 
>>     /**
>>      * Constructor receiving an IResourceStream..
>>      *
>>      * @param id
>>      * @param stream
>>      */
>>     public DocumentInlineFrame(String id, IResourceStream stream) {
>>         this(id, new ResourceStreamResource(stream));
>>     }
>> 
>>     /**
>>      * Constructor receiving an IResource..
>>      *
>>      * @param id
>>      * @param resourceListener
>>      */
>>     public DocumentInlineFrame(final String id, IResource documentResource)
>> {
>>         super(id);
>>         this.documentResource = documentResource;
>>     }
>> 
>>     /**
>>      * Gets the url to use for this link.
>>      *
>>      * @return The URL that this link links to
>>      */
>>     protected CharSequence getURL() {
>>         return urlForListener(null);
>>     }
>> 
>>     /**
>>      * Handles this frame's tag.
>>      *
>>      * @param tag the component tag
>>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>>      */
>>     @Override
>>     protected void onComponentTag(final ComponentTag tag) {
>>         checkComponentTag(tag, "iframe");
>> 
>>         // Set href to link to this frame's frameRequested method
>>         CharSequence url = getURL();
>> 
>>         // Generate the src attribute
>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>> 
>>         super.onComponentTag(tag);
>>     }
>> 
>>     @Override
>>     protected boolean getStatelessHint() {
>>         return false;
>>     }
>> 
>>     @Override
>>     public boolean rendersPage() {
>>         return false;
>>     }
>> 
>>     @Override
>>     public void onRequest() {
>>         RequestCycle requestCycle = RequestCycle.get();
>>         Attributes attributes = new Attributes(requestCycle.getRequest(),
>> requestCycle.getResponse(), null);
>> 
>>         this.documentResource.respond(attributes);
>>     }
>> }
>> 
>> 
>> 
>> /*** Full Stacktrace ***/
>> Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the following exception
>> org.apache.wicket.protocol.http.servlet.ResponseIOException:
>> org.eclipse.jetty.io.EofException
>> at
>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
>> at
>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
>> at org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
>> at
>> com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
>> at
>> org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
>> at
>> org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
>> at
>> com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
>> at
>> org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
>> at
>> org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
>> at
>> org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
>> at
>> org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
>> at
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>> at
>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>> at
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>> at
>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>> at
>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>> at
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>> at
>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>> at
>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>> at
>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>> at
>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>> at
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>> at
>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>> at
>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>> at
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>> at
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>> at
>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>> at java.lang.Thread.run(Thread.java:745)
>> Caused by: org.eclipse.jetty.io.EofException
>> at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:286)
>> at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:393)
>> at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
>> at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380)
>> at
>> org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
>> at
>> org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
>> at
>> org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
>> at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
>> at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
>> at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
>> at
>> org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
>> at
>> org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
>> at
>> org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
>> at
>> org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
>> at
>> org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
>> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
>> at java.io.OutputStream.write(OutputStream.java:75)
>> at
>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
>> ... 48 more
>> Caused by: java.io.IOException: Broken pipe
>> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
>> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
>> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
>> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
>> at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:266)
>> ... 67 more
>> 
>> 
>>> On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew <bc...@smarthealth.com> wrote:
>>> 
>>> Thanks, Sven.
>>> 
>>> And thanks Ernesto for writing that example in the first place!
>>> 
>>> Ben
>>> 
>>> 
>>> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
>>> reiern70@gmail.com> wrote:
>>> 
>>>> Hi,
>>>> 
>>>> Thanks for reporting this. I will fix the example and adapt it to wicket
>>>> 8.x.
>>>> 
>>>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew <bc...@smarthealth.com>
>>>> wrote:
>>>> 
>>>>> Hi,
>>>>> 
>>>>> I'm pretty new to Wicket, and am trying to figure out how to stream a
>>>> PDF
>>>>> into an iFrame. I've searched for a solution and come across Ernesto's
>>>>> DocumentInlineFrame class here:
>>>>> 
>>>>> 
>>>>> 
>>>> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
>>>>> Since IResourceListener is no longer a part of Wicket 8, I've modified
>>>> the
>>>>> class in these ways:
>>>>> 1) The class implements IRequestListener
>>>>> 2) Return urlForListener(null) in getURL()
>>>>> 3) Renamed onResourceRequested() to onRequest()
>>>>> 
>>>>> But I'm getting an error:
>>>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error
>>>> occurred
>>>>> java.lang.IllegalStateException: Committed
>>>>> 
>>>>> The code and full stack trace are below. Any ideas on what I'm doing
>>>> wrong?
>>>>> Thanks,
>>>>> Ben
>>>>> 
>>>>> /*** CODE ***/
>>>>> public class DocumentInlineFrame extends WebMarkupContainer implements
>>>>> *IRequestListener* {
>>>>>     private static final long serialVersionUID = 1 L;
>>>>> 
>>>>>     private IResource documentResource;
>>>>> 
>>>>>     /**
>>>>>      * Constructor receiving an IResourceStream..
>>>>>      *
>>>>>      * @param id
>>>>>      * @param stream
>>>>>      */
>>>>>     public DocumentInlineFrame(String id, IResourceStream stream) {
>>>>>         this(id, new ResourceStreamResource(stream));
>>>>>     }
>>>>> 
>>>>>     /**
>>>>>      * Constructor receiving an IResource..
>>>>>      *
>>>>>      * @param id
>>>>>      * @param resourceListener
>>>>>      */
>>>>>     public DocumentInlineFrame(final String id, IResource
>>>> documentResource)
>>>>> {
>>>>>         super(id);
>>>>>         this.documentResource = documentResource;
>>>>>     }
>>>>> 
>>>>>     /**
>>>>>      * Gets the url to use for this link.
>>>>>      *
>>>>>      * @return The URL that this link links to
>>>>>      */
>>>>>     protected CharSequence getURL() {
>>>>>         //return urlForListener(new PageParameters());
>>>>>         *return urlForListener(null);*
>>>>>     }
>>>>> 
>>>>>     /**
>>>>>      * Handles this frame's tag.
>>>>>      *
>>>>>      * @param tag the component tag
>>>>>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>>>>>      */
>>>>>     @Override
>>>>>     protected void onComponentTag(final ComponentTag tag) {
>>>>>         checkComponentTag(tag, "iframe");
>>>>> 
>>>>>         // Set href to link to this frame's frameRequested method
>>>>>         CharSequence url = getURL();
>>>>> 
>>>>>         // generate the src attribute
>>>>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>>>>> 
>>>>>         super.onComponentTag(tag);
>>>>>     }
>>>>> 
>>>>>     @Override
>>>>>     protected boolean getStatelessHint() {
>>>>>         return false;
>>>>>     }
>>>>> 
>>>>>     @Override
>>>>>     public void onRequest() {
>>>>> 
>>>>> 
>>>>> *RequestCycle requestCycle = RequestCycle.get();        Attributes
>>>>> attributes = new Attributes(requestCycle.getRequest(),
>>>>> requestCycle.getResponse(), null);
>>>>> this.documentResource.respond(attributes);*
>>>>>     }
>>>>> }
>>>>> /*** END CODE ***/
>>>>> 
>>>>> /*** STACK TRACE ***/
>>>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
>>>> ********************************
>>>>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
>>>>> Unexpected error occurred
>>>>> java.lang.IllegalStateException: Committed
>>>>> at
>>>> org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
>>>>> at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
>>>>> at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
>>>>> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
>>>>> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>>>> at
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>>>> at
>>>>> 
>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>>>> at
>>>>> 
>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>>> at
>>>>> 
>>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>>>> at
>>>>> org.eclipse.jetty.io
>>>>> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>>>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>> Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
>>>>> Exception retry count exceeded
>>>>> java.lang.IllegalStateException: STREAM
>>>>> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>>>> at
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>>>> at
>>>>> 
>>>>> 
>>>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>>>> at
>>>>> 
>>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>>>> at
>>>>> 
>>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>>> at
>>>>> 
>>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>>>> at
>>>>> org.eclipse.jetty.io
>>>>> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>>>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>>> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>>>> at
>>>>> 
>>>>> 
>>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>>>> at java.lang.Thread.run(Thread.java:745)
>>>>> /*** END STACK TRACE ***/
>>>>> 
>>>> 
>>>> --
>>>> Regards - Ernesto Reinaldo Barreiro
>>>> 
> 
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
> For additional commands, e-mail: users-help@wicket.apache.org
> 

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Streaming a PDF into an iFrame

Posted by Sven Meier <sv...@meiers.net>.
Hi Benjamin,

this just means that the browser closed the connection before the pdf 
was fully loaded from the server, e.g. if the user switches to a 
different page before the iframe has finished loading.

Nothing you need/can do about it.

Have fun
Sven


On 27.08.19 02:13, Benjamin Chew wrote:
> I said thanks too soon. ;)
>
> Now I'm seeing this warning intermittently:
> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> org.eclipse.jetty.io.EofException
> Caused by: org.eclipse.jetty.io.EofException
> Caused by: java.io.IOException: Broken pipe
>
> Is there anything in the DocumentInlineFrame class or the way I'm using it
> that would cause this problem?
>
> Thanks,
> Ben
>
> /*** Calling Class ***/
> queue(new DocumentInlineFrame("ticketsIFrame", new ResourceStreamResource()
> {
>     @Override
>     protected IResourceStream getResourceStream(Attributes attributes) {
>         return
> pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
>     }
> }.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));
>
>
>
> /*** DocumentInlineFrame Class ***/
> public class DocumentInlineFrame extends WebMarkupContainer implements
> IRequestListener {
>      private static final long serialVersionUID = 1 L;
>      private IResource documentResource;
>
>      /**
>       * Constructor receiving an IResourceStream..
>       *
>       * @param id
>       * @param stream
>       */
>      public DocumentInlineFrame(String id, IResourceStream stream) {
>          this(id, new ResourceStreamResource(stream));
>      }
>
>      /**
>       * Constructor receiving an IResource..
>       *
>       * @param id
>       * @param resourceListener
>       */
>      public DocumentInlineFrame(final String id, IResource documentResource)
> {
>          super(id);
>          this.documentResource = documentResource;
>      }
>
>      /**
>       * Gets the url to use for this link.
>       *
>       * @return The URL that this link links to
>       */
>      protected CharSequence getURL() {
>          return urlForListener(null);
>      }
>
>      /**
>       * Handles this frame's tag.
>       *
>       * @param tag the component tag
>       * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>       */
>      @Override
>      protected void onComponentTag(final ComponentTag tag) {
>          checkComponentTag(tag, "iframe");
>
>          // Set href to link to this frame's frameRequested method
>          CharSequence url = getURL();
>
>          // Generate the src attribute
>          tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>
>          super.onComponentTag(tag);
>      }
>
>      @Override
>      protected boolean getStatelessHint() {
>          return false;
>      }
>
>      @Override
>      public boolean rendersPage() {
>          return false;
>      }
>
>      @Override
>      public void onRequest() {
>          RequestCycle requestCycle = RequestCycle.get();
>          Attributes attributes = new Attributes(requestCycle.getRequest(),
> requestCycle.getResponse(), null);
>
>          this.documentResource.respond(attributes);
>      }
> }
>
>
>
> /*** Full Stacktrace ***/
> Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the following exception
> org.apache.wicket.protocol.http.servlet.ResponseIOException:
> org.eclipse.jetty.io.EofException
> at
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
> at
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
> at org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
> at
> com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
> at
> org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
> at
> org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
> at
> com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
> at
> org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
> at
> org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
> at
> org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
> at
> org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
> at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> at
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> at
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> at
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:745)
> Caused by: org.eclipse.jetty.io.EofException
> at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:286)
> at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:393)
> at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
> at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380)
> at
> org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
> at
> org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> at
> org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
> at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
> at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
> at
> org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
> at
> org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
> at
> org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
> at
> org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
> at
> org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
> at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
> at java.io.OutputStream.write(OutputStream.java:75)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
> ... 48 more
> Caused by: java.io.IOException: Broken pipe
> at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
> at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
> at sun.nio.ch.IOUtil.write(IOUtil.java:148)
> at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
> at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:266)
> ... 67 more
>
>
> On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew <bc...@smarthealth.com> wrote:
>
>> Thanks, Sven.
>>
>> And thanks Ernesto for writing that example in the first place!
>>
>> Ben
>>
>>
>> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
>> reiern70@gmail.com> wrote:
>>
>>> Hi,
>>>
>>> Thanks for reporting this. I will fix the example and adapt it to wicket
>>> 8.x.
>>>
>>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew <bc...@smarthealth.com>
>>> wrote:
>>>
>>>> Hi,
>>>>
>>>> I'm pretty new to Wicket, and am trying to figure out how to stream a
>>> PDF
>>>> into an iFrame. I've searched for a solution and come across Ernesto's
>>>> DocumentInlineFrame class here:
>>>>
>>>>
>>>>
>>> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
>>>> Since IResourceListener is no longer a part of Wicket 8, I've modified
>>> the
>>>> class in these ways:
>>>> 1) The class implements IRequestListener
>>>> 2) Return urlForListener(null) in getURL()
>>>> 3) Renamed onResourceRequested() to onRequest()
>>>>
>>>> But I'm getting an error:
>>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error
>>> occurred
>>>> java.lang.IllegalStateException: Committed
>>>>
>>>> The code and full stack trace are below. Any ideas on what I'm doing
>>> wrong?
>>>> Thanks,
>>>> Ben
>>>>
>>>> /*** CODE ***/
>>>> public class DocumentInlineFrame extends WebMarkupContainer implements
>>>> *IRequestListener* {
>>>>      private static final long serialVersionUID = 1 L;
>>>>
>>>>      private IResource documentResource;
>>>>
>>>>      /**
>>>>       * Constructor receiving an IResourceStream..
>>>>       *
>>>>       * @param id
>>>>       * @param stream
>>>>       */
>>>>      public DocumentInlineFrame(String id, IResourceStream stream) {
>>>>          this(id, new ResourceStreamResource(stream));
>>>>      }
>>>>
>>>>      /**
>>>>       * Constructor receiving an IResource..
>>>>       *
>>>>       * @param id
>>>>       * @param resourceListener
>>>>       */
>>>>      public DocumentInlineFrame(final String id, IResource
>>> documentResource)
>>>> {
>>>>          super(id);
>>>>          this.documentResource = documentResource;
>>>>      }
>>>>
>>>>      /**
>>>>       * Gets the url to use for this link.
>>>>       *
>>>>       * @return The URL that this link links to
>>>>       */
>>>>      protected CharSequence getURL() {
>>>>          //return urlForListener(new PageParameters());
>>>>          *return urlForListener(null);*
>>>>      }
>>>>
>>>>      /**
>>>>       * Handles this frame's tag.
>>>>       *
>>>>       * @param tag the component tag
>>>>       * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>>>>       */
>>>>      @Override
>>>>      protected void onComponentTag(final ComponentTag tag) {
>>>>          checkComponentTag(tag, "iframe");
>>>>
>>>>          // Set href to link to this frame's frameRequested method
>>>>          CharSequence url = getURL();
>>>>
>>>>          // generate the src attribute
>>>>          tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>>>>
>>>>          super.onComponentTag(tag);
>>>>      }
>>>>
>>>>      @Override
>>>>      protected boolean getStatelessHint() {
>>>>          return false;
>>>>      }
>>>>
>>>>      @Override
>>>>      public void onRequest() {
>>>>
>>>>
>>>> *RequestCycle requestCycle = RequestCycle.get();        Attributes
>>>> attributes = new Attributes(requestCycle.getRequest(),
>>>> requestCycle.getResponse(), null);
>>>> this.documentResource.respond(attributes);*
>>>>      }
>>>> }
>>>> /*** END CODE ***/
>>>>
>>>> /*** STACK TRACE ***/
>>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
>>> ********************************
>>>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
>>>> Unexpected error occurred
>>>> java.lang.IllegalStateException: Committed
>>>> at
>>> org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
>>>> at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
>>>> at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
>>>> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
>>>> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>>> at
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>>> at
>>>>
>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>>> at
>>>>
>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>> at
>>>>
>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>>> at
>>>> org.eclipse.jetty.io
>>>> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>> Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
>>>> Exception retry count exceeded
>>>> java.lang.IllegalStateException: STREAM
>>>> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>>> at
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>>> at
>>>>
>>>>
>>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>>> at
>>>>
>>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>>> at
>>>>
>>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>>> at
>>>>
>>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>>> at
>>>> org.eclipse.jetty.io
>>>> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>>> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>>> at
>>>>
>>>>
>>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>>> at java.lang.Thread.run(Thread.java:745)
>>>> /*** END STACK TRACE ***/
>>>>
>>>
>>> --
>>> Regards - Ernesto Reinaldo Barreiro
>>>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@wicket.apache.org
For additional commands, e-mail: users-help@wicket.apache.org


Re: Streaming a PDF into an iFrame

Posted by Benjamin Chew <bc...@smarthealth.com>.
I said thanks too soon. ;)

Now I'm seeing this warning intermittently:
org.apache.wicket.protocol.http.servlet.ResponseIOException:
org.eclipse.jetty.io.EofException
Caused by: org.eclipse.jetty.io.EofException
Caused by: java.io.IOException: Broken pipe

Is there anything in the DocumentInlineFrame class or the way I'm using it
that would cause this problem?

Thanks,
Ben

/*** Calling Class ***/
queue(new DocumentInlineFrame("ticketsIFrame", new ResourceStreamResource()
{
   @Override
   protected IResourceStream getResourceStream(Attributes attributes) {
       return
pdfStream(getReports().get(SHTicketUtils.TICKET_REPORT_STRING));
   }
}.setCacheDuration(Duration.NONE).setContentDisposition(ContentDisposition.INLINE).setFileName("Tickets.pdf")));



/*** DocumentInlineFrame Class ***/
public class DocumentInlineFrame extends WebMarkupContainer implements
IRequestListener {
    private static final long serialVersionUID = 1 L;
    private IResource documentResource;

    /**
     * Constructor receiving an IResourceStream..
     *
     * @param id
     * @param stream
     */
    public DocumentInlineFrame(String id, IResourceStream stream) {
        this(id, new ResourceStreamResource(stream));
    }

    /**
     * Constructor receiving an IResource..
     *
     * @param id
     * @param resourceListener
     */
    public DocumentInlineFrame(final String id, IResource documentResource)
{
        super(id);
        this.documentResource = documentResource;
    }

    /**
     * Gets the url to use for this link.
     *
     * @return The URL that this link links to
     */
    protected CharSequence getURL() {
        return urlForListener(null);
    }

    /**
     * Handles this frame's tag.
     *
     * @param tag the component tag
     * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
     */
    @Override
    protected void onComponentTag(final ComponentTag tag) {
        checkComponentTag(tag, "iframe");

        // Set href to link to this frame's frameRequested method
        CharSequence url = getURL();

        // Generate the src attribute
        tag.put("src", Strings.replaceAll(url, "&", "&amp;"));

        super.onComponentTag(tag);
    }

    @Override
    protected boolean getStatelessHint() {
        return false;
    }

    @Override
    public boolean rendersPage() {
        return false;
    }

    @Override
    public void onRequest() {
        RequestCycle requestCycle = RequestCycle.get();
        Attributes attributes = new Attributes(requestCycle.getRequest(),
requestCycle.getResponse(), null);

        this.documentResource.respond(attributes);
    }
}



/*** Full Stacktrace ***/
Aug 26 16:53:20 WARN  RequestCycleExtra  - Handling the following exception
org.apache.wicket.protocol.http.servlet.ResponseIOException:
org.eclipse.jetty.io.EofException
at
org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:127)
at
org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:187)
at org.apache.wicket.request.Response$StreamAdapter.write(Response.java:142)
at
com.smarthealth.wicket.printtickets.components.PrintTicketsModal$2.write(PrintTicketsModal.java:150)
at
org.apache.wicket.request.resource.ResourceStreamResource$1.writeData(ResourceStreamResource.java:195)
at
org.apache.wicket.request.resource.AbstractResource.respond(AbstractResource.java:660)
at
com.smarthealth.shmisc.wicket.components.DocumentInlineFrame.onRequest(DocumentInlineFrame.java:108)
at
org.apache.wicket.core.request.handler.ListenerRequestHandler.internalInvoke(ListenerRequestHandler.java:306)
at
org.apache.wicket.core.request.handler.ListenerRequestHandler.invoke(ListenerRequestHandler.java:255)
at
org.apache.wicket.core.request.handler.ListenerRequestHandler.invokeListener(ListenerRequestHandler.java:215)
at
org.apache.wicket.core.request.handler.ListenerRequestHandler.respond(ListenerRequestHandler.java:208)
at
org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
at
org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
at
org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
at
org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
at
org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
at
org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
at
org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
at
org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
at
org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
at
org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
at
org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
at
org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
at
org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
at org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
at
org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
at
org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
at
org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
at
org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
at
org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
at org.eclipse.jetty.server.Server.handle(Server.java:503)
at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
at
org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
at
org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
at
org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
at
org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
at
org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
at
org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
at java.lang.Thread.run(Thread.java:745)
Caused by: org.eclipse.jetty.io.EofException
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:286)
at org.eclipse.jetty.io.WriteFlusher.flush(WriteFlusher.java:393)
at org.eclipse.jetty.io.WriteFlusher.write(WriteFlusher.java:277)
at org.eclipse.jetty.io.AbstractEndPoint.write(AbstractEndPoint.java:380)
at
org.eclipse.jetty.server.HttpConnection$SendCallback.process(HttpConnection.java:808)
at
org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at
org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
at org.eclipse.jetty.server.HttpConnection.send(HttpConnection.java:538)
at org.eclipse.jetty.server.HttpChannel.sendResponse(HttpChannel.java:836)
at org.eclipse.jetty.server.HttpChannel.write(HttpChannel.java:887)
at
org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor$GzipBufferCB.process(GzipHttpOutputInterceptor.java:398)
at
org.eclipse.jetty.util.IteratingCallback.processing(IteratingCallback.java:241)
at
org.eclipse.jetty.util.IteratingCallback.iterate(IteratingCallback.java:224)
at
org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.gzip(GzipHttpOutputInterceptor.java:148)
at
org.eclipse.jetty.server.handler.gzip.GzipHttpOutputInterceptor.write(GzipHttpOutputInterceptor.java:117)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:239)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:215)
at org.eclipse.jetty.server.HttpOutput.write(HttpOutput.java:535)
at java.io.OutputStream.write(OutputStream.java:75)
at
org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:123)
... 48 more
Caused by: java.io.IOException: Broken pipe
at sun.nio.ch.FileDispatcherImpl.writev0(Native Method)
at sun.nio.ch.SocketDispatcher.writev(SocketDispatcher.java:51)
at sun.nio.ch.IOUtil.write(IOUtil.java:148)
at sun.nio.ch.SocketChannelImpl.write(SocketChannelImpl.java:504)
at org.eclipse.jetty.io.ChannelEndPoint.flush(ChannelEndPoint.java:266)
... 67 more


On Fri, Aug 23, 2019 at 8:16 AM Benjamin Chew <bc...@smarthealth.com> wrote:

> Thanks, Sven.
>
> And thanks Ernesto for writing that example in the first place!
>
> Ben
>
>
> On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
> reiern70@gmail.com> wrote:
>
>> Hi,
>>
>> Thanks for reporting this. I will fix the example and adapt it to wicket
>> 8.x.
>>
>> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew <bc...@smarthealth.com>
>> wrote:
>>
>> > Hi,
>> >
>> > I'm pretty new to Wicket, and am trying to figure out how to stream a
>> PDF
>> > into an iFrame. I've searched for a solution and come across Ernesto's
>> > DocumentInlineFrame class here:
>> >
>> >
>> >
>> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
>> >
>> > Since IResourceListener is no longer a part of Wicket 8, I've modified
>> the
>> > class in these ways:
>> > 1) The class implements IRequestListener
>> > 2) Return urlForListener(null) in getURL()
>> > 3) Renamed onResourceRequested() to onRequest()
>> >
>> > But I'm getting an error:
>> > ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error
>> occurred
>> > java.lang.IllegalStateException: Committed
>> >
>> > The code and full stack trace are below. Any ideas on what I'm doing
>> wrong?
>> >
>> > Thanks,
>> > Ben
>> >
>> > /*** CODE ***/
>> > public class DocumentInlineFrame extends WebMarkupContainer implements
>> > *IRequestListener* {
>> >     private static final long serialVersionUID = 1 L;
>> >
>> >     private IResource documentResource;
>> >
>> >     /**
>> >      * Constructor receiving an IResourceStream..
>> >      *
>> >      * @param id
>> >      * @param stream
>> >      */
>> >     public DocumentInlineFrame(String id, IResourceStream stream) {
>> >         this(id, new ResourceStreamResource(stream));
>> >     }
>> >
>> >     /**
>> >      * Constructor receiving an IResource..
>> >      *
>> >      * @param id
>> >      * @param resourceListener
>> >      */
>> >     public DocumentInlineFrame(final String id, IResource
>> documentResource)
>> > {
>> >         super(id);
>> >         this.documentResource = documentResource;
>> >     }
>> >
>> >     /**
>> >      * Gets the url to use for this link.
>> >      *
>> >      * @return The URL that this link links to
>> >      */
>> >     protected CharSequence getURL() {
>> >         //return urlForListener(new PageParameters());
>> >         *return urlForListener(null);*
>> >     }
>> >
>> >     /**
>> >      * Handles this frame's tag.
>> >      *
>> >      * @param tag the component tag
>> >      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>> >      */
>> >     @Override
>> >     protected void onComponentTag(final ComponentTag tag) {
>> >         checkComponentTag(tag, "iframe");
>> >
>> >         // Set href to link to this frame's frameRequested method
>> >         CharSequence url = getURL();
>> >
>> >         // generate the src attribute
>> >         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>> >
>> >         super.onComponentTag(tag);
>> >     }
>> >
>> >     @Override
>> >     protected boolean getStatelessHint() {
>> >         return false;
>> >     }
>> >
>> >     @Override
>> >     public void onRequest() {
>> >
>> >
>> > *RequestCycle requestCycle = RequestCycle.get();        Attributes
>> > attributes = new Attributes(requestCycle.getRequest(),
>> > requestCycle.getResponse(), null);
>> > this.documentResource.respond(attributes);*
>> >     }
>> > }
>> > /*** END CODE ***/
>> >
>> > /*** STACK TRACE ***/
>> > Aug 22 12:37:54 WARN  RequestCycleExtra  -
>> ********************************
>> > Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
>> > Unexpected error occurred
>> > java.lang.IllegalStateException: Committed
>> > at
>> org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
>> > at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
>> > at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
>> > at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
>> > at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
>> > at
>> >
>> >
>> org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
>> > at
>> >
>> >
>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
>> > at
>> >
>> >
>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>> > at
>> >
>> >
>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>> > at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>> > at
>> >
>> >
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>> > at
>> >
>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>> > at
>> >
>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> > at org.eclipse.jetty.server.Server.handle(Server.java:503)
>> > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>> > at
>> >
>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>> > at
>> > org.eclipse.jetty.io
>> > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>> > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>> > at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>> > at java.lang.Thread.run(Thread.java:745)
>> > Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
>> > Exception retry count exceeded
>> > java.lang.IllegalStateException: STREAM
>> > at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
>> > at
>> >
>> >
>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
>> > at
>> >
>> >
>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>> > at
>> >
>> >
>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>> > at
>> >
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
>> > at
>> >
>> >
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>> > at
>> >
>> >
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>> > at
>> >
>> >
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>> > at
>> >
>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>> > at
>> >
>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>> > at
>> >
>> >
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> > at org.eclipse.jetty.server.Server.handle(Server.java:503)
>> > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>> > at
>> >
>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>> > at
>> > org.eclipse.jetty.io
>> > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>> > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>> > at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>> > at
>> >
>> >
>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>> > at java.lang.Thread.run(Thread.java:745)
>> > /*** END STACK TRACE ***/
>> >
>>
>>
>> --
>> Regards - Ernesto Reinaldo Barreiro
>>
>

Re: Streaming a PDF into an iFrame

Posted by Benjamin Chew <bc...@smarthealth.com>.
Thanks, Sven.

And thanks Ernesto for writing that example in the first place!

Ben


On Fri, Aug 23, 2019 at 4:13 AM Ernesto Reinaldo Barreiro <
reiern70@gmail.com> wrote:

> Hi,
>
> Thanks for reporting this. I will fix the example and adapt it to wicket
> 8.x.
>
> On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew <bc...@smarthealth.com>
> wrote:
>
> > Hi,
> >
> > I'm pretty new to Wicket, and am trying to figure out how to stream a PDF
> > into an iFrame. I've searched for a solution and come across Ernesto's
> > DocumentInlineFrame class here:
> >
> >
> >
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
> >
> > Since IResourceListener is no longer a part of Wicket 8, I've modified
> the
> > class in these ways:
> > 1) The class implements IRequestListener
> > 2) Return urlForListener(null) in getURL()
> > 3) Renamed onResourceRequested() to onRequest()
> >
> > But I'm getting an error:
> > ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error
> occurred
> > java.lang.IllegalStateException: Committed
> >
> > The code and full stack trace are below. Any ideas on what I'm doing
> wrong?
> >
> > Thanks,
> > Ben
> >
> > /*** CODE ***/
> > public class DocumentInlineFrame extends WebMarkupContainer implements
> > *IRequestListener* {
> >     private static final long serialVersionUID = 1 L;
> >
> >     private IResource documentResource;
> >
> >     /**
> >      * Constructor receiving an IResourceStream..
> >      *
> >      * @param id
> >      * @param stream
> >      */
> >     public DocumentInlineFrame(String id, IResourceStream stream) {
> >         this(id, new ResourceStreamResource(stream));
> >     }
> >
> >     /**
> >      * Constructor receiving an IResource..
> >      *
> >      * @param id
> >      * @param resourceListener
> >      */
> >     public DocumentInlineFrame(final String id, IResource
> documentResource)
> > {
> >         super(id);
> >         this.documentResource = documentResource;
> >     }
> >
> >     /**
> >      * Gets the url to use for this link.
> >      *
> >      * @return The URL that this link links to
> >      */
> >     protected CharSequence getURL() {
> >         //return urlForListener(new PageParameters());
> >         *return urlForListener(null);*
> >     }
> >
> >     /**
> >      * Handles this frame's tag.
> >      *
> >      * @param tag the component tag
> >      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
> >      */
> >     @Override
> >     protected void onComponentTag(final ComponentTag tag) {
> >         checkComponentTag(tag, "iframe");
> >
> >         // Set href to link to this frame's frameRequested method
> >         CharSequence url = getURL();
> >
> >         // generate the src attribute
> >         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
> >
> >         super.onComponentTag(tag);
> >     }
> >
> >     @Override
> >     protected boolean getStatelessHint() {
> >         return false;
> >     }
> >
> >     @Override
> >     public void onRequest() {
> >
> >
> > *RequestCycle requestCycle = RequestCycle.get();        Attributes
> > attributes = new Attributes(requestCycle.getRequest(),
> > requestCycle.getResponse(), null);
> > this.documentResource.respond(attributes);*
> >     }
> > }
> > /*** END CODE ***/
> >
> > /*** STACK TRACE ***/
> > Aug 22 12:37:54 WARN  RequestCycleExtra  -
> ********************************
> > Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
> > Unexpected error occurred
> > java.lang.IllegalStateException: Committed
> > at org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> > at
> >
> >
> org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> > at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> > at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> > at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> > at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> > at
> >
> >
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> > at
> >
> >
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> > at
> >
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> > at
> >
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> > at
> >
> >
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > at
> >
> >
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > at
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > at
> >
> >
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > at
> >
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > at
> >
> >
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > at
> >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > at
> >
> >
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > at
> > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > at
> >
> >
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > at
> >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > at
> >
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > at
> > org.eclipse.jetty.io
> > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > at
> >
> >
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > at
> >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > at
> >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > at java.lang.Thread.run(Thread.java:745)
> > Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
> > Exception retry count exceeded
> > java.lang.IllegalStateException: STREAM
> > at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> > at
> >
> >
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> > at
> >
> >
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> > at
> >
> >
> org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> > at
> >
> >
> org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> > at
> >
> >
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> > at
> >
> >
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> > at
> >
> >
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> > at
> >
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> > at
> >
> >
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> > at
> >
> >
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> > at
> >
> >
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> > at
> >
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> > at
> >
> >
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> > at
> >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> > at
> >
> >
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> > at
> > org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> > at
> >
> >
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> > at
> >
> >
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> > at
> >
> >
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> > at org.eclipse.jetty.server.Server.handle(Server.java:503)
> > at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> > at
> >
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> > at
> > org.eclipse.jetty.io
> > .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> > at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> > at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> > at
> >
> >
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> > at
> >
> >
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> > at
> >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> > at
> >
> >
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> > at java.lang.Thread.run(Thread.java:745)
> > /*** END STACK TRACE ***/
> >
>
>
> --
> Regards - Ernesto Reinaldo Barreiro
>

Re: Streaming a PDF into an iFrame

Posted by Ernesto Reinaldo Barreiro <re...@gmail.com>.
Hi,

Thanks for reporting this. I will fix the example and adapt it to wicket
8.x.

On Thu, Aug 22, 2019 at 11:05 PM Benjamin Chew <bc...@smarthealth.com>
wrote:

> Hi,
>
> I'm pretty new to Wicket, and am trying to figure out how to stream a PDF
> into an iFrame. I've searched for a solution and come across Ernesto's
> DocumentInlineFrame class here:
>
>
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
>
> Since IResourceListener is no longer a part of Wicket 8, I've modified the
> class in these ways:
> 1) The class implements IRequestListener
> 2) Return urlForListener(null) in getURL()
> 3) Renamed onResourceRequested() to onRequest()
>
> But I'm getting an error:
> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error occurred
> java.lang.IllegalStateException: Committed
>
> The code and full stack trace are below. Any ideas on what I'm doing wrong?
>
> Thanks,
> Ben
>
> /*** CODE ***/
> public class DocumentInlineFrame extends WebMarkupContainer implements
> *IRequestListener* {
>     private static final long serialVersionUID = 1 L;
>
>     private IResource documentResource;
>
>     /**
>      * Constructor receiving an IResourceStream..
>      *
>      * @param id
>      * @param stream
>      */
>     public DocumentInlineFrame(String id, IResourceStream stream) {
>         this(id, new ResourceStreamResource(stream));
>     }
>
>     /**
>      * Constructor receiving an IResource..
>      *
>      * @param id
>      * @param resourceListener
>      */
>     public DocumentInlineFrame(final String id, IResource documentResource)
> {
>         super(id);
>         this.documentResource = documentResource;
>     }
>
>     /**
>      * Gets the url to use for this link.
>      *
>      * @return The URL that this link links to
>      */
>     protected CharSequence getURL() {
>         //return urlForListener(new PageParameters());
>         *return urlForListener(null);*
>     }
>
>     /**
>      * Handles this frame's tag.
>      *
>      * @param tag the component tag
>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>      */
>     @Override
>     protected void onComponentTag(final ComponentTag tag) {
>         checkComponentTag(tag, "iframe");
>
>         // Set href to link to this frame's frameRequested method
>         CharSequence url = getURL();
>
>         // generate the src attribute
>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>
>         super.onComponentTag(tag);
>     }
>
>     @Override
>     protected boolean getStatelessHint() {
>         return false;
>     }
>
>     @Override
>     public void onRequest() {
>
>
> *RequestCycle requestCycle = RequestCycle.get();        Attributes
> attributes = new Attributes(requestCycle.getRequest(),
> requestCycle.getResponse(), null);
> this.documentResource.respond(attributes);*
>     }
> }
> /*** END CODE ***/
>
> /*** STACK TRACE ***/
> Aug 22 12:37:54 WARN  RequestCycleExtra  - ********************************
> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
> Unexpected error occurred
> java.lang.IllegalStateException: Committed
> at org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> at
>
> org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> at
>
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> at
>
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> at
>
> org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> at
>
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> at
>
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> at
>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> at
>
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> at
>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> at
>
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> at
>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> at
>
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> at
>
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> at
>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> at
>
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> at
>
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> at
>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> at
> org.eclipse.jetty.io
> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> at
>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> at
>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> at
>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> at
>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> at
>
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:745)
> Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
> Exception retry count exceeded
> java.lang.IllegalStateException: STREAM
> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> at
>
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> at
>
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> at
>
> org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> at
>
> org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> at
>
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> at
>
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> at
>
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> at
>
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> at
>
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> at
>
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> at
>
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> at
>
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> at
>
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> at
>
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> at
>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> at
>
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> at
>
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> at
>
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> at
>
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> at
>
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> at
> org.eclipse.jetty.io
> .AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> at
>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> at
>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> at
>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> at
>
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> at
>
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> at
>
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:745)
> /*** END STACK TRACE ***/
>


-- 
Regards - Ernesto Reinaldo Barreiro

Re: Streaming a PDF into an iFrame

Posted by Sven Meier <sv...@meiers.net>.
Hi Ben,

great that you've solved the issue already.

Indeed, with that method you tell Wicket not to schedule an AjaxRequestHandler.

Sven

Am 23. August 2019 00:30:26 MESZ schrieb Benjamin Chew <bc...@smarthealth.com>:
>I solved this! I added this to the class and it worked:
>
>@Override
>public boolean rendersPage() {
>    return false;
>}
>
>Thanks,
>Ben
>
>
>On Thu, Aug 22, 2019 at 1:33 PM Benjamin Chew <bc...@smarthealth.com>
>wrote:
>
>> I forgot to add that this iframe is loaded in an ajax modal of base
>class
>> GenericPanel.
>>
>> Thanks,
>> Ben
>>
>>
>> On Thu, Aug 22, 2019 at 1:04 PM Benjamin Chew <bc...@smarthealth.com>
>> wrote:
>>
>>> Hi,
>>>
>>> I'm pretty new to Wicket, and am trying to figure out how to stream
>a PDF
>>> into an iFrame. I've searched for a solution and come across
>Ernesto's
>>> DocumentInlineFrame class here:
>>>
>>>
>>>
>https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
>>>
>>> Since IResourceListener is no longer a part of Wicket 8, I've
>modified
>>> the class in these ways:
>>> 1) The class implements IRequestListener
>>> 2) Return urlForListener(null) in getURL()
>>> 3) Renamed onResourceRequested() to onRequest()
>>>
>>> But I'm getting an error:
>>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error
>>> occurred
>>> java.lang.IllegalStateException: Committed
>>>
>>> The code and full stack trace are below. Any ideas on what I'm doing
>>> wrong?
>>>
>>> Thanks,
>>> Ben
>>>
>>> /*** CODE ***/
>>> public class DocumentInlineFrame extends WebMarkupContainer
>implements
>>> *IRequestListener* {
>>>     private static final long serialVersionUID = 1 L;
>>>
>>>     private IResource documentResource;
>>>
>>>     /**
>>>      * Constructor receiving an IResourceStream..
>>>      *
>>>      * @param id
>>>      * @param stream
>>>      */
>>>     public DocumentInlineFrame(String id, IResourceStream stream) {
>>>         this(id, new ResourceStreamResource(stream));
>>>     }
>>>
>>>     /**
>>>      * Constructor receiving an IResource..
>>>      *
>>>      * @param id
>>>      * @param resourceListener
>>>      */
>>>     public DocumentInlineFrame(final String id, IResource
>>> documentResource) {
>>>         super(id);
>>>         this.documentResource = documentResource;
>>>     }
>>>
>>>     /**
>>>      * Gets the url to use for this link.
>>>      *
>>>      * @return The URL that this link links to
>>>      */
>>>     protected CharSequence getURL() {
>>>         //return urlForListener(new PageParameters());
>>>         *return urlForListener(null);*
>>>     }
>>>
>>>     /**
>>>      * Handles this frame's tag.
>>>      *
>>>      * @param tag the component tag
>>>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>>>      */
>>>     @Override
>>>     protected void onComponentTag(final ComponentTag tag) {
>>>         checkComponentTag(tag, "iframe");
>>>
>>>         // Set href to link to this frame's frameRequested method
>>>         CharSequence url = getURL();
>>>
>>>         // generate the src attribute
>>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>>>
>>>         super.onComponentTag(tag);
>>>     }
>>>
>>>     @Override
>>>     protected boolean getStatelessHint() {
>>>         return false;
>>>     }
>>>
>>>     @Override
>>>     public void onRequest() {
>>>
>>>
>>> *RequestCycle requestCycle = RequestCycle.get();        Attributes
>>> attributes = new Attributes(requestCycle.getRequest(),
>>> requestCycle.getResponse(), null);
>>> this.documentResource.respond(attributes);*
>>>     }
>>> }
>>> /*** END CODE ***/
>>>
>>> /*** STACK TRACE ***/
>>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
>>> ********************************
>>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
>>> Unexpected error occurred
>>> java.lang.IllegalStateException: Committed
>>> at
>org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
>>> at
>>>
>org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
>>> at
>org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
>>> at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
>>> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
>>> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
>>> at
>>>
>org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
>>> at
>>>
>org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
>>> at
>>>
>org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
>>> at
>>>
>org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
>>> at
>>>
>org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>> at
>>>
>org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>> at
>>>
>org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>> at
>>>
>org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>> at
>>>
>org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>> at
>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>> at
>>>
>org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>> at
>>>
>org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>> at
>>>
>org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>> at
>>>
>org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>> at
>>>
>org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>> at
>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>> at
>>>
>org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>> at
>>>
>org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>> at
>org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>> at
>>>
>org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>> at
>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>> at
>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>> at java.lang.Thread.run(Thread.java:745)
>>> Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle 
>-
>>> Exception retry count exceeded
>>> java.lang.IllegalStateException: STREAM
>>> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
>>> at
>>>
>org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
>>> at
>>>
>org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
>>> at
>>>
>org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
>>> at
>>>
>org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
>>> at
>>>
>org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
>>> at
>>>
>org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>>> at
>>>
>org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
>>> at
>>>
>org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>>> at
>>>
>org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>>> at
>>>
>org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>>> at
>>>
>org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>>> at
>>>
>org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>>> at
>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>>> at
>>>
>org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>>> at
>>>
>org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>>> at
>>>
>org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>>> at
>>>
>org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>>> at
>>>
>org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>>> at
>>>
>org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>>> at
>>>
>org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>>> at
>>>
>org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>>> at
>>>
>org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>>> at
>org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>>> at
>>>
>org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>>> at
>>>
>org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>>> at
>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>>> at
>>>
>org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>>> at java.lang.Thread.run(Thread.java:745)
>>> /*** END STACK TRACE ***/
>>>
>>

Re: Streaming a PDF into an iFrame

Posted by Benjamin Chew <bc...@smarthealth.com>.
I solved this! I added this to the class and it worked:

@Override
public boolean rendersPage() {
    return false;
}

Thanks,
Ben


On Thu, Aug 22, 2019 at 1:33 PM Benjamin Chew <bc...@smarthealth.com> wrote:

> I forgot to add that this iframe is loaded in an ajax modal of base class
> GenericPanel.
>
> Thanks,
> Ben
>
>
> On Thu, Aug 22, 2019 at 1:04 PM Benjamin Chew <bc...@smarthealth.com>
> wrote:
>
>> Hi,
>>
>> I'm pretty new to Wicket, and am trying to figure out how to stream a PDF
>> into an iFrame. I've searched for a solution and come across Ernesto's
>> DocumentInlineFrame class here:
>>
>>
>> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
>>
>> Since IResourceListener is no longer a part of Wicket 8, I've modified
>> the class in these ways:
>> 1) The class implements IRequestListener
>> 2) Return urlForListener(null) in getURL()
>> 3) Renamed onResourceRequested() to onRequest()
>>
>> But I'm getting an error:
>> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error
>> occurred
>> java.lang.IllegalStateException: Committed
>>
>> The code and full stack trace are below. Any ideas on what I'm doing
>> wrong?
>>
>> Thanks,
>> Ben
>>
>> /*** CODE ***/
>> public class DocumentInlineFrame extends WebMarkupContainer implements
>> *IRequestListener* {
>>     private static final long serialVersionUID = 1 L;
>>
>>     private IResource documentResource;
>>
>>     /**
>>      * Constructor receiving an IResourceStream..
>>      *
>>      * @param id
>>      * @param stream
>>      */
>>     public DocumentInlineFrame(String id, IResourceStream stream) {
>>         this(id, new ResourceStreamResource(stream));
>>     }
>>
>>     /**
>>      * Constructor receiving an IResource..
>>      *
>>      * @param id
>>      * @param resourceListener
>>      */
>>     public DocumentInlineFrame(final String id, IResource
>> documentResource) {
>>         super(id);
>>         this.documentResource = documentResource;
>>     }
>>
>>     /**
>>      * Gets the url to use for this link.
>>      *
>>      * @return The URL that this link links to
>>      */
>>     protected CharSequence getURL() {
>>         //return urlForListener(new PageParameters());
>>         *return urlForListener(null);*
>>     }
>>
>>     /**
>>      * Handles this frame's tag.
>>      *
>>      * @param tag the component tag
>>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>>      */
>>     @Override
>>     protected void onComponentTag(final ComponentTag tag) {
>>         checkComponentTag(tag, "iframe");
>>
>>         // Set href to link to this frame's frameRequested method
>>         CharSequence url = getURL();
>>
>>         // generate the src attribute
>>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>>
>>         super.onComponentTag(tag);
>>     }
>>
>>     @Override
>>     protected boolean getStatelessHint() {
>>         return false;
>>     }
>>
>>     @Override
>>     public void onRequest() {
>>
>>
>> *RequestCycle requestCycle = RequestCycle.get();        Attributes
>> attributes = new Attributes(requestCycle.getRequest(),
>> requestCycle.getResponse(), null);
>> this.documentResource.respond(attributes);*
>>     }
>> }
>> /*** END CODE ***/
>>
>> /*** STACK TRACE ***/
>> Aug 22 12:37:54 WARN  RequestCycleExtra  -
>> ********************************
>> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
>> Unexpected error occurred
>> java.lang.IllegalStateException: Committed
>> at org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
>> at
>> org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
>> at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
>> at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
>> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
>> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
>> at
>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
>> at
>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
>> at
>> org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
>> at
>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
>> at
>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>> at
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>> at
>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>> at
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>> at
>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>> at
>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>> at
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>> at
>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>> at
>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>> at
>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>> at
>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>> at
>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>> at
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>> at
>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>> at
>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>> at
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>> at
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>> at
>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>> at java.lang.Thread.run(Thread.java:745)
>> Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
>> Exception retry count exceeded
>> java.lang.IllegalStateException: STREAM
>> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
>> at
>> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
>> at
>> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
>> at
>> org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
>> at
>> org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
>> at
>> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
>> at
>> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
>> at
>> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
>> at
>> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
>> at
>> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
>> at
>> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
>> at
>> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
>> at
>> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
>> at
>> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
>> at
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
>> at
>> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
>> at
>> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
>> at
>> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
>> at
>> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
>> at
>> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
>> at
>> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
>> at
>> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
>> at org.eclipse.jetty.server.Server.handle(Server.java:503)
>> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
>> at
>> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
>> at
>> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
>> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
>> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
>> at
>> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
>> at
>> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
>> at
>> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
>> at
>> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
>> at java.lang.Thread.run(Thread.java:745)
>> /*** END STACK TRACE ***/
>>
>

Re: Streaming a PDF into an iFrame

Posted by Benjamin Chew <bc...@smarthealth.com>.
I forgot to add that this iframe is loaded in an ajax modal of base class
GenericPanel.

Thanks,
Ben


On Thu, Aug 22, 2019 at 1:04 PM Benjamin Chew <bc...@smarthealth.com> wrote:

> Hi,
>
> I'm pretty new to Wicket, and am trying to figure out how to stream a PDF
> into an iFrame. I've searched for a solution and come across Ernesto's
> DocumentInlineFrame class here:
>
>
> https://github.com/reiern70/antilia-bits/blob/master/content-iframe/src/main/java/com/antilia/iframe/DocumentInlineFrame.java
>
> Since IResourceListener is no longer a part of Wicket 8, I've modified the
> class in these ways:
> 1) The class implements IRequestListener
> 2) Return urlForListener(null) in getURL()
> 3) Renamed onResourceRequested() to onRequest()
>
> But I'm getting an error:
> ERROR org.apache.wicket.DefaultExceptionMapper  - Unexpected error occurred
> java.lang.IllegalStateException: Committed
>
> The code and full stack trace are below. Any ideas on what I'm doing wrong?
>
> Thanks,
> Ben
>
> /*** CODE ***/
> public class DocumentInlineFrame extends WebMarkupContainer implements
> *IRequestListener* {
>     private static final long serialVersionUID = 1 L;
>
>     private IResource documentResource;
>
>     /**
>      * Constructor receiving an IResourceStream..
>      *
>      * @param id
>      * @param stream
>      */
>     public DocumentInlineFrame(String id, IResourceStream stream) {
>         this(id, new ResourceStreamResource(stream));
>     }
>
>     /**
>      * Constructor receiving an IResource..
>      *
>      * @param id
>      * @param resourceListener
>      */
>     public DocumentInlineFrame(final String id, IResource
> documentResource) {
>         super(id);
>         this.documentResource = documentResource;
>     }
>
>     /**
>      * Gets the url to use for this link.
>      *
>      * @return The URL that this link links to
>      */
>     protected CharSequence getURL() {
>         //return urlForListener(new PageParameters());
>         *return urlForListener(null);*
>     }
>
>     /**
>      * Handles this frame's tag.
>      *
>      * @param tag the component tag
>      * @see org.apache.wicket.Component#onComponentTag(ComponentTag)
>      */
>     @Override
>     protected void onComponentTag(final ComponentTag tag) {
>         checkComponentTag(tag, "iframe");
>
>         // Set href to link to this frame's frameRequested method
>         CharSequence url = getURL();
>
>         // generate the src attribute
>         tag.put("src", Strings.replaceAll(url, "&", "&amp;"));
>
>         super.onComponentTag(tag);
>     }
>
>     @Override
>     protected boolean getStatelessHint() {
>         return false;
>     }
>
>     @Override
>     public void onRequest() {
>
>
> *RequestCycle requestCycle = RequestCycle.get();        Attributes
> attributes = new Attributes(requestCycle.getRequest(),
> requestCycle.getResponse(), null);
> this.documentResource.respond(attributes);*
>     }
> }
> /*** END CODE ***/
>
> /*** STACK TRACE ***/
> Aug 22 12:37:54 WARN  RequestCycleExtra  - ********************************
> Aug 22 12:37:54 ERROR org.apache.wicket.DefaultExceptionMapper  -
> Unexpected error occurred
> java.lang.IllegalStateException: Committed
> at org.eclipse.jetty.server.HttpChannel.resetBuffer(HttpChannel.java:894)
> at
> org.eclipse.jetty.server.HttpOutput$Interceptor.resetBuffer(HttpOutput.java:116)
> at org.eclipse.jetty.server.HttpOutput.resetBuffer(HttpOutput.java:959)
> at org.eclipse.jetty.server.Response.resetBuffer(Response.java:1312)
> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:720)
> at org.eclipse.jetty.server.Response.sendRedirect(Response.java:729)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.sendRedirect(ServletWebResponse.java:288)
> at
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.sendRedirect(HeaderBufferingWebResponse.java:117)
> at
> org.apache.wicket.request.handler.render.WebPageRenderer.redirectTo(WebPageRenderer.java:161)
> at
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:280)
> at
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> at
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:253)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> at
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> at
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:745)
> Aug 22 12:37:54 ERROR org.apache.wicket.request.cycle.RequestCycle  -
> Exception retry count exceeded
> java.lang.IllegalStateException: STREAM
> at org.eclipse.jetty.server.Response.getWriter(Response.java:931)
> at
> org.apache.wicket.protocol.http.servlet.ServletWebResponse.write(ServletWebResponse.java:110)
> at
> org.apache.wicket.protocol.http.HeaderBufferingWebResponse.write(HeaderBufferingWebResponse.java:179)
> at
> org.apache.wicket.protocol.http.BufferedWebResponse$WriteCharSequenceAction.invoke(BufferedWebResponse.java:171)
> at
> org.apache.wicket.protocol.http.BufferedWebResponse.writeTo(BufferedWebResponse.java:602)
> at
> org.apache.wicket.request.handler.render.WebPageRenderer.respond(WebPageRenderer.java:198)
> at
> org.apache.wicket.core.request.handler.RenderPageRequestHandler.respond(RenderPageRequestHandler.java:202)
> at
> org.apache.wicket.request.cycle.RequestCycle$HandlerExecutor.respond(RequestCycle.java:914)
> at
> org.apache.wicket.request.RequestHandlerExecutor.execute(RequestHandlerExecutor.java:65)
> at
> org.apache.wicket.request.cycle.RequestCycle.execute(RequestCycle.java:282)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:327)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.executeExceptionRequestHandler(RequestCycle.java:335)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequest(RequestCycle.java:259)
> at
> org.apache.wicket.request.cycle.RequestCycle.processRequestAndDetach(RequestCycle.java:221)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequestCycle(WicketFilter.java:275)
> at
> org.apache.wicket.protocol.http.WicketFilter.processRequest(WicketFilter.java:206)
> at
> org.apache.wicket.protocol.http.WicketFilter.doFilter(WicketFilter.java:299)
> at
> org.eclipse.jetty.servlet.ServletHandler$CachedChain.doFilter(ServletHandler.java:1642)
> at
> org.eclipse.jetty.servlet.ServletHandler.doHandle(ServletHandler.java:533)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:146)
> at
> org.eclipse.jetty.server.handler.gzip.GzipHandler.handle(GzipHandler.java:740)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:257)
> at
> org.eclipse.jetty.server.session.SessionHandler.doHandle(SessionHandler.java:1595)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextHandle(ScopedHandler.java:255)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doHandle(ContextHandler.java:1340)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:203)
> at
> org.eclipse.jetty.servlet.ServletHandler.doScope(ServletHandler.java:473)
> at
> org.eclipse.jetty.server.session.SessionHandler.doScope(SessionHandler.java:1564)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.nextScope(ScopedHandler.java:201)
> at
> org.eclipse.jetty.server.handler.ContextHandler.doScope(ContextHandler.java:1242)
> at
> org.eclipse.jetty.server.handler.ScopedHandler.handle(ScopedHandler.java:144)
> at
> org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:132)
> at org.eclipse.jetty.server.Server.handle(Server.java:503)
> at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:364)
> at
> org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:260)
> at
> org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:305)
> at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:103)
> at org.eclipse.jetty.io.ChannelEndPoint$2.run(ChannelEndPoint.java:118)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:333)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:310)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:168)
> at
> org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:126)
> at
> org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:366)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:765)
> at
> org.eclipse.jetty.util.thread.QueuedThreadPool$2.run(QueuedThreadPool.java:683)
> at java.lang.Thread.run(Thread.java:745)
> /*** END STACK TRACE ***/
>