|
From: <jom...@us...> - 2008-04-18 16:10:18
|
Revision: 1221
http://jason.svn.sourceforge.net/jason/?rev=1221&view=rev
Author: jomifred
Date: 2008-04-18 09:10:08 -0700 (Fri, 18 Apr 2008)
Log Message:
-----------
fix bug in .wait
Modified Paths:
--------------
trunk/release-notes.txt
trunk/src/jason/asSemantics/Agent.java
trunk/src/jason/asSemantics/IntendedMeans.java
trunk/src/jason/asSemantics/Unifier.java
trunk/src/jason/asSemantics/VarsCluster.java
trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc
trunk/src/jason/asSyntax/parser/as2j.java
trunk/src/jason/stdlib/wait.java
Modified: trunk/release-notes.txt
===================================================================
--- trunk/release-notes.txt 2008-04-17 21:52:42 UTC (rev 1220)
+++ trunk/release-notes.txt 2008-04-18 16:10:08 UTC (rev 1221)
@@ -11,6 +11,7 @@
. use nested source annotations in communication
. add "source(self)" in goals without source
. correctly handle failure event caused by no relevant plans
+. timeout in .wait does not cause a runtime exception
-------------
Modified: trunk/src/jason/asSemantics/Agent.java
===================================================================
--- trunk/src/jason/asSemantics/Agent.java 2008-04-17 21:52:42 UTC (rev 1220)
+++ trunk/src/jason/asSemantics/Agent.java 2008-04-18 16:10:08 UTC (rev 1221)
@@ -252,10 +252,10 @@
try {
// check if the class has "create" method -- singleton implementation
Method create = iaclass.getMethod("create", (Class[])null);
- return (InternalAction)create.invoke(null, (Object[])null);
- } catch (Exception e) {}
-
- objIA = (InternalAction)iaclass.newInstance();
+ objIA = (InternalAction)create.invoke(null, (Object[])null);
+ } catch (Exception e) {
+ objIA = (InternalAction)iaclass.newInstance();
+ }
internalActions.put(iaName, objIA);
}
return objIA;
Modified: trunk/src/jason/asSemantics/IntendedMeans.java
===================================================================
--- trunk/src/jason/asSemantics/IntendedMeans.java 2008-04-17 21:52:42 UTC (rev 1220)
+++ trunk/src/jason/asSemantics/IntendedMeans.java 2008-04-18 16:10:08 UTC (rev 1221)
@@ -90,6 +90,10 @@
return plan;
}
+ public void setUnif(Unifier unif) {
+ this.unif = unif;
+ }
+
public Unifier getUnif() {
return unif;
}
Modified: trunk/src/jason/asSemantics/Unifier.java
===================================================================
--- trunk/src/jason/asSemantics/Unifier.java 2008-04-17 21:52:42 UTC (rev 1220)
+++ trunk/src/jason/asSemantics/Unifier.java 2008-04-18 16:10:08 UTC (rev 1221)
@@ -41,7 +41,7 @@
private static Logger logger = Logger.getLogger(Unifier.class.getName());
- private HashMap<VarTerm, Term> function = new HashMap<VarTerm, Term>();
+ protected HashMap<VarTerm, Term> function = new HashMap<VarTerm, Term>();
/**
* @deprecated use t.apply(un) instead.
@@ -165,7 +165,7 @@
// ----- Unify for Terms
- private boolean unifyTerms(Term t1g, Term t2g) {
+ protected boolean unifyTerms(Term t1g, Term t2g) {
// if args are expressions, apply them and use their values
if (t1g.isArithExpr()) {
t1g = (Term) t1g.clone();
@@ -303,7 +303,7 @@
return true;
}
- private boolean setVarValue(VarTerm vt, Term value) {
+ protected boolean setVarValue(VarTerm vt, Term value) {
// if the var has a cluster, set value for all cluster
Term currentVl = function.get(vt);
if (currentVl != null && currentVl instanceof VarsCluster) {
Modified: trunk/src/jason/asSemantics/VarsCluster.java
===================================================================
--- trunk/src/jason/asSemantics/VarsCluster.java 2008-04-17 21:52:42 UTC (rev 1220)
+++ trunk/src/jason/asSemantics/VarsCluster.java 2008-04-18 16:10:08 UTC (rev 1221)
@@ -63,11 +63,11 @@
private Unifier u;
// used in clone
- private VarsCluster(Unifier u) {
+ protected VarsCluster(Unifier u) {
this.u = u;
}
- VarsCluster(VarTerm v1, VarTerm v2, Unifier u) {
+ protected VarsCluster(VarTerm v1, VarTerm v2, Unifier u) {
id = ++idCount;
this.u = u;
add(v1);
@@ -104,7 +104,7 @@
return false;
}
- boolean hasValue() {
+ public boolean hasValue() {
return vars != null && !vars.isEmpty();
}
Modified: trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc
===================================================================
--- trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2008-04-17 21:52:42 UTC (rev 1220)
+++ trunk/src/jason/asSyntax/parser/AS2JavaParser.jcc 2008-04-18 16:10:08 UTC (rev 1221)
@@ -409,7 +409,7 @@
return new InternalActionLiteral(F, curAg);
} catch (Exception e) {
if (getArithFunction(F) == null) // it is not a registered function
- throw new ParseException(getSourceRef(F)+" The internal action class for '"+F+"' was not found!");
+ logger.warning(getSourceRef(F)+" The internal action class for '"+F+"' was not found!");
}
}
return new Literal(type,F);
Modified: trunk/src/jason/asSyntax/parser/as2j.java
===================================================================
--- trunk/src/jason/asSyntax/parser/as2j.java 2008-04-17 21:52:42 UTC (rev 1220)
+++ trunk/src/jason/asSyntax/parser/as2j.java 2008-04-18 16:10:08 UTC (rev 1221)
@@ -555,7 +555,7 @@
{if (true) return new InternalActionLiteral(F, curAg);}
} catch (Exception e) {
if (getArithFunction(F) == null) // it is not a registered function
- {if (true) throw new ParseException(getSourceRef(F)+" The internal action class for '"+F+"' was not found!");}
+ logger.warning(getSourceRef(F)+" The internal action class for '"+F+"' was not found!");
}
}
{if (true) return new Literal(type,F);}
Modified: trunk/src/jason/stdlib/wait.java
===================================================================
--- trunk/src/jason/stdlib/wait.java 2008-04-17 21:52:42 UTC (rev 1220)
+++ trunk/src/jason/stdlib/wait.java 2008-04-18 16:10:08 UTC (rev 1221)
@@ -31,8 +31,9 @@
import jason.asSemantics.TransitionSystem;
import jason.asSemantics.Unifier;
import jason.asSyntax.Atom;
+import jason.asSyntax.InternalActionLiteral;
+import jason.asSyntax.NumberTerm;
import jason.asSyntax.PlanBodyImpl;
-import jason.asSyntax.NumberTerm;
import jason.asSyntax.StringTerm;
import jason.asSyntax.Term;
import jason.asSyntax.Trigger;
@@ -176,7 +177,7 @@
si.peek().removeCurrentStep();
if (stopByTimeout && te != null) {
// fail the .wait
- si.peek().getPlan().getBody().add(0, new PlanBodyImpl(BodyType.internalAction, new Atom(".fail")));
+ si.peek().getPlan().getBody().add(0, new PlanBodyImpl(BodyType.internalAction, new InternalActionLiteral(".fail")));
}
if (si.isSuspended()) { // if the intention was suspended by .suspend
String k = suspend.SUSPENDED_INT+si.getId();
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|