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 er...@apache.org on 2003/08/13 04:21:40 UTC

cvs commit: xml-axis/java/src/org/apache/axis/utils NSStack.java

ericf       2003/08/12 19:21:40

  Modified:    java/src/org/apache/axis/encoding
                        DeserializationContextImpl.java
                        DeserializerImpl.java SerializationContextImpl.java
               java/src/org/apache/axis/utils NSStack.java
  Log:
  replaced calls to log.isDebugEnabled with a cached value.  These classes
  have methods that are heavily used, and checking for the status of debug
  settings is prohibitively expensive.  So, we only do it once per instance
  lifecycle, which is the same as once per message request/response loop.
  
  Revision  Changes    Path
  1.77      +18 -13    xml-axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java
  
  Index: DeserializationContextImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DeserializationContextImpl.java,v
  retrieving revision 1.76
  retrieving revision 1.77
  diff -u -r1.76 -r1.77
  --- DeserializationContextImpl.java	18 Jun 2003 23:01:49 -0000	1.76
  +++ DeserializationContextImpl.java	13 Aug 2003 02:21:40 -0000	1.77
  @@ -103,6 +103,11 @@
       protected static Log log =
               LogFactory.getLog(DeserializationContextImpl.class.getName());
   
  +    // invariant member variable to track low-level logging requirements
  +    // we cache this once per instance lifecycle to avoid repeated lookups
  +    // in heavily used code.
  +    private final boolean debugEnabled = log.isDebugEnabled();
  +    
       static final SchemaVersion schemaVersions[] = new SchemaVersion [] {
           SchemaVersion.SCHEMA_1999,
           SchemaVersion.SCHEMA_2000,
  @@ -757,7 +762,7 @@
        */
       public void pushNewElement(MessageElement elem)
       {
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Pushing element " + elem.getName());
           }
   
  @@ -788,7 +793,7 @@
   
       public void pushElementHandler(SOAPHandler handler)
       {
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug(Messages.getMessage("pushHandler00", "" + handler));
           }
   
  @@ -818,7 +823,7 @@
               topHandler = null;
           }
   
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               if (result == null) {
                   log.debug(Messages.getMessage("popHandler00", "(null)"));
               } else {
  @@ -850,7 +855,7 @@
        * endDocument is invoked at the end of the document.
        */
       public void endDocument() throws SAXException {
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Enter: DeserializationContextImpl::endDocument()");
           }
           if (!doneParsing && (recorder != null)) 
  @@ -858,7 +863,7 @@
   
           doneParsing = true;
   
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Exit: DeserializationContextImpl::endDocument()");
           }
       }
  @@ -878,7 +883,7 @@
       public void startPrefixMapping(String prefix, String uri)
           throws SAXException
       {
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Enter: DeserializationContextImpl::startPrefixMapping(" + prefix + ", " + uri + ")");
           }
   
  @@ -917,7 +922,7 @@
               topHandler.startPrefixMapping(prefix, uri);
           }
   
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Exit: DeserializationContextImpl::startPrefixMapping()");
           }
       }
  @@ -925,7 +930,7 @@
       public void endPrefixMapping(String prefix)
           throws SAXException
       {
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Enter: DeserializationContextImpl::endPrefixMapping(" + prefix + ")");
           }
   
  @@ -937,7 +942,7 @@
               topHandler.endPrefixMapping(prefix);
           }
   
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Exit: DeserializationContextImpl::endPrefixMapping()");
           }
       }
  @@ -995,7 +1000,7 @@
                                String qName, Attributes attributes)
           throws SAXException
       {
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Enter: DeserializationContextImpl::startElement(" + namespace + ", " + localName + ")");
           }
   
  @@ -1059,7 +1064,7 @@
               namespaces.push();
           }
   
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Exit: DeserializationContextImpl::startElement()");
           }
       }
  @@ -1070,7 +1075,7 @@
       public void endElement(String namespace, String localName, String qName)
           throws SAXException
       {
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug("Enter: DeserializationContextImpl::endElement(" + namespace + ", " + localName + ")");
           }
   
  @@ -1095,7 +1100,7 @@
   
               namespaces.pop();
   
  -            if (log.isDebugEnabled()) {
  +            if (debugEnabled) {
                   String name = curElement != null ?
                           curElement.getClass().getName() + ":" +
                           curElement.getName() : null;
  
  
  
  1.37      +10 -5     xml-axis/java/src/org/apache/axis/encoding/DeserializerImpl.java
  
  Index: DeserializerImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/DeserializerImpl.java,v
  retrieving revision 1.36
  retrieving revision 1.37
  diff -u -r1.36 -r1.37
  --- DeserializerImpl.java	18 Jun 2003 23:01:49 -0000	1.36
  +++ DeserializerImpl.java	13 Aug 2003 02:21:40 -0000	1.37
  @@ -91,6 +91,11 @@
   
       protected Object value = null;
   
  +    // invariant member variable to track low-level logging requirements
  +    // we cache this once per instance lifecycle to avoid repeated lookups
  +    // in heavily used code.
  +    private final boolean debugEnabled = log.isDebugEnabled();
  +
       // isEnded is set when the endElement is called
       protected boolean isEnded = false;
   
  @@ -280,7 +285,7 @@
                   while (e.hasMoreElements()) {
                       Target target = (Target)e.nextElement();
                       target.set(value);
  -                    if (log.isDebugEnabled()) {
  +                    if (debugEnabled) {
                           log.debug(Messages.getMessage("setValueInTarget00",
                                                               "" + value, "" + target));
                       }
  @@ -373,7 +378,7 @@
           id = attributes.getValue("id");
           if (id != null) {
               context.addObjectById(id, value);
  -            if (log.isDebugEnabled()) {
  +            if (debugEnabled) {
                   log.debug(Messages.getMessage("deserInitPutValueDebug00", "" + value, id));
               }
               context.registerFixup("#" + id, this);
  @@ -384,7 +389,7 @@
               isHref = true;
   
               Object ref = context.getObjectByRef(href);            
  -            if (log.isDebugEnabled()) {
  +            if (debugEnabled) {
                   log.debug(Messages.getMessage(
                           "gotForID00",
                           new String[] {"" + ref, href, (ref == null ? "*null*" : ref.getClass().toString())}));
  @@ -462,7 +467,7 @@
                   }
               }
               
  -            if (log.isDebugEnabled()) {
  +            if (debugEnabled) {
                   log.debug(Messages.getMessage("gotType00", "Deser", "" + type));
               }
               
  @@ -549,7 +554,7 @@
           // This is necessary for proper multi-reference deserialization.
           if (id != null) {
               context.addObjectById(id, value);
  -            if (log.isDebugEnabled()) {
  +            if (debugEnabled) {
                   log.debug(Messages.getMessage("deserPutValueDebug00", "" + value, id));
               }     
           }
  
  
  
  1.97      +8 -3      xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java
  
  Index: SerializationContextImpl.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/encoding/SerializationContextImpl.java,v
  retrieving revision 1.96
  retrieving revision 1.97
  diff -u -r1.96 -r1.97
  --- SerializationContextImpl.java	18 Jul 2003 12:40:40 -0000	1.96
  +++ SerializationContextImpl.java	13 Aug 2003 02:21:40 -0000	1.97
  @@ -116,6 +116,11 @@
       protected static Log log =
               LogFactory.getLog(SerializationContextImpl.class.getName());
   
  +    // invariant member variable to track low-level logging requirements
  +    // we cache this once per instance lifecycle to avoid repeated lookups
  +    // in heavily used code.
  +    private final boolean debugEnabled = log.isDebugEnabled();
  +
       private NSStack nsStack = new NSStack();
       private boolean writingStartTag = false;
       private boolean onlyXML = true;
  @@ -452,7 +457,7 @@
        */
       public void registerPrefixForURI(String prefix, String uri)
       {
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug(Messages.getMessage("register00", prefix, uri));
           }
   
  @@ -901,7 +906,7 @@
           throws IOException
       {
           java.util.ArrayList vecQNames = null;
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug(Messages.getMessage("startElem00",
                       "[" + qName.getNamespaceURI() + "]:" + qName.getLocalPart()));
           }
  @@ -1007,7 +1012,7 @@
       {
           String elementQName = (String)elementStack.pop();
   
  -        if (log.isDebugEnabled()) {
  +        if (debugEnabled) {
               log.debug(Messages.getMessage("endElem00", "" + elementQName));
           }
   
  
  
  
  1.39      +7 -3      xml-axis/java/src/org/apache/axis/utils/NSStack.java
  
  Index: NSStack.java
  ===================================================================
  RCS file: /home/cvs/xml-axis/java/src/org/apache/axis/utils/NSStack.java,v
  retrieving revision 1.38
  retrieving revision 1.39
  diff -u -r1.38 -r1.39
  --- NSStack.java	22 Apr 2003 19:36:04 -0000	1.38
  +++ NSStack.java	13 Aug 2003 02:21:40 -0000	1.39
  @@ -88,6 +88,10 @@
       private int top = 0;
       private int iterator = 0;
       private int currentDefaultNS = -1;
  +    // invariant member variable to track low-level logging requirements
  +    // we cache this once per instance lifecycle to avoid repeated lookups
  +    // in heavily used code.
  +    private final boolean traceEnabled = log.isTraceEnabled();
   
       public NSStack() {
           stack = new Mapping[32];
  @@ -106,7 +110,7 @@
              stack = newstack;
           }
   
  -        if (log.isTraceEnabled())
  +        if (traceEnabled)
               log.trace("NSPush (" + stack.length + ")");
   
           stack[top] = null;
  @@ -132,13 +136,13 @@
           }
           
           if (top == 0) {
  -            if (log.isTraceEnabled())
  +            if (traceEnabled)
                   log.trace("NSPop (" + Messages.getMessage("empty00") + ")");
   
               return;
           }
           
  -        if (log.isTraceEnabled()){
  +        if (traceEnabled){
               log.trace("NSPop (" + stack.length + ")");
           }
       }