Author: sagara Date: Tue Mar 6 07:08:26 2012 New Revision: 1297358 URL: http://svn.apache.org/viewvc?rev=1297358&view=rev Log: Merged r1297344,r1297348 to the 1.6 branch.
Modified: axis/axis2/java/core/branches/1_6/ (props changed) axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisMessage.java Propchange: axis/axis2/java/core/branches/1_6/ ------------------------------------------------------------------------------ --- svn:mergeinfo (original) +++ svn:mergeinfo Tue Mar 6 07:08:26 2012 @@ -1 +1 @@ -/axis/axis2/java/core/trunk:1068985,1069659,1069898,1070439,1072077,1072271,1072296,1072499,1072510,1075057,1078242,1081563,1081587,1081590,1082316,1082322,1082600,1082702,1082726,1082738,1083180,1083192,1083379,1083381,1083425,1083433,1083446,1084753,1085157,1085173,1085514,1085889,1085927,1085931,1087073,1088239,1088248-1088249,1088251,1088268,1088730,1088904,1089225,1089989,1090429,1090457,1091178,1091191,1094117,1096134,1096136,1096530,1096557,1099385,1099389,1100628,1101037,1103013,1103336,1103606,1103760,1128580,1128584,1128618,1128645,1130590,1131425,1134438,1134616,1136156,1136159,1136177,1137153,1137159,1138144,1138203,1139448,1139484,1147485,1149224,1149491,1149578,1150055,1153072,1154615,1156305,1156382,1157211,1157265,1157373,1157415,1157424,1157501,1157517,1157522,1157535,1157767,1162649,1163389,1166038,1166040,1166132,1167045,1174618,1184808,1184810,1184816,1185504,1190469,1190499,1195893,1195972,1195982,1198288,1201467,1201863,1201957,1202867,1203424,1205716,1 205939,1208901,1209034,1213180,1213639,1214118,1220630,1220888,1221716,1222510,1225161,1231465,1231470,1241031,1242238,1242249,1242511,1243831,1291158,1294991,1295084,1295479,1296159,1297132 +/axis/axis2/java/core/trunk:1068985,1069659,1069898,1070439,1072077,1072271,1072296,1072499,1072510,1075057,1078242,1081563,1081587,1081590,1082316,1082322,1082600,1082702,1082726,1082738,1083180,1083192,1083379,1083381,1083425,1083433,1083446,1084753,1085157,1085173,1085514,1085889,1085927,1085931,1087073,1088239,1088248-1088249,1088251,1088268,1088730,1088904,1089225,1089989,1090429,1090457,1091178,1091191,1094117,1096134,1096136,1096530,1096557,1099385,1099389,1100628,1101037,1103013,1103336,1103606,1103760,1128580,1128584,1128618,1128645,1130590,1131425,1134438,1134616,1136156,1136159,1136177,1137153,1137159,1138144,1138203,1139448,1139484,1147485,1149224,1149491,1149578,1150055,1153072,1154615,1156305,1156382,1157211,1157265,1157373,1157415,1157424,1157501,1157517,1157522,1157535,1157767,1162649,1163389,1166038,1166040,1166132,1167045,1174618,1184808,1184810,1184816,1185504,1190469,1190499,1195893,1195972,1195982,1198288,1201467,1201863,1201957,1202867,1203424,1205716,1 205939,1208901,1209034,1213180,1213639,1214118,1220630,1220888,1221716,1222510,1225161,1231465,1231470,1241031,1242238,1242249,1242511,1243831,1291158,1294991,1295084,1295479,1296159,1297132,1297344,1297348 Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java?rev=1297358&r1=1297357&r2=1297358&view=diff ============================================================================== --- axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java (original) +++ axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java Tue Mar 6 07:08:26 2012 @@ -19,11 +19,6 @@ package org.apache.axis2.description; -import java.util.ArrayList; -import java.util.Date; -import java.util.HashMap; -import java.util.Map; - import org.apache.axiom.om.OMAbstractFactory; import org.apache.axiom.om.OMElement; import org.apache.axiom.om.OMFactory; @@ -36,6 +31,11 @@ import org.apache.axis2.util.WSDLSeriali import org.apache.axis2.wsdl.WSDLConstants; import org.apache.neethi.Policy; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.Map; + public class AxisBindingMessage extends AxisDescription { private String name; @@ -50,8 +50,8 @@ public class AxisBindingMessage extends // WSDL 2.0 serializer private boolean fault = false; - private Policy effectivePolicy = null; - private Date lastPolicyCalcuatedTime = null; + private volatile Policy effectivePolicy = null; + private volatile Date lastPolicyCalculatedTime = null; public boolean isFault() { return fault; @@ -218,12 +218,17 @@ public class AxisBindingMessage extends return (AxisBindingOperation) parent; } - public Policy getEffectivePolicy() { - if (lastPolicyCalcuatedTime == null || isPolicyUpdated()) { - effectivePolicy = calculateEffectivePolicy(); - } - return effectivePolicy; - } + public Policy getEffectivePolicy() { + if (lastPolicyCalculatedTime == null || isPolicyUpdated()) { + synchronized (this) { + if (lastPolicyCalculatedTime == null || isPolicyUpdated()) { + effectivePolicy = calculateEffectivePolicy(); + lastPolicyCalculatedTime = new Date(); + } + } + } + return effectivePolicy; + } public Policy calculateEffectivePolicy() { PolicySubject policySubject = null; @@ -286,20 +291,19 @@ public class AxisBindingMessage extends .getAttachedPolicyComponents()); } - lastPolicyCalcuatedTime = new Date(); return PolicyUtil.getMergedPolicy(policyList, axisService); } private boolean isPolicyUpdated() { if (getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisBindingOperation AxisBindingOperation axisBindingOperation = getAxisBindingOperation(); if (axisBindingOperation != null && axisBindingOperation.getPolicySubject().getLastUpdatedTime() - .after(lastPolicyCalcuatedTime)) { + .after(lastPolicyCalculatedTime)) { return true; } // AxisBinding @@ -307,7 +311,7 @@ public class AxisBindingMessage extends : axisBindingOperation.getAxisBinding(); if (axisBinding != null && axisBinding.getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisEndpoint @@ -315,13 +319,13 @@ public class AxisBindingMessage extends .getAxisEndpoint(); if (axisEndpoint != null && axisEndpoint.getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisMessage if (axisMessage != null && axisMessage.getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisOperation @@ -329,7 +333,7 @@ public class AxisBindingMessage extends : axisMessage.getAxisOperation(); if (axisOperation != null && axisOperation.getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisService @@ -337,7 +341,7 @@ public class AxisBindingMessage extends : axisOperation.getAxisService(); if (axisService != null && axisService.getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisConfiguration @@ -345,7 +349,7 @@ public class AxisBindingMessage extends : axisService.getAxisConfiguration(); if (axisConfiguration != null && axisConfiguration.getPolicySubject().getLastUpdatedTime() - .after(lastPolicyCalcuatedTime)) { + .after(lastPolicyCalculatedTime)) { return true; } return false; Modified: axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisMessage.java URL: http://svn.apache.org/viewvc/axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisMessage.java?rev=1297358&r1=1297357&r2=1297358&view=diff ============================================================================== --- axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisMessage.java (original) +++ axis/axis2/java/core/branches/1_6/modules/kernel/src/org/apache/axis2/description/AxisMessage.java Tue Mar 6 07:08:26 2012 @@ -19,13 +19,6 @@ package org.apache.axis2.description; -import java.util.ArrayList; -import java.util.Date; -import java.util.Iterator; -import java.util.List; - -import javax.xml.namespace.QName; - import org.apache.axis2.AxisFault; import org.apache.axis2.description.java2wsdl.Java2WSDLConstants; import org.apache.axis2.engine.AxisConfiguration; @@ -35,11 +28,13 @@ import org.apache.axis2.util.PolicyUtil; import org.apache.axis2.wsdl.SOAPHeaderMessage; import org.apache.neethi.Policy; import org.apache.neethi.PolicyComponent; -import org.apache.ws.commons.schema.XmlSchema; -import org.apache.ws.commons.schema.XmlSchemaElement; -import org.apache.ws.commons.schema.XmlSchemaImport; -import org.apache.ws.commons.schema.XmlSchemaInclude; -import org.apache.ws.commons.schema.XmlSchemaObjectCollection; +import org.apache.ws.commons.schema.*; + +import javax.xml.namespace.QName; +import java.util.ArrayList; +import java.util.Date; +import java.util.Iterator; +import java.util.List; /** @@ -66,10 +61,10 @@ public class AxisMessage extends AxisDes //To chcek whether the message is wrapped or unwrapped private boolean wrapped = true; - - private Policy effectivePolicy = null; - private Date lastPolicyCalcuatedTime = null; - + + private volatile Policy effectivePolicy = null; + private volatile Date lastPolicyCalculatedTime = null; + public String getMessagePartName() { return messagePartName; } @@ -242,13 +237,18 @@ public class AxisMessage extends AxisDes public void setWrapped(boolean wrapped) { this.wrapped = wrapped; } - + public Policy getEffectivePolicy() { - if (lastPolicyCalcuatedTime == null || isPolicyUpdated()) { - effectivePolicy = calculateEffectivePolicy(); - } - return effectivePolicy; - } + if (lastPolicyCalculatedTime == null || isPolicyUpdated()) { + synchronized (this) { + if (lastPolicyCalculatedTime == null || isPolicyUpdated()) { + effectivePolicy = calculateEffectivePolicy(); + lastPolicyCalculatedTime = new Date(); + } + } + } + return effectivePolicy; + } public Policy calculateEffectivePolicy() { PolicySubject policySubject; @@ -282,21 +282,20 @@ public class AxisMessage extends AxisDes } Policy result = PolicyUtil.getMergedPolicy(policyList, axisService); - lastPolicyCalcuatedTime = new Date(); return result; } public boolean isPolicyUpdated() { // AxisMessage if (getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisOperation AxisOperation axisOperation = (AxisOperation) parent; if (axisOperation != null && axisOperation.getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisService @@ -304,7 +303,7 @@ public class AxisMessage extends AxisDes : axisOperation.getAxisService(); if (axisService != null && axisService.getPolicySubject().getLastUpdatedTime().after( - lastPolicyCalcuatedTime)) { + lastPolicyCalculatedTime)) { return true; } // AxisConfiguration @@ -312,6 +311,6 @@ public class AxisMessage extends AxisDes : axisService.getAxisConfiguration(); return axisConfiguration != null && axisConfiguration.getPolicySubject().getLastUpdatedTime() - .after(lastPolicyCalcuatedTime); + .after(lastPolicyCalculatedTime); } }