You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-dev@axis.apache.org by bu...@apache.org on 2002/10/22 13:39:50 UTC

DO NOT REPLY [Bug 13845] New: - Axis logs/prints and exception when it shouldn't

DO NOT REPLY TO THIS EMAIL, BUT PLEASE POST YOUR BUG 
RELATED COMMENTS THROUGH THE WEB INTERFACE AVAILABLE AT
<http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13845>.
ANY REPLY MADE TO THIS MESSAGE WILL NOT BE COLLECTED AND 
INSERTED IN THE BUG DATABASE.

http://nagoya.apache.org/bugzilla/show_bug.cgi?id=13845

Axis logs/prints and exception when it shouldn't

           Summary: Axis logs/prints and exception when it shouldn't
           Product: Axis
           Version: current (nightly)
          Platform: All
        OS/Version: Other
            Status: NEW
          Severity: Major
          Priority: Other
         Component: Basic Architecture
        AssignedTo: axis-dev@xml.apache.org
        ReportedBy: dug@us.ibm.com


Given  test.jws:
  public class test {
    public static float getQuote(String str) throws Exception {
      throw new Exception("Because I can");
    }
  }
I placed it my Tomcat axis webapp and then from the client
I ran:
  java samples.stock.GetQuote -s/axis/test.jws IBM
I get see the exception on the client, which is correct but
I also "see" the exception on the tomcat console.
The problem is that in the "catch" block of AxisServlet we
"log" AxisFaults that are thrown (line 710 of AxisServlet).
I'm assuming it then gets printed to the screen because
the default logging level is set such that low-level errors
like this are logged.
The problem is that this error should not be printed to the
screen and perhaps should not be logged by default. This error isn't
something wrong with the system, this is an error generated
by the service typically due to bad data from the client and
should only be sent back to the client.  An Axis admin guy
(by default) isn't going to care about every single user 
error that generated and it will do nothing but fillup his
console and log files.  Axis should not print any errors
to the screen (by default) unless there's something wrong
with the system/Axis. Normal (or they could be called 'expected')
errors should not be printed.
I see two possible fixes:
  1 - remove the log in the catch block
      I'm inclined to say that a person who wants to log the
      messaging going out (and in) of the system should add a
      logging handler (or we should add a new logging option
      to the global config section of the wsdd to make this
      easier) but by default we should not display this stuff.
      This is much like getting a 404 from an app server - in those
      cases I don't see anything on the tomcat console.
  2 - change the default logging level
      this would have interesting side effects because I know 
      there are cases where we print stuff to the screen that 
      people want to see and we do it thru the logging stuff instead
      of a System.out like we should.   :-b
I'm marking this a "Major" for selfish reasons - I'm getting tired
of seeing crap flying by on my tomcat console when there's nothing
wrong with the system and also because people are now trained to ignore
exceptions on the tomcat console which means "real" errors are getting
missed during our testing.