memoizeit

handle new KeyNotFoundException

7/2/2019 3:32:37 AM

Details

diff --git a/src/main/java/br/ufrgs/inf/prosoft/memoizeit/Occurrence.java b/src/main/java/br/ufrgs/inf/prosoft/memoizeit/Occurrence.java
index 4ad3877..385bee1 100644
--- a/src/main/java/br/ufrgs/inf/prosoft/memoizeit/Occurrence.java
+++ b/src/main/java/br/ufrgs/inf/prosoft/memoizeit/Occurrence.java
@@ -6,6 +6,7 @@
 package br.ufrgs.inf.prosoft.memoizeit;
 
 import br.ufrgs.inf.prosoft.cache.Cache;
+import br.ufrgs.inf.prosoft.cache.KeyNotFoundException;
 import br.ufrgs.inf.prosoft.memoizeit.graph.Node;
 import java.util.List;
 
@@ -55,11 +56,13 @@ public abstract class Occurrence {
 
     protected void simulateCaching(Cache cache) {
         String key = getParameters().toString();
-        Object cached = cache.get(key);
-        if (cached == null) {
+        try {
+            Object cached = cache.get(key);
+            if (!cached.equals(getReturnValue())) {
+                cache.invalidate(key);
+            }
+        } catch (KeyNotFoundException ex) {
             cache.put(key, getReturnValue());
-        } else if (!cached.equals(getReturnValue())) {
-            cache.invalidate(key);
         }
     }