You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lens.apache.org by am...@apache.org on 2015/05/19 09:54:26 UTC

[4/8] incubator-lens git commit: LENS-522 : Fix ConcurrentModificationException in FieldValidator (amareshwari)

LENS-522 : Fix ConcurrentModificationException in FieldValidator (amareshwari)


Project: http://git-wip-us.apache.org/repos/asf/incubator-lens/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-lens/commit/81302fad
Tree: http://git-wip-us.apache.org/repos/asf/incubator-lens/tree/81302fad
Diff: http://git-wip-us.apache.org/repos/asf/incubator-lens/diff/81302fad

Branch: refs/heads/master
Commit: 81302fad5cc904a747214a4ccb6addeb930f7897
Parents: 52d6df6
Author: Amareshwari Sriramadasu <am...@apache.org>
Authored: Thu Apr 23 15:39:00 2015 +0530
Committer: Amareshwari Sriramadasu <am...@apache.org>
Committed: Thu Apr 23 15:39:29 2015 +0530

----------------------------------------------------------------------
 .../apache/lens/cube/metadata/DerivedCube.java  | 22 +++++++++++---------
 1 file changed, 12 insertions(+), 10 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-lens/blob/81302fad/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java
----------------------------------------------------------------------
diff --git a/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java b/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java
index ab5dbec..e7012f7 100644
--- a/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java
+++ b/lens-cube/src/main/java/org/apache/lens/cube/metadata/DerivedCube.java
@@ -62,24 +62,26 @@ public class DerivedCube extends AbstractCubeTable implements CubeInterface {
     this.parent = parent;
   }
 
-  private Set<CubeMeasure> cachedMeasures;
-  private Set<CubeDimAttribute> cachedDims;
+  private Set<CubeMeasure> cachedMeasures = new HashSet<CubeMeasure>();
+  private Set<CubeDimAttribute> cachedDims = new HashSet<CubeDimAttribute>();
 
   public Set<CubeMeasure> getMeasures() {
-    if (cachedMeasures == null) {
-      cachedMeasures = new HashSet<CubeMeasure>();
-      for (String msr : measures) {
-        cachedMeasures.add(parent.getMeasureByName(msr));
+    synchronized (measures) {
+      if (cachedMeasures.isEmpty()) {
+        for (String msr : measures) {
+          cachedMeasures.add(parent.getMeasureByName(msr));
+        }
       }
     }
     return cachedMeasures;
   }
 
   public Set<CubeDimAttribute> getDimAttributes() {
-    if (cachedDims == null) {
-      cachedDims = new HashSet<CubeDimAttribute>();
-      for (String dim : dimensions) {
-        cachedDims.add(parent.getDimAttributeByName(dim));
+    synchronized (dimensions) {
+      if (cachedDims.isEmpty()) {
+        for (String dim : dimensions) {
+          cachedDims.add(parent.getDimAttributeByName(dim));
+        }
       }
     }
     return cachedDims;