Results 1 to 3 of 3

Thread: Unpredictable behavior when using @Header and boolean (primitive)

Threaded View

  1. #1
    Join Date
    Apr 2010
    Posts
    11

    Default Unpredictable behavior when using @Header and boolean (primitive)

    Hi,

    I tried to use the @Header annotation together with a boolean (primitive) in my service activator.

    Code:
    @Override
    @ServiceActivator
    public final void processBusinessObject(final T businessObject, @Header("invalidation") final boolean invalidation) {
       ...
    }
    But in my multi-threaded import I get about 0-3 failures on every run (about 3000 messages). I have four cores in my machine.

    Code:
    Caused by: java.lang.IllegalArgumentException: Wrong number of arguments. Expected types {class xxx.messages.AbstractWarehouseAwareBusinessObject, boolean}, but received values {[Payload=xxx.messages.VariantAvailabilityBusinessObject@118bbe2][Headers={UniqueTransactionID=b98f27b9-b9bc-4e7c-bf94-5fd7c9837af2, TransactionDST=unknown, springintegration_id=ea956b09-fc42-4252-9e40-b4c4d27f8583, TransactionType=BatchFile, springintegration_jms_redelivered=false, springintegration_jms_messageId=ID:3f27f598:35249c0020:12B7B639EDA, invalidation=false, springintegration_timestamp=1286265347849, TransactionDateTime=Tue Oct 05 09:55:47 CEST 2010, springintegration_jms_correlationId=Message 1, springintegration_file_originalFile=C:\Import\working\2010-10-05-09.55.47.b98f27b9-b9bc-4e7c-bf94-5fd7c9837af2.msg, SourceSystemName=batchedfile}]}.
            at org.springframework.integration.util.DefaultMethodInvoker.invokeMethod(DefaultMethodInvoker.java:71)
            at org.springframework.integration.handler.MessageMappingMethodInvoker.doInvokeMethod(MessageMappingMethodInvoker.java:160)
            at org.springframework.integration.handler.MessageMappingMethodInvoker.invokeMethod(MessageMappingMethodInvoker.java:107)
            at org.springframework.integration.handler.ServiceActivatingHandler.handleRequestMessage(ServiceActivatingHandler.java:49)
            at org.springframework.integration.handler.AbstractReplyProducingMessageHandler.handleMessageInternal(AbstractReplyProducingMessageHandler.java:91)
            at org.springframework.integration.handler.AbstractMessageHandler.handleMessage(AbstractMessageHandler.java:59)
            ... 37 more
    But when I changed my code to use the wrapper Boolean everything runs without any problem.

    Code:
    @Override
    @ServiceActivator
    public final void processBusinessObject(final T businessObject, @Header("invalidation") final Boolean invalidation) {
       ...
    }
    Any ideas?
    Last edited by jakeri; Oct 7th, 2010 at 11:41 PM. Reason: typo in debug message

Tags for this Thread

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •