Anyway, you'd have to checkout cxf trunk, apply the patch, build.
Then checkout servicemix trunk, change the cxf version in the root pom
to the cxf version you just built, compile ... and test.

Well, i suppose it may be easier to create a junit test to reroduce
the problem and test the fix.

On 9/21/07, Ryan Moquin <[EMAIL PROTECTED]> wrote:
> 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/
> >
>


-- 
Cheers,
Guillaume Nodet
------------------------
Blog: http://gnodet.blogspot.com/

Reply via email to