Author: peter_firmstone Date: Thu Mar 7 09:34:01 2013 New Revision: 1453741
URL: http://svn.apache.org/r1453741 Log: Fixed SnapshotExpirationNotifyTest - test was sleeping, waking up at the same time the DGC lease expired, DGC's much faster than it used to be. Gave the test a 10ms timeout wakeup head start, stopped failures. Ran FindBugs on QA suite, fixed numerous concurrency / visibility issues. Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/joinmanager/LeaseRenewDurRFE.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/mercury/TestGeneratorImpl.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/norm/OneExpireOneNotTest.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/transaction/MultipleAccessTest.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/FailingOwner.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/ForeverOwner.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TestParticipantImpl.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TesterTransaction.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TrackingOwner.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationNotifyTest.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/DataMessage.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/Redirector.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/joinmanager/AbstractBaseTest.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/renewalmanager/EventTest.java river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/servicediscovery/AbstractBaseTest.java Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/joinmanager/LeaseRenewDurRFE.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/joinmanager/LeaseRenewDurRFE.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/joinmanager/LeaseRenewDurRFE.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/joinmanager/LeaseRenewDurRFE.java Thu Mar 7 09:34:01 2013 @@ -290,6 +290,7 @@ public class LeaseRenewDurRFE extends Ab ServiceRegistrar lus = (ldm.getRegistrars())[0]; /* default maximum lease duration from the lookup service */ int idSeed = SERVICE_BASE_VALUE + 9999; + // deliberate, not a bug. long lowBits = (1000+idSeed) >> 32; long leastSignificantBits = SERVICE_ID_VARIANT | lowBits; ServiceID testID = @@ -312,6 +313,7 @@ public class LeaseRenewDurRFE extends Ab /* test service ids */ for(int i=0;i<srvcID.length;i++) { idSeed = SERVICE_BASE_VALUE + i; + // deliberate not a bug. lowBits = (1000+idSeed) >> 32; leastSignificantBits = SERVICE_ID_VARIANT | lowBits; srvcID[i] = Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/mercury/TestGeneratorImpl.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/mercury/TestGeneratorImpl.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/mercury/TestGeneratorImpl.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/mercury/TestGeneratorImpl.java Thu Mar 7 09:34:01 2013 @@ -338,7 +338,7 @@ public class TestGeneratorImpl expiration = newExpiration; } - public long getExpiration() { + public synchronized long getExpiration() { return expiration; } Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/norm/OneExpireOneNotTest.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/norm/OneExpireOneNotTest.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/norm/OneExpireOneNotTest.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/norm/OneExpireOneNotTest.java Thu Mar 7 09:34:01 2013 @@ -209,14 +209,17 @@ public class OneExpireOneNotTest extends // Inherit java doc from super type protected boolean isValidExtension(long extension) { // Check to make sure the set has not expired - if (now - slop > renewalSetLease.getExpiration()) { - // The set has expired, this renewal should not - // be happending - setRsltIfNeeded("Expire Owner:LRS asked for a renewal " + - "after renewal set expiration!"); - return false; - } - + boolean t = false; + synchronized (this){ + t = now - slop > renewalSetLease.getExpiration(); + } + if (t) { + // The set has expired, this renewal should not + // be happending + setRsltIfNeeded("Expire Owner:LRS asked for a renewal " + + "after renewal set expiration!"); + return false; + } return super.isValidExtension(extension); } Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/transaction/MultipleAccessTest.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/transaction/MultipleAccessTest.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/transaction/MultipleAccessTest.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/impl/outrigger/transaction/MultipleAccessTest.java Thu Mar 7 09:34:01 2013 @@ -46,18 +46,14 @@ public class MultipleAccessTest extends private final static int NUM_WORKERS = 4; private final static int NUM_ENTRIES = 20; - // an entry to be written - private SimpleEntry wentry; - private SimpleEntry template; - /* * Vars to detect that Peeker/Worker failed. * Has been added during porting. */ - private boolean peekerFailed = false; - private boolean workerFailed = false; - private String peekerFailMsg = ""; - private String workerFailMsg = ""; + private volatile boolean peekerFailed = false; + private volatile boolean workerFailed = false; + private volatile String peekerFailMsg = ""; + private volatile String workerFailMsg = ""; public void run() throws Exception { simpleSetup(); @@ -165,10 +161,10 @@ public class MultipleAccessTest extends class Peeker extends Thread { - private JavaSpace space; - private TransactionTestBase parent; + private final JavaSpace space; + private final TransactionTestBase parent; private int readCount = 0; - private boolean shouldStop = false; + private volatile boolean shouldStop = false; public Peeker(JavaSpace space, TransactionTestBase parent) { this.space = space; @@ -191,7 +187,9 @@ public class MultipleAccessTest extends } if (entry != null) { - readCount++; + synchronized (this){ + readCount++; + } } try { @@ -210,28 +208,30 @@ public class MultipleAccessTest extends /** * Stops the thread. */ - public synchronized void exit() { + public void exit() { shouldStop = true; } public int getReadCount() { - parent.pass("[Peeker]: read " + readCount + " entries"); - return readCount; + synchronized (this){ + parent.pass("[Peeker]: read " + readCount + " entries"); + return readCount; + } } } class Worker extends Thread { - private JavaSpace space; - private Transaction txn; - private int fromStage, toStage; - private int writeCount = 0; - private int expectedEntries; - private TransactionTestBase parent; + private final JavaSpace space; + private final Transaction txn; + private final int fromStage, toStage; + private volatile int writeCount = 0; + private final int expectedEntries; + private final TransactionTestBase parent; private final int MAX_WAIT = 80000; // 8sec. private final int WAIT_UNIT = 400; // 400 msec. - private boolean completed = false; - private Object lock = new Object(); + private volatile boolean completed = false; + private final Object lock = new Object(); public Worker(JavaSpace space, Transaction txn, int fromStage, int toStage, int expectedEntries, TransactionTestBase parent) { @@ -300,13 +300,12 @@ public class MultipleAccessTest extends } parent.pass("[Worker" + fromStage + "]: wrote an entry" + " (" + entry + ")"); - - if (++writeCount >= expectedEntries) { - synchronized(lock) { + synchronized(lock) { + if (++writeCount >= expectedEntries) { completed = true; lock.notifyAll(); + break; // ends thread } - break; // ends thread } } } Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/FailingOwner.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/FailingOwner.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/FailingOwner.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/FailingOwner.java Thu Mar 7 09:34:01 2013 @@ -286,7 +286,9 @@ public class FailingOwner extends LeaseO * */ public Throwable getLastThrowable() { - return toThrow[lastIndex]; + synchronized (this){ + return toThrow[lastIndex]; + } } } Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/ForeverOwner.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/ForeverOwner.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/ForeverOwner.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/ForeverOwner.java Thu Mar 7 09:34:01 2013 @@ -69,15 +69,15 @@ public class ForeverOwner extends Tracki if (extension == desiredRenewal) { return true; } - - final long requestedExpiration = now + extension; - if (requestedExpiration < 0) - // They asked for at least FOREVER - return true; - - if ((Long.MAX_VALUE - requestedExpiration) < slop) - return true; + synchronized (this){ + final long requestedExpiration = now + extension; + if (requestedExpiration < 0) + // They asked for at least FOREVER + return true; + if ((Long.MAX_VALUE - requestedExpiration) < slop) + return true; + } setRsltIfNeeded("Forever Owner:LRS asked for " + extension + " when it should have asked for " + desiredRenewal); return false; Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TestParticipantImpl.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TestParticipantImpl.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TestParticipantImpl.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TestParticipantImpl.java Thu Mar 7 09:34:01 2013 @@ -50,8 +50,7 @@ public class TestParticipantImpl { private String name; private BitSet behavior; - private Integer lock; - private Integer lock2; + private final Object lock2; private long crashcount; private ServerTransaction str; private static final long TENSECONDS = 1000 * 10; @@ -65,8 +64,7 @@ public class TestParticipantImpl public TestParticipantImpl(String name) throws RemoteException { this.name = name; - lock = new Integer(0); - lock2 = new Integer(1); + lock2 = new Object(); crashcount = System.currentTimeMillis(); behavior = new BitSet(OPERATION_COUNT); Configuration c = QAConfig.getConfig().getConfiguration(); Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TesterTransaction.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TesterTransaction.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TesterTransaction.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TesterTransaction.java Thu Mar 7 09:34:01 2013 @@ -44,8 +44,8 @@ public class TesterTransaction implement public final Long idObj; private TransactionParticipant part; // our participant private long crashCnt; // its crash count - private int state; // our state; - private int getStateFailCnt; // # of times to fail + private volatile int state; // our state; + private volatile int getStateFailCnt; // # of times to fail /** * The <code>ServerTransaction</code> for us. @@ -113,11 +113,13 @@ public class TesterTransaction implement * Return the current state of this transaction. */ public int getState() throws RemoteException { - if (getStateFailCnt > 0) { - getStateFailCnt--; - throw new RemoteException("getState forced to fail"); + synchronized (this){ + if (getStateFailCnt > 0) { + getStateFailCnt--; + throw new RemoteException("getState forced to fail"); + } + return state; } - return state; } /** @@ -148,28 +150,30 @@ public class TesterTransaction implement */ public void join(TransactionParticipant newPart, long newCrashCnt) throws CannotJoinException, CrashCountException { - if (state != ACTIVE) { - throw new CannotJoinException("State is " - + TxnConstants.getName(state)); - } + synchronized (this){ + if (state != ACTIVE) { + throw new CannotJoinException("State is " + + TxnConstants.getName(state)); + } + + if (part == null) { + part = newPart; + crashCnt = newCrashCnt; + return; + } + + if (!part.equals(newPart)) { + throw new CannotJoinException("Only one participant allowed"); + } + + if (newCrashCnt != crashCnt) { + throw new CrashCountException("crash counts unequal: old = " + + crashCnt + ", new = " + newCrashCnt); + } - if (part == null) { - part = newPart; - crashCnt = newCrashCnt; + // so it's the same participant with the same crash count: cool return; } - - if (!part.equals(newPart)) { - throw new CannotJoinException("Only one participant allowed"); - } - - if (newCrashCnt != crashCnt) { - throw new CrashCountException("crash counts unequal: old = " - + crashCnt + ", new = " + newCrashCnt); - } - - // so it's the same participant with the same crash count: cool - return; } /** @@ -177,8 +181,10 @@ public class TesterTransaction implement * <code>com.sun.jini.qa.harness.TestException</code> if there it is not. */ public void assertParticipants(int count) throws TestException { - int actual = (part == null ? 0 : 1); - + int actual = 0; + synchronized (this){ + actual = (part == null ? 0 : 1); + } if (count != actual) { throw new TestException("participant count should be " + count + ", is " + actual); Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TrackingOwner.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TrackingOwner.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TrackingOwner.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/share/TrackingOwner.java Thu Mar 7 09:34:01 2013 @@ -196,11 +196,16 @@ abstract public class TrackingOwner exte } finally { // If after all this rslt is non null we have to notify // notifyOnFailure - if (rslt != null && notifyOnFailure != null) { + boolean notify = false; + synchronized (this){ + notify = rslt != null && notifyOnFailure != null; + } + if (notify) { synchronized (notifyOnFailure) { notifyOnFailure.notifyAll(); } } + } } Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationNotifyTest.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationNotifyTest.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationNotifyTest.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/javaspace/conformance/snapshot/SnapshotExpirationNotifyTest.java Thu Mar 7 09:34:01 2013 @@ -17,6 +17,7 @@ */ package com.sun.jini.test.spec.javaspace.conformance.snapshot; +import com.sun.jini.qa.harness.QAConfig; import com.sun.jini.qa.harness.Test; import java.util.logging.Level; @@ -46,6 +47,13 @@ import com.sun.jini.test.spec.javaspace. * @author Mikhail A. Markov */ public class SnapshotExpirationNotifyTest extends TransactionTest { + + public Test construct(QAConfig config) throws Exception { + super.construct(config); + timeout1 = getConfig().getLongConfigVal(pkgName + ".timeout1", 9990); + timeout2 = getConfig().getLongConfigVal(pkgName + ".timeout2", 19990); + return this; + } /** * This method asserts, that the request specified by a Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/DataMessage.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/DataMessage.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/DataMessage.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/DataMessage.java Thu Mar 7 09:34:01 2013 @@ -99,17 +99,17 @@ public class DataMessage implements Mess } //inherit javadoc - public Object getPayload() { + public synchronized Object getPayload() { return payload; } //inherit javadoc - public byte[] getRawMessage() { + public synchronized byte[] getRawMessage() { return received; } //inherit javadoc - public String toString() { + public synchronized String toString() { return (received!=null) ? Util.convert( new byte[]{received[0],received[1],received[2],received[3]}) : Util.convert(reference); @@ -120,7 +120,7 @@ public class DataMessage implements Mess * * @return true if the <b>open</b> flag is set, false otherwise */ - public boolean isOpen() { + public synchronized boolean isOpen() { return (received!=null) ? (received[0] & 0x10) == 0x10 : (reference[0] & 0x10) == 0x10; } @@ -130,7 +130,7 @@ public class DataMessage implements Mess * * @return The message that was operated on */ - public DataMessage setOpen() { + public synchronized DataMessage setOpen() { reference[0] = (byte) (reference[0] | 0x10); return this; } @@ -140,7 +140,7 @@ public class DataMessage implements Mess * * @return true if the <b>close</b> flag is set, false otherwise */ - public boolean isClose() { + public synchronized boolean isClose() { return (received!=null) ? (received[0] & 0x08) == 0x08 : (reference[0] & 0x08) == 0x08; } @@ -150,7 +150,7 @@ public class DataMessage implements Mess * * @return The message that was operated on */ - public DataMessage setClose() { + public synchronized DataMessage setClose() { reference[0] = (byte) (reference[0] | 0x08); return this; } @@ -160,7 +160,7 @@ public class DataMessage implements Mess * * @return true if the <b>eof</b> flag is set, false otherwise */ - public boolean isEof() { + public synchronized boolean isEof() { return (received!=null) ? (received[0] & 0x04) == 0x04 : (reference[0] & 0x04) == 0x04; } @@ -170,7 +170,7 @@ public class DataMessage implements Mess * * @return The message that was operated on */ - public DataMessage setEof() { + public synchronized DataMessage setEof() { reference[0] = (byte) (reference[0] | 0x04); return this; } @@ -181,7 +181,7 @@ public class DataMessage implements Mess * * @return true if the <b>ackRequired</b> flag is set, false otherwise */ - public boolean isAckRequired() { + public synchronized boolean isAckRequired() { return (received!=null) ? (received[0] & 0x02) == 0x02 : (reference[0] & 0x02) == 0x02; } @@ -191,7 +191,7 @@ public class DataMessage implements Mess * * @return The message that was operated on */ - public DataMessage setAckRequired() { + public synchronized DataMessage setAckRequired() { reference[0] = (byte) (reference[0] | 0x02); return this; } @@ -202,7 +202,7 @@ public class DataMessage implements Mess * * @return The session ID for this message */ - public int getsessionId() { + public synchronized int getsessionId() { return (received!=null) ? received[1] : reference[1]; } @@ -211,7 +211,7 @@ public class DataMessage implements Mess * * @return The object that was operated on */ - public DataMessage setSessionID(byte sessionID) { + public synchronized DataMessage setSessionID(byte sessionID) { reference[1] = sessionID; return this; } @@ -223,7 +223,7 @@ public class DataMessage implements Mess * @param o An object that represents the payload of the message * @return The object that was operated on */ - public DataMessage setPayload(Object o) { + public synchronized DataMessage setPayload(Object o) { payload = (byte[]) o; return this; } @@ -236,7 +236,7 @@ public class DataMessage implements Mess * @param length The length that this message will report * @return The object that was just operated on */ - public DataMessage setSize(short length) { + public synchronized DataMessage setSize(short length) { reference[2] = (byte) ((length >>> 8) & 0x00ff); reference[3] = (byte) (length & 0x00ff);; return this; @@ -247,7 +247,7 @@ public class DataMessage implements Mess * * @return The size of the message */ - public int getSize() { + public synchronized int getSize() { return (received!=null) ? (received[2]<<8) + received[3] : (reference[2]<<8) + reference[3]; } @@ -261,8 +261,10 @@ public class DataMessage implements Mess * @return The object that was operated on */ public DataMessage suppressFormatCheck() { - supressFormatCheck = true; - return this; + synchronized (this){ + supressFormatCheck = true; + return this; + } } /** @@ -271,7 +273,7 @@ public class DataMessage implements Mess * * @param The message to check */ - private void check(byte[] message) throws ProtocolException { + private synchronized void check(byte[] message) throws ProtocolException { //check that the flags and message type are as expected if ((received[0]|reference[0])!=reference[0]) { byte[] tmp = new byte[reference.length]; @@ -300,9 +302,11 @@ public class DataMessage implements Mess * Constructs the Data message to send over the output stream */ private byte[] construct() { - byte[] message = new byte[reference.length + payload.length]; - System.arraycopy(reference,0,message,0,reference.length); - System.arraycopy(payload,0,message,reference.length,payload.length); - return message; + synchronized (this){ + byte[] message = new byte[reference.length + payload.length]; + System.arraycopy(reference,0,message,0,reference.length); + System.arraycopy(payload,0,message,reference.length,payload.length); + return message; + } } } Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/Redirector.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/Redirector.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/Redirector.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/jeri/mux/util/Redirector.java Thu Mar 7 09:34:01 2013 @@ -41,7 +41,7 @@ public class Redirector implements Runna private int localPort; private ArrayList server = new ArrayList(); private ArrayList client = new ArrayList(); - private ServerSocket ss = null; + private volatile ServerSocket ss = null; private boolean stop = false; private boolean clientDone = false; private boolean serverDone = false; Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/joinmanager/AbstractBaseTest.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/joinmanager/AbstractBaseTest.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/joinmanager/AbstractBaseTest.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/joinmanager/AbstractBaseTest.java Thu Mar 7 09:34:01 2013 @@ -105,6 +105,13 @@ abstract public class AbstractBaseTest e public TestService(int i) { this.i = i; }//end constructor + + @Override + public int hashCode() { + int hash = 7; + hash = 67 * hash + this.i; + return hash; + } public boolean equals(Object obj) { try { if ( this == obj ) { @@ -526,7 +533,7 @@ abstract public class AbstractBaseTest e for(int i=0;i<getnSecsJoin();i++) { synchronized(srvcToNEvents) { if(srvcToNEvents.size() > 0) { - Integer objN = (Integer)srvcToNEvents.get(testService); + Integer objN = srvcToNEvents.get(testService); if(objN != null) { nEventsRcvd = objN.intValue(); if( (nEventsExpected > 0) Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/renewalmanager/EventTest.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/renewalmanager/EventTest.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/renewalmanager/EventTest.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/renewalmanager/EventTest.java Thu Mar 7 09:34:01 2013 @@ -566,7 +566,7 @@ public class EventTest extends QATestEnv private final Throwable toThrow; /** Have we recived the expected event */ - private boolean recived = false; + private volatile boolean recived = false; /** Our desired expiration */ final private long desiredExpiration; Modified: river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/servicediscovery/AbstractBaseTest.java URL: http://svn.apache.org/viewvc/river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/servicediscovery/AbstractBaseTest.java?rev=1453741&r1=1453740&r2=1453741&view=diff ============================================================================== --- river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/servicediscovery/AbstractBaseTest.java (original) +++ river/jtsk/skunk/qa_refactor/trunk/qa/src/com/sun/jini/test/spec/servicediscovery/AbstractBaseTest.java Thu Mar 7 09:34:01 2013 @@ -739,7 +739,7 @@ abstract public class AbstractBaseTest e int srvcVal = idSeed; int attrVal = srvcVal; if(reRegister) srvcVal = srvcVal+9;//makes proxies not equal - + // not a bug, bit shifted outside of range deliberately. long lowBits = (1000+idSeed) >> 32; long leastSignificantBits = SERVICE_ID_VARIANT | lowBits; ServiceID srvcID =
