* <P>Notes:<BR>For more information see the JavaSpaces specification
* sections 2.6, 2.7.</P>
*/
public void run() throws Exception {
SnapshotNotifyCounter[] ncs = new SnapshotNotifyCounter[12];
EventRegistration er;
long[] leaseMatrix = new long[] {
-199, -5000, -13999, Long.MIN_VALUE, -2, Long.MIN_VALUE, -345,
-8999, -15000, -16000000, Long.MIN_VALUE, -3 };
SimpleEntry sampleEntry1 = new SimpleEntry("TestEntry #1", 1);
SimpleEntry sampleEntry2 = new SimpleEntry("TestEntry #2", 2);
SimpleEntry sampleEntry3 = new SimpleEntry("TestEntry #1", 2);
SimpleEntry template;
Transaction txn;
// first check that space is empty
if (!checkSpace(space)) {
throw new TestException(
"Space is not empty in the beginning.");
}
// create the non null transaction
txn = getTransaction();
/*
* init 3 RemoteEvent counters for snapshot for each
* of sample entries
*/
ncs[0] = new SnapshotNotifyCounter(sampleEntry1, leaseMatrix[0],
space);
ncs[1] = new SnapshotNotifyCounter(sampleEntry2, leaseMatrix[1],
space);
ncs[2] = new SnapshotNotifyCounter(sampleEntry3, leaseMatrix[2],
space);
// init 5 counters with snapshots of wrong templates
template = new SimpleEntry("TestEntry #3", 1);
ncs[3] = new SnapshotNotifyCounter(template, leaseMatrix[3], space);
// 2-nd wrong template
template = new SimpleEntry("TestEntry #1", 3);
ncs[4] = new SnapshotNotifyCounter(template, leaseMatrix[4], space);
// 3-rd wrong template
template = new SimpleEntry("TestEntry #3", 3);
ncs[5] = new SnapshotNotifyCounter(template, leaseMatrix[5], space);
// 4-th wrong template
template = new SimpleEntry(null, 3);
ncs[6] = new SnapshotNotifyCounter(template, leaseMatrix[6], space);
// 5-th wrong template
template = new SimpleEntry("TestEntry #3", null);
ncs[7] = new SnapshotNotifyCounter(template, leaseMatrix[7], space);
// init counter with snapshot of null entry as a template
ncs[8] = new SnapshotNotifyCounter(null, leaseMatrix[8], space);
/*
* init 3 counters with snapshots for templates with null values
* for different fields
*/
template = new SimpleEntry("TestEntry #1", null);
ncs[9] = new SnapshotNotifyCounter(template, leaseMatrix[9], space);
// snapshot of 2-nd template
template = new SimpleEntry(null, 2);
ncs[10] = new SnapshotNotifyCounter(template, leaseMatrix[10],
space);
// snapshot 3-rd template
template = new SimpleEntry(null, null);
ncs[11] = new SnapshotNotifyCounter(template, leaseMatrix[11],
space);
// try to register them
for (int i = 0; i < 12; i++) {
try {
er = space.notify(ncs[i].getSnapshot(), txn, ncs[i],
ncs[i].getLeaseTime(), null);
throw new TestException(" Notify operation for "
+ ncs[i]
+ " has not thrown IllegalArgumentException"
+ " and returned " + er.toString());
} catch (IllegalArgumentException iae) {
logDebugText("IllegalArgumentException has been catched"
+ " while trying to register " + ncs[i]
+ " as expected.");
}