You are viewing a plain text version of this content. The canonical link for it is here.
Posted to java-commits@axis.apache.org by sa...@apache.org on 2012/03/06 08:08:27 UTC

svn commit: r1297358 - in /axis/axis2/java/core/branches/1_6: ./ modules/kernel/src/org/apache/axis2/description/AxisBindingMessage.java modules/kernel/src/org/apache/axis2/description/AxisMessage.java

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);
     }
 }