Author: scheu Date: Mon Oct 18 21:26:34 2010 New Revision: 1024009 URL: http://svn.apache.org/viewvc?rev=1024009&view=rev Log: AXIS2-4844 Contributor:Rich Scheuerle Slight improvement to ContextUtils. Slight improvement to JAXBUtils.
Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java?rev=1024009&r1=1024008&r2=1024009&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/context/utils/ContextUtils.java Mon Oct 18 21:26:34 2010 @@ -21,9 +21,11 @@ package org.apache.axis2.jaxws.context.u import org.apache.axiom.soap.SOAPHeader; import org.apache.axis2.AxisFault; +import org.apache.axis2.context.ConfigurationContext; import org.apache.axis2.context.OperationContext; import org.apache.axis2.context.ServiceContext; import org.apache.axis2.description.Parameter; +import org.apache.axis2.engine.AxisConfiguration; import org.apache.axis2.jaxws.Constants; import org.apache.axis2.jaxws.addressing.util.ReferenceParameterList; import org.apache.axis2.jaxws.context.WebServiceContextImpl; @@ -357,18 +359,6 @@ public class ContextUtils { return false; } - // First examine the property on the jaxws MessageContext - Boolean property = (Boolean) mc.getProperty( - Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS); - if (property != null) { - value = property.booleanValue(); - if (log.isDebugEnabled()) { - log.debug("_isJAXBRemoveIllegalChars returns " + value + " per jaxws MessageContext property " + - Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS); - } - return value; - } - // If not found, delegate to the Axis2 MessageContext if (mc.getAxisMessageContext() != null) { return _isJAXBRemoveIllegalChars(mc.getAxisMessageContext()); @@ -396,9 +386,9 @@ public class ContextUtils { return false; } - // First examine the property on the axis2 MessageContext hierarchy - Boolean property = (Boolean) mc.getProperty( - Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS); + // First examine the local property on the axis2 MessageContext + Boolean property = (Boolean) mc.getLocalProperty( + Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS, false); if (property != null) { value = property.booleanValue(); if (log.isDebugEnabled()) { @@ -410,14 +400,20 @@ public class ContextUtils { // Now look at the configuration parameter - Parameter p = mc.getParameter(Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS); - if (p != null) { - value = JavaUtils.isTrue(p.getValue()); - if (log.isDebugEnabled()) { - log.debug("isJAXBRemoveIllegalChars returns " + value + " per inspection of Configuration property " + - Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS); + ConfigurationContext cc = mc.getConfigurationContext(); + if (cc != null) { + AxisConfiguration baseConfig = cc.getAxisConfiguration(); + if (baseConfig != null) { + Parameter p = baseConfig.getParameter(Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS); + if (p != null) { + value = JavaUtils.isTrue(p.getValue()); + if (log.isDebugEnabled()) { + log.debug("isJAXBRemoveIllegalChars returns " + value + " per inspection of Configuration property " + + Constants.JAXWS_JAXB_WRITE_REMOVE_ILLEGAL_CHARS); + } + return value; + } } - return value; } if (log.isDebugEnabled()) { Modified: axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java?rev=1024009&r1=1024008&r2=1024009&view=diff ============================================================================== --- axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java (original) +++ axis/axis2/java/core/trunk/modules/jaxws/src/org/apache/axis2/jaxws/message/databinding/JAXBUtils.java Mon Oct 18 21:26:34 2010 @@ -1437,6 +1437,9 @@ public class JAXBUtils { // The maps are freed up when a LOAD FACTOR is hit private static int MAX_LIST_FACTOR = 50; + // Limit the adjustSize calls + private int count = 0; + /** * @param key * @return removed item from pool or null. @@ -1509,6 +1512,13 @@ public class JAXBUtils { * a large footprint. */ private void adjustSize() { + + // Don't check each time, map.size() can be expensive + count++; + if (count < 10) { + return; + } + count = 0; Map<K,List<V>> map = softMap.get(); if (map != null && map.size() > MAX_LOAD_FACTOR) { // Remove every other Entry in the map.