package edu.stanford.nlp.util.concurrent; import junit.framework.TestCase; public class SynchronizedInternerTest extends TestCase { private final Object[] objects = { "salamander", "kitten", new String[]{"fred", "george", "sam"}, Integer.valueOf(5), Float.valueOf(5f), }; private final Thread[] threads = new Thread[100]; public void testGlobal() { for (int i = 0; i < threads.length; i++) { threads[i] = new Thread(new Runnable(){ @Override public void run() { for (Object object : objects) { Object interned = SynchronizedInterner.globalIntern(object); Thread.yield(); if (interned != object) throw new AssertionError("Interning failed for " + object); } } }); } for (Thread thread : threads) { thread.start(); } for (Thread thread : threads) { try { thread.join(); } catch (InterruptedException e) { e.printStackTrace(); } } } }