package dstest; import instrumented.java.util.*; /** * Created by IntelliJ IDEA. * User: Koushik Sen (ksen@cs.uiuc.edu) * Date: Dec 30, 2005 * Time: 10:00:50 AM */ public class MTSetDeadlock extends Thread { Set v1; Set v2; public MTSetDeadlock(Set v1, Set v2) { this.v1 = v1; this.v2 = v2; } public void run() { v1.removeAll(v2); } public static void hashSetDeadlock() { Set v1 = Collections.synchronizedSet(new HashSet()); v1.add(new SimpleObject(1)); Set v2 = Collections.synchronizedSet(new HashSet()); v2.add(new SimpleObject(2)); (new MTSetDeadlock(v1,v2)).start(); (new MTSetDeadlock(v2,v1)).start(); } public static void linkedHashSetDeadlock() { Set v1 = Collections.synchronizedSet(new LinkedHashSet()); v1.add(new SimpleObject(1)); Set v2 = Collections.synchronizedSet(new LinkedHashSet()); v2.add(new SimpleObject(2)); (new MTSetDeadlock(v1,v2)).start(); (new MTSetDeadlock(v2,v1)).start(); } public static void treeSetDeadlock() { Set v1 = Collections.synchronizedSet(new TreeSet()); v1.add(new SimpleObject(1)); Set v2 = Collections.synchronizedSet(new TreeSet()); v2.add(new SimpleObject(2)); (new MTSetDeadlock(v1,v2)).start(); (new MTSetDeadlock(v2,v1)).start(); } } //@The following comments are auto-generated to save options for testing the current file //@jcute.optionPrintOutput=true //@jcute.optionLogPath=true //@jcute.optionLogTraceAndInput=true //@jcute.optionGenerateJUnit=false //@jcute.optionExtraOptions= //@jcute.optionJUnitOutputFolderName=d:\sync\work\cute\java //@jcute.optionJUnitPkgName= //@jcute.optionNumberOfPaths=150 //@jcute.optionLogLevel=2 //@jcute.optionLogStatistics=true //@jcute.optionDepthForDFS=0 //@jcute.optionSearchStrategy=0 //@jcute.optionSequential=false //@jcute.optionQuickSearchThreshold=100 //@jcute.optionLogRace=true //@jcute.optionLogDeadlock=true //@jcute.optionLogException=true //@jcute.optionLogAssertion=true //@jcute.optionUseRandomInputs=false