There seems to be a bug in the consistency method of the constraint XexpYeqZ.
This happens when the domain of some variables given in argument contains the value 0.
Here's a small piece of code that can be used to reproduce the bad behaviour:
Store store = new Store();
IntVar vars = new IntVar;
IntVar v1 = new IntVar(store, "v1", 0, 0);
vars = v1;
IntVar v2 = new IntVar(store, "v2", 2, 2);
vars = v2;
IntVar v3 = new IntVar(store, "v3", 0, 0);
vars = v3;
XexpYeqZ ex = new XexpYeqZ(v1, v2, v3);
boolean result = store.consistency();
assert result == true: "incorrect";
When executing this piece of code, the consistency method of the constraint will call the method aLog(double a, double x) with x as 0.0.
This results in a division by 0, and a load of not caught JaCoP.core.FailException will follow when calling domain.in() in consistency().