From c921d83884f3bdbab195f727b21a5f27ac974f6b Mon Sep 17 00:00:00 2001 From: Dave Parker Date: Mon, 17 Jan 2011 21:40:59 +0000 Subject: [PATCH] PTA fix: clear memory after memout crash. git-svn-id: https://www.prismmodelchecker.org/svn/prism/prism/trunk@2388 bbc10eb1-c90d-0410-af57-cb519fbb1720 --- prism/src/explicit/IndexedSet.java | 5 +++++ prism/src/pta/Modules2PTA.java | 2 ++ 2 files changed, 7 insertions(+) diff --git a/prism/src/explicit/IndexedSet.java b/prism/src/explicit/IndexedSet.java index 5ec13279..837e4cfa 100644 --- a/prism/src/explicit/IndexedSet.java +++ b/prism/src/explicit/IndexedSet.java @@ -48,6 +48,11 @@ public class IndexedSet indexOfLastAdd = -1; } + public void clear() + { + set.clear(); + } + public boolean add(T state) { Integer i = set.get(state); diff --git a/prism/src/pta/Modules2PTA.java b/prism/src/pta/Modules2PTA.java index dfe92482..959d6a22 100644 --- a/prism/src/pta/Modules2PTA.java +++ b/prism/src/pta/Modules2PTA.java @@ -592,6 +592,8 @@ public class Modules2PTA } // Catch a (possibly) common source of mem-out errors during explicit-state reachability catch (OutOfMemoryError e) { + states.clear(); + System.gc(); throw new PrismLangException("Out of memory after exploring " + (src + 1) + " states of module " + module.getName(), module); }