package dstest; import instrumented.java.util.*; /** * Created by IntelliJ IDEA. * User: Koushik Sen (ksen@cs.uiuc.edu) * Date: Dec 26, 2005 * Time: 5:29:10 PM */ public class MTListDeadlock extends Thread { List v1; List v2; public MTListDeadlock(List v1, List v2) { this.v1 = v1; this.v2 = v2; } public void run() { v1.addAll(v2); } public static void linkedListDeadlock() { List v1 = Collections.synchronizedList(new LinkedList()); v1.add(new SimpleObject(1)); List v2 = Collections.synchronizedList(new LinkedList()); v2.add(new SimpleObject(1)); (new MTListDeadlock(v1,v2)).start(); (new MTListDeadlock(v2,v1)).start(); } public static void arrayListDeadlock() { List v1 = Collections.synchronizedList(new ArrayList()); v1.add(new SimpleObject(1)); List v2 = Collections.synchronizedList(new ArrayList()); v2.add(new SimpleObject(1)); (new MTListDeadlock(v1,v2)).start(); (new MTListDeadlock(v2,v1)).start(); } public static void vectorDeadlock() { List v1 = new Vector(); v1.add(new SimpleObject(1)); List v2 = new Vector(); v2.add(new SimpleObject(1)); (new MTListDeadlock(v1,v2)).start(); (new MTListDeadlock(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=10 //@jcute.optionLogLevel=1 //@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