Should I patch the latest CXF in the source repository, build it and then
check out the latest servicemix and build that?

Do I need to do anything to the service archives in the snapshot I
downloaded and deployed the other day?  I guess I'm not sure the proper way
to build and test, versionwise.

On 9/21/07, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
>
> I don't have the time right now to reproduce the problem, but I think
> I've seen what happens.  If you go beyond a threshold, the
> CacheOutputStream will replace the current ByteArrayOutputStream by a
> BufferedOutputStream writing to a file.  So applying the following
> patch should fix the problem:
>
> Index:
> src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> ===================================================================
> ---
> src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> (revision 577013)
> +++
> src/main/java/org/apache/cxf/transport/jbi/JBIDestinationOutputStream.java
> (working copy)
> @@ -19,8 +19,6 @@
>
> package org.apache.cxf.transport.jbi;
>
> -import java.io.ByteArrayInputStream;
> -import java.io.ByteArrayOutputStream;
> import java.io.IOException;
> import java.util.logging.Level;
> import java.util.logging.Logger;
> @@ -72,15 +70,12 @@
>              if (inMessage.getExchange().isOneWay()) {
>                  return;
>              } else {
> -
> -                ByteArrayOutputStream baos =
> (ByteArrayOutputStream)getOut();
> -                ByteArrayInputStream bais = new
> ByteArrayInputStream(baos.toByteArray());
>                  LOG.finest(new org.apache.cxf.common.i18n.Message(
>                      "BUILDING.DOCUMENT", LOG).toString());
>                  DocumentBuilderFactory docBuilderFactory =
> DocumentBuilderFactory.newInstance();
>                  docBuilderFactory.setNamespaceAware(true);
>                  DocumentBuilder builder =
> docBuilderFactory.newDocumentBuilder();
> -                Document doc = builder.parse(bais);
> +                Document doc = builder.parse(getInputStream());
>
>                  MessageExchange xchng = inMessage.get(
> MessageExchange.class);
>                  LOG.fine(new org.apache.cxf.common.i18n.Message(
>
>
> Could you raise a JIRA issue and try to setup a test case for that
> please ? Or apply the patch, rebuild cxf, servicemix and see if it
> solves your problem ...
>
> On 9/21/07, Ryan Moquin <[EMAIL PROTECTED]> wrote:
> > http://issues.apache.org/jira/browse/CXF-99
> >
> > It looks like this problem was never fixed completely because when I get
> my
> > exception I'm sending a large amount of data, but when I send a small
> > amount, then CXF doesn't die out.
> >
> > Can anyone point me in the right direction towards diagnosing this?  It
> > doesn't appear CXF would end up with a BufferedOutputStream to have a
> > ClassCastException with....
> >
> > This is with 2.0.1 BTW
> >
> > On 9/21/07, Ryan Moquin <[EMAIL PROTECTED]> wrote:
> > >
> > > Sorry, I didn't finish that message, at the end is a line of
> code.  This
> > > is line 76 in JBIDestinationOutputStream where the exception occurs:
> > >
> > > ByteArrayOutputStream baos = (ByteArrayOutputStream)getOut( );
> > >
> > >
> > > On 9/21/07, Ryan Moquin <[EMAIL PROTECTED]> wrote:
> > > >
> > > > I'm testing my newly converted XFire to CXF services and so far I
> > > > haven't gotten a single request to complete successfully.  Currently
> when I
> > > > make a request to one of my methods that simple returns a
> preconstructed
> > > > JAXB object, I get the following exception.  This used to work with
> XFire,
> > > > so I'm assuming it's something internally with CXF.  Is there any
> reason
> > > > this might happen?  Is it a jar dependency problem?
> > > >
> > > > Sep 21, 2007 12:00:29 PM
> > > >
> org.apache.cxf.transport.jbi.JBIDestinationOutputStreamcommitOutputMessage
> > > > SEVERE: error sending Out message
> > > > java.lang.ClassCastException: java.io.BufferedOutputStream
> > > >         at
> > > >
> org.apache.cxf.transport.jbi.JBIDestinationOutputStream.commitOutputMessage
> > > > (JBIDestinationOutputStream.java:76
> > > > )
> > > >         at
> > > > org.apache.cxf.transport.jbi.JBIDestinationOutputStream.doClose(
> > > > JBIDestinationOutputStream.java :62)
> > > >         at org.apache.cxf.io.CachedOutputStream.close(
> > > > CachedOutputStream.java:119)
> > > >         at org.apache.cxf.transport.AbstractConduit.close(
> > > > AbstractConduit.java:66)
> > > >         at
> > > >
> org.apache.cxf.interceptor.MessageSenderInterceptor$MessageSenderEndingInterceptor.handleMessage
> (MessageSender
> > > > Interceptor.java:62)
> > > >         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> > > > PhaseInterceptorChain.java:207)
> > > >         at
> > > > org.apache.cxf.interceptor.OutgoingChainInterceptor.handleMessage(
> > > > OutgoingChainInterceptor.java :73)
> > > >         at org.apache.cxf.phase.PhaseInterceptorChain.doIntercept(
> > > > PhaseInterceptorChain.java:207)
> > > >         at
> org.apache.cxf.transport.ChainInitiationObserver.onMessage(
> > > > ChainInitiationObserver.java:73)
> > > >         at org.apache.cxf.transport.jbi.JBIDispatcherUtil.dispatch(
> > > > JBIDispatcherUtil.java:148)
> > > >         at org.apache.servicemix.cxfse.CxfSeEndpoint.process(
> > > > CxfSeEndpoint.java:167)
> > > >         at org.apache.servicemix.common.AsyncBaseLifeCycle.doProcess(
> > > > AsyncBaseLifeCycle.java:538)
> > > >
> > > > ByteArrayOutputStream baos = (ByteArrayOutputStream)getOut();
> > >
> > >
> > >
> >
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
>

Reply via email to