KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > archive > util > TestUtils


1 /* TestUtils
2 *
3 * $Id: TestUtils.java,v 1.1.20.1 2007/01/13 01:31:40 stack-sf Exp $
4 *
5 * Created on Dec 28, 2004
6 *
7 * Copyright (C) 2004 Internet Archive.
8 *
9 * This file is part of the Heritrix web crawler (crawler.archive.org).
10 *
11 * Heritrix is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser Public License as published by
13 * the Free Software Foundation; either version 2.1 of the License, or
14 * any later version.
15 *
16 * Heritrix is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser Public License
22 * along with Heritrix; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 */

25 package org.archive.util;
26
27 import java.lang.ref.SoftReference JavaDoc;
28 import java.util.LinkedList JavaDoc;
29
30 /**
31  * Utility methods useful in testing situations.
32  *
33  * @author gojomo
34  */

35 public class TestUtils {
36
37     /**
38      * Temporarily exhaust memory, forcing weak/soft references to
39      * be broken.
40      */

41     public static void forceScarceMemory() {
42         // force soft references to be broken
43
LinkedList JavaDoc<SoftReference JavaDoc> hog = new LinkedList JavaDoc<SoftReference JavaDoc>();
44         long blocks = Runtime.getRuntime().maxMemory() / 1000000;
45         for(long l = 0; l <= blocks; l++) {
46             try {
47                 hog.add(new SoftReference JavaDoc<byte[]>(new byte[1000000]));
48             } catch (OutOfMemoryError JavaDoc e) {
49                 hog = null;
50                 break;
51             }
52         }
53     }
54 }
55
Popular Tags