Ohhhh ok, that was my initial thought, but then I decided it read as though
I could actually get it from my bean component without modifiying the
source.  No problem, now that I follow you.. I'll go ahead and try it.

Out of curiosity though, if my bean is sending a message to itself for some
reason.. isn't that a sign of a bigger problem?  I'm trying to send a
message to my jms component....

On Mon, Jun 23, 2008 at 10:59 AM, Guillaume Nodet <[EMAIL PROTECTED]> wrote:

> Sorry, I was suggesting that you modify the BeanEndpoint, recompile
> the component and install it instead of the old one.
> You can compile 3.2.x branch by checking it out from;
>   http://svn.apache.org/repos/asf/servicemix/smx3/branches/servicemix-3.2
> Then run:
>   mvn install -Pstep1 -Dmaven.test.skip=true
>   mvn install -Pstep2 -Dmaven.test.skip=true
> You may be able to simply hack the component and recompile it without
> compiling the whole tree:
>   cd deployables/serviceengines/servicemix-bean
>   mvn install
>
> On Mon, Jun 23, 2008 at 4:52 PM, Ryan Moquin <[EMAIL PROTECTED]>
> wrote:
> > I feel dumb asking this, but I've been looking at the source code and I'm
> > not sure how to test out your suggestion?  How am I able to retrieve the
> > current request?  It looks like it's contained in a parent object that
> isn't
> > accessible to my bean?
> >
> > On Mon, Jun 23, 2008 at 6:01 AM, Guillaume Nodet <[EMAIL PROTECTED]>
> wrote:
> >
> >> Could you please test something ?
> >> In the BeanEndpoint, save the old value for the currentRequest.get()
> >> in a local variable before setting it to the new value, and instead of
> >> setting it to null after processing, set it back to the old value.  It
> >> may fix the problem ...
> >>
> >> On Mon, Jun 23, 2008 at 11:58 AM, Guillaume Nodet <[EMAIL PROTECTED]>
> >> wrote:
> >> > I'm wondering if for some reason your endpoint sends a request to
> itself
> >> ?
> >> > If this request is handled synchronously, it may happen that the
> >> > currentRequest is set to null while handling this request, but in the
> >> > same thread as the first request ?
> >> > Under high load, this behavior could happen if the thread pool is
> >> > exhausted, because under such conditions, the work will be executed in
> >> > the same thread...
> >> >
> >> > On Mon, Jun 23, 2008 at 9:52 AM, Ryan Moquin <[EMAIL PROTECTED]>
> >> wrote:
> >> >> Oh right, because the thread obviously would be the one that would go
> >> >> through onMessageExchange method and then it would be set to null
> >> after...
> >> >> (bear with me, long weekend dealing with this problem and it's 4am on
> a
> >> >> workday.. haha).
> >> >>
> >> >> It's a rather large bean, composed of several classes (it does a lot
> of
> >> >> complicated stuff inside the bean)... but I could probably send you
> some
> >> >> pieces of it... do you mind if I email them privately to you?
> >> >>
> >> >> On Mon, Jun 23, 2008 at 3:44 AM, Guillaume Nodet <[EMAIL PROTECTED]>
> >> wrote:
> >> >>
> >> >>> But the current request is only set to null *after* calling the
> pojo.
> >> >>>  Do you have the full code of you bean ?
> >> >>>
> >> >>> On Mon, Jun 23, 2008 at 9:31 AM, Ryan Moquin <
> [EMAIL PROTECTED]>
> >> >>> wrote:
> >> >>> > Sure, I backed out the changes in my editor.. basically my bean is
> >> >>> standard
> >> >>> > compared to the servicemix docs (for how to handle the exchange
> >> coming
> >> >>> in),
> >> >>> > then my bean takes the injected deliverychannel and hands it to a
> >> class
> >> >>> that
> >> >>> > creates a message to send out with results of some analysis
> >> performed..
> >> >>> here
> >> >>> > is the code to send out (it's using the DeliveryChannel injected
> into
> >> the
> >> >>> > bean by Servicemix):
> >> >>> >
> >> >>> > Marshaller notificationMarshaller =
> jaxbContext.createMarshaller();
> >> >>> >
> >>  notificationMarshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT,
> >> >>> > Boolean.TRUE);
> >> >>> >      notificationMarshaller.marshal(notification, writer);
> >> >>> >      if (destinationQname == null) {
> >> >>> >        destinationQname = new QName(getDestinationNamespace(),
> >> >>> > getDestinationService());
> >> >>> >      }
> >> >>> >      MessageExchangeFactory exchangeFactory =
> >> >>> > deliveryChannel.createExchangeFactory();
> >> >>> >      InOnly exchange = exchangeFactory.createInOnlyExchange();
> >> >>> >      NormalizedMessage message = exchange.createMessage();
> >> >>> >      message.setContent(new StringSource(writer.toString()));
> >> >>> >      exchange.setInMessage(message);
> >> >>> >      exchange.setService(destinationQname);
> >> >>> >      deliveryChannel.send(exchange);
> >> >>> >
> >> >>> > The send is where the ConcurrentHashmap complains about an NPE ..
> I
> >> think
> >> >>> > because the BeanComponent sets the CurrentRequest to null around
> the
> >> time
> >> >>> my
> >> >>> > code is trying to send a request that must get clobbered?  There's
> no
> >> >>> other
> >> >>> > explanation for it.. it looks like the NPE is caused by
> >> >>> > currentRequest.get(), which is set back to null by the
> BeanComponent
> >> and
> >> >>> > since they are in the same thread.... they interfere.
> >> >>> >
> >> >>> > Ryan
> >> >>> >
> >> >>> > On Mon, Jun 23, 2008 at 3:24 AM, Guillaume Nodet <
> [EMAIL PROTECTED]>
> >> >>> wrote:
> >> >>> >
> >> >>> >> Is there any way you could paste the code of the bean you're
> using
> >> so
> >> >>> >> that i can have a quick look. You can skip any non-jbi related
> >> >>> >> processing...
> >> >>> >>
> >> >>> >> On Mon, Jun 23, 2008 at 9:18 AM, Ryan Moquin <
> >> [EMAIL PROTECTED]>
> >> >>> >> wrote:
> >> >>> >> > No, I'm just simply using the deliverychannel to send out,
> which
> >> is
> >> >>> >> > mentioned in the servicemix docs as something that you can do.
>  I
> >> >>> assume
> >> >>> >> > that means it's recommended :)  I did see that I can inject a
> >> >>> >> > ComponentContext and so I'm currently changing my outbound
> >> messages to
> >> >>> >> that
> >> >>> >> > to see if I can get around this problem.  I think I just can't
> use
> >> the
> >> >>> >> > DeliveryContext in the same Pojo (same thread).
> >> >>> >> >
> >> >>> >> > On Mon, Jun 23, 2008 at 3:11 AM, Guillaume Nodet <
> >> [EMAIL PROTECTED]>
> >> >>> >> wrote:
> >> >>> >> >
> >> >>> >> >> The NPE in the PojoChannel.send() method means that the
> >> >>> >> >> currentRequest.get() is null.
> >> >>> >> >> Do you perform any threading operation in the pojo ? If yes,
> you
> >> >>> >> >> should try to remove that, as the component is already able to
> >> handle
> >> >>> >> >> concurrent requests.
> >> >>> >> >>
> >> >>> >> >> On Sat, Jun 21, 2008 at 6:48 AM, Ryan Moquin <
> >> [EMAIL PROTECTED]
> >> >>> >
> >> >>> >> >> wrote:
> >> >>> >> >> > I hate to say this Bruce, but unfortunately 3.2.2 is working
> >> pretty
> >> >>> >> bad
> >> >>> >> >> for
> >> >>> >> >> > me and has the same problem :(  It only seems to affect our
> >> >>> production
> >> >>> >> >> > server and in a few minutes after start up, I start getting
> the
> >> >>> >> >> > NullPointerException.. slowly all my services start doing it
> >> and
> >> >>> they
> >> >>> >> all
> >> >>> >> >> > stop working.  If I stop and restart servicemix, then
> >> >>> servicemix-jms
> >> >>> >> >> > components are no longer routable.  I'm guessing this error
> >> causes
> >> >>> >> >> > Servicemix to shut them down and not deploy them anymore
> >> >>> (Servicemix
> >> >>> >> does
> >> >>> >> >> > the same thing if a service unit starts up, tries to make a
> >> Joram
> >> >>> >> >> connection
> >> >>> >> >> > to a server that isn't up, servicemix will shutdown that SU
> and
> >> >>> will
> >> >>> >> >> always
> >> >>> >> >> > shut it down immediately after it starts on any subsequent
> >> run).
> >> >>> >> >> >
> >> >>> >> >> > It seems like this problem must be related to a race
> condition.
> >> >>>  When
> >> >>> >> >> doing
> >> >>> >> >> > development testing, I never see this problem on my laptop
> even
> >> >>> under
> >> >>> >> >> high
> >> >>> >> >> > load.  One our fast test server, I see this error popup once
> on
> >> >>> >> startup
> >> >>> >> >> and
> >> >>> >> >> > then it doesn't seem to happen again.  On our even faster
> >> >>> production
> >> >>> >> >> server,
> >> >>> >> >> > the whole thing looses it's wheels and falls apart after a
> few
> >> >>> >> minutes.
> >> >>> >> >> >
> >> >>> >> >> > I'm supposed to be deploying this system in a few days and
> of
> >> >>> course
> >> >>> >> >> that's
> >> >>> >> >> > the only spot where I can't temporarily limp by.  Is it
> >> possible
> >> >>> you
> >> >>> >> >> could
> >> >>> >> >> > give me some hints on what the problem is and I'll debug it
> >> this
> >> >>> >> weekend
> >> >>> >> >> to
> >> >>> >> >> > see if I can fix it, or at least patch it temporarily?  I
> >> really
> >> >>> need
> >> >>> >> to
> >> >>> >> >> > figure out way to get around this problem.  Other than that,
> >> 3.2.2
> >> >>> >> seems
> >> >>> >> >> to
> >> >>> >> >> > work perfectly fine.
> >> >>> >> >> >
> >> >>> >> >> > Here is the caused by error again in case it's any bit
> >> different
> >> >>> than
> >> >>> >> the
> >> >>> >> >> > 3.2.1 one was:
> >> >>> >> >> >
> >> >>> >> >> > Caused by: java.lang.NullPointerException
> >> >>> >> >> >        at
> >> >>> >> >> >
> >> >>>
> java.util.concurrent.ConcurrentHashMap.put(ConcurrentHashMap.java:881)
> >> >>> >> >> >        at
> >> >>> >> >> >
> >> >>> >> >>
> >> >>> >>
> >> >>>
> >>
> org.apache.servicemix.bean.BeanEndpoint$PojoChannel.send(BeanEndpoint.java:569)
> >> >>> >> >> >        at
> >> >>> >> >> >
> >> >>> >> >>
> >> >>> >>
> >> >>>
> >>
> com.notification.impl.JbiNotificationHandlerImpl.sendNotification(JbiNotificat
> >> >>> >> >> > ionHandlerImpl.java:80)
> >> >>> >> >> >
> >> >>> >> >> > Also, is the delivery channel component threadsafe?  I'm
> >> curious if
> >> >>> >> >> multiple
> >> >>> >> >> > threads accessing it is a problem or if I should keep access
> to
> >> it
> >> >>> >> >> > synchronized?  I'm currently synchronizing, but don't want
> to
> >> if I
> >> >>> >> don't
> >> >>> >> >> > need to.
> >> >>> >> >> >
> >> >>> >> >> > Thanks!
> >> >>> >> >> > Ryan
> >> >>> >> >> >
> >> >>> >> >> > On Thu, Jun 19, 2008 at 2:19 AM, Bruce Snyder <
> >> >>> [EMAIL PROTECTED]
> >> >>> >> >
> >> >>> >> >> > wrote:
> >> >>> >> >> >
> >> >>> >> >> >> On Wed, Jun 18, 2008 at 7:56 PM, Ryan Moquin <
> >> >>> [EMAIL PROTECTED]
> >> >>> >> >
> >> >>> >> >> >> wrote:
> >> >>> >> >> >> > I'm using Servicemix 3.2.1, so I'll give 3.2.2 a try.  I
> was
> >> >>> kind
> >> >>> >> of
> >> >>> >> >> >> waiting
> >> >>> >> >> >> > until it was released, but this problem is now cropping
> up
> >> on a
> >> >>> >> >> regular
> >> >>> >> >> >> > basis on a server so I'll definitely give it a shot.
> >>  Hopefully
> >> >>> >> this
> >> >>> >> >> will
> >> >>> >> >> >> > allow me to get this project done so I can then get that
> >> Joram
> >> >>> >> write
> >> >>> >> >> up
> >> >>> >> >> >> done
> >> >>> >> >> >> > since I should have ran across hopefully most of the
> gotchas
> >> for
> >> >>> it
> >> >>> >> at
> >> >>> >> >> >> that
> >> >>> >> >> >> > point.
> >> >>> >> >> >>
> >> >>> >> >> >> 3.2.2 will be released very soon and I know it's pretty
> >> stable.
> >> >>> Maybe
> >> >>> >> >> >> we can release it this weekend.
> >> >>> >> >> >>
> >> >>> >> >> >> Bruce
> >> >>> >> >> >> --
> >> >>> >> >> >> perl -e 'print
> >> >>> >> >> >>
> >> >>> unpack("u30","D0G)[EMAIL 
> >> >>> PROTECTED]&5R\"F)R=6-E+G-N>61E<D\!G;6%I;\"YC;VT*"
> >> >>> >> >> >> );'
> >> >>> >> >> >>
> >> >>> >> >> >> Apache ActiveMQ - http://activemq.org/
> >> >>> >> >> >> Apache Camel - http://activemq.org/camel/
> >> >>> >> >> >> Apache ServiceMix - http://servicemix.org/
> >> >>> >> >> >>
> >> >>> >> >> >> Blog: http://bruceblog.org/
> >> >>> >> >> >>
> >> >>> >> >> >
> >> >>> >> >>
> >> >>> >> >>
> >> >>> >> >>
> >> >>> >> >> --
> >> >>> >> >> Cheers,
> >> >>> >> >> Guillaume Nodet
> >> >>> >> >> ------------------------
> >> >>> >> >> Blog: http://gnodet.blogspot.com/
> >> >>> >> >>
> >> >>> >> >
> >> >>> >>
> >> >>> >>
> >> >>> >>
> >> >>> >> --
> >> >>> >> Cheers,
> >> >>> >> Guillaume Nodet
> >> >>> >> ------------------------
> >> >>> >> Blog: http://gnodet.blogspot.com/
> >> >>> >>
> >> >>> >
> >> >>>
> >> >>>
> >> >>>
> >> >>> --
> >> >>> Cheers,
> >> >>> Guillaume Nodet
> >> >>> ------------------------
> >> >>> Blog: http://gnodet.blogspot.com/
> >> >>>
> >> >>
> >> >
> >> >
> >> >
> >> > --
> >> > Cheers,
> >> > Guillaume Nodet
> >> > ------------------------
> >> > Blog: http://gnodet.blogspot.com/
> >> >
> >>
> >>
> >>
> >> --
> >> Cheers,
> >> Guillaume Nodet
> >> ------------------------
> >> Blog: http://gnodet.blogspot.com/
> >>
> >
>
>
>
> --
> Cheers,
> Guillaume Nodet
> ------------------------
> Blog: http://gnodet.blogspot.com/
>

Reply via email to