|
From: <jom...@us...> - 2013-11-22 17:16:46
|
Revision: 1760
http://sourceforge.net/p/jason/svn/1760
Author: jomifred
Date: 2013-11-22 17:16:43 +0000 (Fri, 22 Nov 2013)
Log Message:
-----------
fix bug reported by Viviana Marcardi
Modified Paths:
--------------
trunk/build.xml
trunk/release-notes.txt
trunk/src/jason/asSemantics/Agent.java
trunk/src/jason/asSemantics/TransitionSystem.java
trunk/src/jason/bb/DefaultBeliefBase.java
Modified: trunk/build.xml
===================================================================
--- trunk/build.xml 2013-11-14 10:44:23 UTC (rev 1759)
+++ trunk/build.xml 2013-11-22 17:16:43 UTC (rev 1760)
@@ -12,7 +12,7 @@
<property name="dist.properties" value="${basedir}/bin/dist.properties" />
<property name="version" value="1" />
- <property name="release" value="3.10b" />
+ <property name="release" value="4.0" />
<property name="distDir" value="${env.HOME}/tmp/x/Jason-${version}.${release}" />
<property name="distFile" value="${env.HOME}/Jason-${version}.${release}" />
Modified: trunk/release-notes.txt
===================================================================
--- trunk/release-notes.txt 2013-11-14 10:44:23 UTC (rev 1759)
+++ trunk/release-notes.txt 2013-11-22 17:16:43 UTC (rev 1760)
@@ -1,7 +1,7 @@
---------------------------
version 1.4.0
-revision XXX on SVN
+revision 1759 on SVN
---------------------------
New features
Modified: trunk/src/jason/asSemantics/Agent.java
===================================================================
--- trunk/src/jason/asSemantics/Agent.java 2013-11-14 10:44:23 UTC (rev 1759)
+++ trunk/src/jason/asSemantics/Agent.java 2013-11-22 17:16:43 UTC (rev 1760)
@@ -664,7 +664,7 @@
// stat
int adds = 0;
int dels = 0;
- long startTime = System.nanoTime();
+ long startTime = qProfiling == null ? 0 : System.nanoTime();
// deleting percepts in the BB that is not perceived anymore
Iterator<Literal> perceptsInBB = getBB().getPercepts();
@@ -821,7 +821,7 @@
List<Literal>[] result = null;
try {
if (beliefToAdd != null) {
- if (logger.isLoggable(Level.FINE)) logger.fine("Adding belief " + beliefToAdd);
+ if (logger.isLoggable(Level.FINE)) logger.fine("Doing (add) brf for " + beliefToAdd);
if (getBB().add(position, beliefToAdd)) {
result = new List[2];
@@ -838,7 +838,7 @@
u = new Unifier();
}
- if (logger.isLoggable(Level.FINE)) logger.fine("Doing brf for " + beliefToDel + " in BB=" + believes(beliefToDel, u));
+ if (logger.isLoggable(Level.FINE)) logger.fine("Doing (del) brf for " + beliefToDel + " in BB=" + believes(beliefToDel, u));
boolean removed = getBB().remove(beliefToDel);
if (!removed && !beliefToDel.isGround()) { // then try to unify the parameter with a belief in BB
Modified: trunk/src/jason/asSemantics/TransitionSystem.java
===================================================================
--- trunk/src/jason/asSemantics/TransitionSystem.java 2013-11-14 10:44:23 UTC (rev 1759)
+++ trunk/src/jason/asSemantics/TransitionSystem.java 2013-11-22 17:16:43 UTC (rev 1760)
@@ -1045,7 +1045,7 @@
// b) create the failure event (it is done by SelRelPlan)
if (e.isInternal() || C.hasListener() || ag.getPL().hasCandidatePlan(e.trigger)) {
C.addEvent(e);
- if (logger.isLoggable(Level.FINE)) logger.fine("Added event " + e);
+ if (logger.isLoggable(Level.FINE)) logger.fine("Added event " + e+ ", events = "+C.getEvents());
}
}
Modified: trunk/src/jason/bb/DefaultBeliefBase.java
===================================================================
--- trunk/src/jason/bb/DefaultBeliefBase.java 2013-11-14 10:44:23 UTC (rev 1759)
+++ trunk/src/jason/bb/DefaultBeliefBase.java 2013-11-22 17:16:43 UTC (rev 1760)
@@ -144,7 +144,7 @@
entry = new BelEntry();
belsMap.put(l.getPredicateIndicator(), entry);
}
- entry.add(l, addInEnd);
+ entry.add(l.copy(), addInEnd); // we need to clone for the consequent event to not have a ref to this bel (which can change before the event being processed); see bug from Viviana Marcardi
// add it in the percepts list
if (l.hasAnnot(TPercept)) {
@@ -227,8 +227,22 @@
}
public boolean abolish(PredicateIndicator pi) {
- // TODO: remove also in percepts list!
- return belsMap.remove(pi) != null;
+ BelEntry entry = belsMap.remove(pi);
+ if (entry != null) {
+ size -= entry.size();
+
+ // remove also in percepts list!
+ Iterator<Literal> i = percepts.iterator();
+ while (i.hasNext()) {
+ Literal l = i.next();
+ if (l.getPredicateIndicator().equals(pi))
+ i.remove();
+ }
+ return true;
+ } else {
+ return false;
+ }
+ //return belsMap.remove(pi) != null;
}
public Literal contains(Literal l) {
@@ -318,6 +332,10 @@
}
}
+ public int size() {
+ return map.size();
+ }
+
public boolean isEmpty() {
return list.isEmpty();
}
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|