[ https://issues.apache.org/activemq/browse/SM-553?page=all ]

Guillaume Nodet resolved SM-553.
--------------------------------

    Fix Version/s: 3.0-M3
       Resolution: Fixed
         Assignee: Guillaume Nodet

Author: gnodet
Date: Wed Aug 23 12:46:18 2006
New Revision: 434140

URL: http://svn.apache.org/viewvc?rev=434140&view=rev
Log:
Log file in distribution should not log at DEBUG level by default

Modified:
    incubator/servicemix/trunk/apache-servicemix/src/main/release/conf/log4j.xml

... and ...

Author: gnodet
Date: Wed Aug 23 14:05:58 2006
New Revision: 434178

URL: http://svn.apache.org/viewvc?rev=434178&view=rev
Log:
Fix possible NPE, thx to Robert H. Pollack

Modified:
    
incubator/servicemix/trunk/servicemix-core/src/main/java/org/apache/servicemix/jbi/messaging/MessageExchangeImpl.java



> MessageExchangeImpl.toString() converts message content to DOMSource
> --------------------------------------------------------------------
>
>                 Key: SM-553
>                 URL: https://issues.apache.org/activemq/browse/SM-553
>             Project: ServiceMix
>          Issue Type: Bug
>          Components: servicemix-core
>    Affects Versions: 3.0-M2
>            Reporter: Robert H. Pollack
>         Assigned To: Guillaume Nodet
>             Fix For: 3.0-M3
>
>         Attachments: patches.zip
>
>
> The toString() method of MessageExchangeImpl, in an attempt to show the in, 
> out, and fault messages of the exchange, converts their content to DOM.  If 
> this conversion succeeds, the user may be surprised, because the message has 
> changed from a stream source to a DOM source; this originally caused some 
> ClassCastExceptions in our code.
> If the conversion fails, the situation is even worse.  Now the message 
> content remains a stream source, but the stream has been consumed in the 
> attempted conversion, so the message is now empty.
> The reason that this toString method is getting called, almost no matter what 
> you do, is that ServiceMix is distributed with log levels set to DEBUG 
> (oddly, you don't see any debug messages, probably because the log4j.xml file 
> does not specify an appender for these messages).  This setting causes many 
> invocations of the form
>     log.debug ("Now I'm doing something to " + myMessageExchange);
> which causes the toString method to be invoked whether or not anything is 
> actually printed.
> This toString method also turns out to have another problem.  If it does get 
> an exception, it returns null.  It turns out that an object's toString method 
> should never do this, because it can cause NullPointerExceptions if the 
> object is printed.
> I've created an alternate version of MessageExchangeImpl which corrects these 
> problems.  To use it, unzip the enclosed file into your SERVICEMIX_HOME 
> directory and run ant in the directory it creates.  This will create a new 
> class and insert it into a place that will cause ServiceMix 3.0 to use it in 
> preference to the original.  Be sure that you unzip this file into the right 
> place, though, because the ant script contains specific references to "..".
> A bit more detail is in the comments in the enclosed code.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to