Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [aspectj-users] OutOfMemory error in aspectj

Hi Andy,

Thanks for the response. This is a similar error, but in the weaver code (with half the join points and advice). I hope this helps a bit more.

Also from what you are saying, does it mean that I am less likely to run over the limits if I implement my aspect like this

pointcut p1() : x

pointcut p2(): y

after(): p1() || p2() {
z
}

instead of

pointcut p1(): x

after (): p1() {
z
}

pointcut p2():y

after(): p2() {
z
}

TIA,
-S-
******************************
************************************* log file *****************************************************************

---- AspectJ Properties ---
AspectJ Compiler 1.6.3 built on Tuesday Dec 23, 2008 at 17:12:30 GMT
---- Dump Properties ---
Dump file: ajcore.20090328.133623.913.txt
Dump reason: abort
Dump on exception: true
Dump at exit condition: abort
---- System Properties ---
java.runtime.name=Java(TM) SE Runtime Environment
sun.boot.library.path=/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/i386
java.vm.version=11.2-b01
java.vm.vendor=Sun Microsystems Inc.
java.vendor.url="" href="http://java.sun.com/" target="_blank">http://java.sun.com/
path.separator=:
java.vm.name=Java HotSpot(TM) Server VM
file.encoding.pkg=sun.io
sun.java.launcher=SUN_STANDARD
user.country=US
sun.os.patch.level=unknown
java.vm.specification.name=Java Virtual Machine Specification
user.dir=/home/suman/exercise/steve_rnr/ytrace/ytrace
java.runtime.version=1.6.0_12-b04
java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment
java.endorsed.dirs=/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/endorsed
os.arch=i386
java.io.tmpdir=/tmp
line.separator=

java.vm.specification.vendor=Sun Microsystems Inc.
os.name=Linux
sun.jnu.encoding=ANSI_X3.4-1968
java.library.path=/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/i386/server:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/i386:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/../lib/i386:/u/suman/installs/lib:/usr/java/packages/lib/i386:/lib:/usr/lib
java.specification.name=Java Platform API Specification
java.class.version=50.0
sun.management.compiler=HotSpot Tiered Compilers
os.version=2.6.26-1-686
user.home=/home/suman
user.timezone=America/New_York
java.awt.printerjob=sun.print.PSPrinterJob
file.encoding=ANSI_X3.4-1968
java.specification.version=1.6
java.class.path=/home/suman/installs/aspectj1.6/lib/aspectjtools.jar:/usr/lib/jvm/java-6-sun/lib/tools.jar:/u/suman/installs/aspectj1.6/lib/:/u/suman/installs/lib/java/:.
user.name=suman
java.vm.specification.version=1.0
java.home=/usr/lib/jvm/java-6-sun-1.6.0.12/jre
sun.arch.data.model=32
user.language=en
java.specification.vendor=Sun Microsystems Inc.
java.vm.info=mixed mode
java.version=1.6.0_12
java.ext.dirs=/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/ext:/usr/java/packages/lib/ext
sun.boot.class.path=/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/resources.jar:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/rt.jar:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/sunrsasign.jar:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/jsse.jar:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/jce.jar:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/charsets.jar:/usr/lib/jvm/java-6-sun-1.6.0.12/jre/classes
java.vendor=Sun Microsystems Inc.
file.separator=/
java.vendor.url.bug=http://java.sun.com/cgi-bin/bugreport.cgi
sun.io.unicode.encoding=UnicodeLittle
sun.cpu.endian=little
sun.cpu.isalist=
---- Command Line ---
-Xmx4096m
-1.6
-classpath
/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace//analysis/build/aspects:/home/suman/exercise/steve_rnr/ytrace/ytrace/bin:/u/suman/installs/libs/java/jyaml-1.3.jar:/u/suman/installs/libs/java/log4j-1.2.15.jar:/u/suman/installs/aspectj1.6//lib/aspectjrt.jar:/home/suman/exercise/steve_rnr/ytrace/ytrace/bin:/u/suman/installs/libs/java/bcel-5.2.jar:/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/lib/Tidy.jar:.
-aspectpath
/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace//analysis/build/aspects
-inpath
/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/java/
-d
/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace//analysis/build/shared_bins
---- Full Classpath ---
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/resources.jar(1140700 bytes)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/rt.jar(51106468 bytes)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/sunrsasign.jar(missing)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/jsse.jar(618621 bytes)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/jce.jar(88256 bytes)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/charsets.jar(6737599 bytes)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/classes(missing)
/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/java(1 entries)
/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace/analysis/build/aspects(3 entries)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/ext/localedata.jar(841140 bytes)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/ext/sunjce_provider.jar(170239 bytes)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/ext/sunpkcs11.jar(226069 bytes)
/usr/lib/jvm/java-6-sun-1.6.0.12/jre/lib/ext/dnsns.jar(8239 bytes)
/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace/analysis/build/aspects(3 entries)
/home/suman/exercise/steve_rnr/ytrace/ytrace/bin(1 entries)
/home/suman/installs/libs/java/jyaml-1.3.jar(59324 bytes)
/home/suman/installs/libs/java/log4j-1.2.15.jar(391834 bytes)
/home/suman/installs/aspectj1.6/lib/aspectjrt.jar(115346 bytes)
/home/suman/exercise/steve_rnr/ytrace/ytrace/bin(1 entries)
/home/suman/installs/libs/java/bcel-5.2.jar(533339 bytes)
/home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/lib/Tidy.jar(138902 bytes)
/home/suman/exercise/steve_rnr/ytrace/ytrace(10 entries)
---- Compiler Messages ---
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:76::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:77::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:78::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:79::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:80::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:81::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:82::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:83::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:84::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:85::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:86::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:87::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:88::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:89::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:90::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:91::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:92::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:93::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:94::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:95::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:96::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:97::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:98::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:99::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:100::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:101::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:102::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:103::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:104::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlTidyParser.java:105::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlParser.java:165::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/crawl/CrawlParser.java:169::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/url/UrlHandle.java:84::0
warning at /SharedBinsAspect.aj:216::0 does not match because declaring type is java.util.Set, if match desired use target(java.util.HashSet) [Xlint:unmatchedSuperTypeInCall]
    see also: edu/brown/cs/cs032/crawler/url/UrlHandle.java:85::0
abort trouble in:
public class edu.brown.cs.cs032.crawler.crawl.CrawlMain extends java.lang.Object implements edu.brown.cs.cs032.crawler.crawl.CrawlConstants:
  private int num_threads
  private String url_file
  private boolean do_test
  private boolean do_create
  private int start_at
  private int url_count
  private int active_count
  private int page_total
  private int pages_queued
  private String base_directory
  private Object work_sema
  private Object urls_sema
  private Object future_sema
  private java.util.Set work_queue [Signature(Ljava/util/Set<Ledu/brown/cs/cs032/crawler/CrawlerUrl;>;)]
  private java.util.Set urls_done [Signature(Ljava/util/Set<Ljava/lang/String;>;)]
  private java.util.Set future_urls [Signature(Ljava/util/Set<Ljava/lang/String;>;)]
  private java.util.Collection thread_set [Signature(Ljava/util/Collection<Ledu/brown/cs/cs032/crawler/crawl/CrawlThread;>;)]
  private edu.brown.cs.cs032.crawler.CrawlerUrlManager url_manager
  public static void main(String[]):
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.main(java.lang.String[]))
    |               NEW edu.brown.cs.cs032.crawler.crawl.CrawlMain   (line 58)
    |               DUP
    |               ALOAD_0     // [Ljava/lang/String; args
    |               INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.<init> ([Ljava/lang/String;)V
    |               ASTORE_1
    |               ALOAD_1     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; cm   (line 60)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.process())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.process ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.process())
    |               ICONST_0   (line 62)
    | method-call(void java.lang.System.exit(int))
    | |             INVOKESTATIC java.lang.System.exit (I)V
    | method-call(void java.lang.System.exit(int))
    |               RETURN   (line 63)
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.main(java.lang.String[]))
  end public static void main(String[])

  private void <init>(String[]):
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 99)
                    INVOKESPECIAL java.lang.Object.<init> ()V
    constructor-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.<init>(java.lang.String[]))
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 100)
    |               ICONST_2
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.num_threads)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.num_threads I
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.num_threads)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 101)
    |               LDC "/u/spr/crawler/data/urllist"
    | field-set(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file Ljava/lang/String;
    | field-set(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 102)
    |               ICONST_1
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test Z
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 103)
    |               ICONST_0
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create Z
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 104)
    |               ICONST_0
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at I
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 105)
    |               SIPUSH 128
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count I
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 106)
    |               ICONST_0
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 107)
    |               SIPUSH 10000
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total I
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 108)
    |               ICONST_0
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued I
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 110)
    |               NEW java.lang.Object
    |               DUP
    |               INVOKESPECIAL java.lang.Object.<init> ()V
    | field-set(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
    | field-set(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 111)
    |               NEW java.util.LinkedHashSet
    |               DUP
    |               INVOKESPECIAL java.util.LinkedHashSet.<init> ()V
    | field-set(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue Ljava/util/Set;
    | field-set(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 112)
    |               NEW java.util.HashSet
    |               DUP
    |               INVOKESPECIAL java.util.HashSet.<init> ()V
    | field-set(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue Ljava/util/Set;
    | field-set(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 113)
    |               NEW java.lang.Object
    |               DUP
    |               INVOKESPECIAL java.lang.Object.<init> ()V
    | field-set(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_sema)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_sema Ljava/lang/Object;
    | field-set(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_sema)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 114)
    |               NEW java.util.HashSet
    |               DUP
    |               INVOKESPECIAL java.util.HashSet.<init> ()V
    | field-set(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_done)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_done Ljava/util/Set;
    | field-set(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_done)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 115)
    |               NEW java.lang.Object
    |               DUP
    |               INVOKESPECIAL java.lang.Object.<init> ()V
    | field-set(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_sema)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_sema Ljava/lang/Object;
    | field-set(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_sema)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 116)
    |               NEW java.util.HashSet
    |               DUP
    |               INVOKESPECIAL java.util.HashSet.<init> ()V
    | field-set(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_urls)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_urls Ljava/util/Set;
    | field-set(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_urls)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 117)
    |               NEW java.util.ArrayList
    |               DUP
    |               INVOKESPECIAL java.util.ArrayList.<init> ()V
    | field-set(java.util.Collection edu.brown.cs.cs032.crawler.crawl.CrawlMain.thread_set)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.thread_set Ljava/util/Collection;
    | field-set(java.util.Collection edu.brown.cs.cs032.crawler.crawl.CrawlMain.thread_set)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 118)
    |               ACONST_NULL
    | field-set(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory Ljava/lang/String;
    | field-set(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 120)
    |               ALOAD_1     // [Ljava/lang/String; args
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.scanArgs(java.lang.String[]))
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.scanArgs ([Ljava/lang/String;)V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.scanArgs(java.lang.String[]))
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 122)
    | method-call(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.CrawlerFactory.createUrlManager())
    | |             INVOKESTATIC edu.brown.cs.cs032.crawler.CrawlerFactory.createUrlManager ()Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
    | method-call(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.CrawlerFactory.createUrlManager())
    | field-set(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
    | field-set(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 123)
    | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
    | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | field-get(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test Z
    | field-get(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test)
    | method-call(void edu.brown.cs.cs032.crawler.CrawlerUrlManager.setDoTesting(boolean))
    | |             INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrlManager.setDoTesting (Z)V
    | method-call(void edu.brown.cs.cs032.crawler.CrawlerUrlManager.setDoTesting(boolean))
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 124)
    | field-get(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory Ljava/lang/String;
    | field-get(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory)
    |               IFNULL L0
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 125)
    | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
    | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | field-get(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory Ljava/lang/String;
    | field-get(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory)
    | method-call(void edu.brown.cs.cs032.crawler.CrawlerUrlManager.setBaseDirectory(java.lang.String))
    | |             INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrlManager.setBaseDirectory (Ljava/lang/String;)V
    | method-call(void edu.brown.cs.cs032.crawler.CrawlerUrlManager.setBaseDirectory(java.lang.String))
    |           L0: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 127)
    | field-get(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create Z
    | field-get(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create)
    |               IFEQ L1
    | field-get(java.io.PrintStream java.lang.System.err)
    | |             GETSTATIC java.lang.System.err Ljava/io/PrintStream;   (line 128)
    | field-get(java.io.PrintStream java.lang.System.err)
    |               LDC "CRAWL: Clearing Repository"
    | method-call(void java.io.PrintStream.println(java.lang.String))
    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
    | method-call(void java.io.PrintStream.println(java.lang.String))
    | catch java.io.IOException -> E0
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 130)
    | | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
    | | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    | | method-call(void edu.brown.cs.cs032.crawler.CrawlerUrlManager.clearRepository())
    | | |           INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrlManager.clearRepository ()V
    | | method-call(void edu.brown.cs.cs032.crawler.CrawlerUrlManager.clearRepository())
    | catch java.io.IOException -> E0
    |               GOTO L1   (line 134)
    |           E0: ASTORE_2   (line 131)
    | field-get(java.io.PrintStream java.lang.System.err)
    | |             GETSTATIC java.lang.System.err Ljava/io/PrintStream;   (line 132)
    | field-get(java.io.PrintStream java.lang.System.err)
    |               NEW java.lang.StringBuilder
    |               DUP
    |               INVOKESPECIAL java.lang.StringBuilder.<init> ()V
    |               LDC "Problem clearing repository: "
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String))
    |               ALOAD_2     // Ljava/io/IOException; e
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.Object))
    | |             INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.Object))
    | method-call(java.lang.String java.lang.StringBuilder.toString())
    | |             INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.StringBuilder.toString())
    | method-call(void java.io.PrintStream.println(java.lang.String))
    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
    | method-call(void java.io.PrintStream.println(java.lang.String))
    |               ICONST_1   (line 133)
    | method-call(void java.lang.System.exit(int))
    | |             INVOKESTATIC java.lang.System.exit (I)V
    | method-call(void java.lang.System.exit(int))
    |           L1: RETURN   (line 136)
    constructor-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.<init>(java.lang.String[]))
  end private void <init>(String[])

  private void scanArgs(String[]):
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.scanArgs(java.lang.String[]))
    |               ICONST_0   (line 145)
    |               ISTORE_2
    |           L0: ILOAD_2     // I i
    |               ALOAD_1     // [Ljava/lang/String; args
    |               ARRAYLENGTH
    |               IF_ICMPGE L10
    |               ALOAD_1     // [Ljava/lang/String; args   (line 146)
    |               ILOAD_2     // I i
    |               AALOAD
    |               LDC "-t"
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.String.startsWith (Ljava/lang/String;)Z
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    |               IFEQ L1
    |               ILOAD_2     // I i
    |               ICONST_1
    |               IADD
    |               ALOAD_1     // [Ljava/lang/String; args
    |               ARRAYLENGTH
    |               IF_ICMPGE L1
    | catch java.lang.NumberFormatException -> E0
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 149)
    | |             ALOAD_1     // [Ljava/lang/String; args
    | |             IINC_2 1     // I i
    | |             ILOAD_2     // I i
    | |             AALOAD
    | | method-call(int java.lang.Integer.parseInt(java.lang.String))
    | | |           INVOKESTATIC java.lang.Integer.parseInt (Ljava/lang/String;)I
    | | method-call(int java.lang.Integer.parseInt(java.lang.String))
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.num_threads)
    | | |           PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.num_threads I
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.num_threads)
    | catch java.lang.NumberFormatException -> E0
    |               GOTO L9   (line 152)
    |           E0: ASTORE_3   (line 150)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 151)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    |               GOTO L9   (line 152)
    |           L1: ALOAD_1     // [Ljava/lang/String; args   (line 153)
    |               ILOAD_2     // I i
    |               AALOAD
    |               LDC "-u"
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.String.startsWith (Ljava/lang/String;)Z
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    |               IFEQ L2
    |               ILOAD_2     // I i
    |               ICONST_1
    |               IADD
    |               ALOAD_1     // [Ljava/lang/String; args
    |               ARRAYLENGTH
    |               IF_ICMPGE L2
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 155)
    |               ALOAD_1     // [Ljava/lang/String; args
    |               IINC_2 1     // I i
    |               ILOAD_2     // I i
    |               AALOAD
    | field-set(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file Ljava/lang/String;
    | field-set(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file)
    |               GOTO L9
    |           L2: ALOAD_1     // [Ljava/lang/String; args   (line 156)
    |               ILOAD_2     // I i
    |               AALOAD
    |               LDC "-s"
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.String.startsWith (Ljava/lang/String;)Z
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    |               IFEQ L3
    |               ILOAD_2     // I i
    |               ICONST_1
    |               IADD
    |               ALOAD_1     // [Ljava/lang/String; args
    |               ARRAYLENGTH
    |               IF_ICMPGE L3
    | catch java.lang.NumberFormatException -> E1
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 160)
    | |             ALOAD_1     // [Ljava/lang/String; args
    | |             IINC_2 1     // I i
    | |             ILOAD_2     // I i
    | |             AALOAD
    | | method-call(int java.lang.Integer.parseInt(java.lang.String))
    | | |           INVOKESTATIC java.lang.Integer.parseInt (Ljava/lang/String;)I
    | | method-call(int java.lang.Integer.parseInt(java.lang.String))
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at)
    | | |           PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at I
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at)
    | catch java.lang.NumberFormatException -> E1
    |               GOTO L9   (line 163)
    |           E1: ASTORE_3   (line 161)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 162)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    |               GOTO L9   (line 163)
    |           L3: ALOAD_1     // [Ljava/lang/String; args   (line 164)
    |               ILOAD_2     // I i
    |               AALOAD
    |               LDC "-p"
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.String.startsWith (Ljava/lang/String;)Z
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    |               IFEQ L4
    |               ILOAD_2     // I i
    |               ICONST_1
    |               IADD
    |               ALOAD_1     // [Ljava/lang/String; args
    |               ARRAYLENGTH
    |               IF_ICMPGE L4
    | catch java.lang.NumberFormatException -> E2
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 167)
    | |             ALOAD_1     // [Ljava/lang/String; args
    | |             IINC_2 1     // I i
    | |             ILOAD_2     // I i
    | |             AALOAD
    | | method-call(int java.lang.Integer.parseInt(java.lang.String))
    | | |           INVOKESTATIC java.lang.Integer.parseInt (Ljava/lang/String;)I
    | | method-call(int java.lang.Integer.parseInt(java.lang.String))
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count)
    | | |           PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count I
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count)
    | catch java.lang.NumberFormatException -> E2
    |               GOTO L9   (line 170)
    |           E2: ASTORE_3   (line 168)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 169)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    |               GOTO L9   (line 170)
    |           L4: ALOAD_1     // [Ljava/lang/String; args   (line 171)
    |               ILOAD_2     // I i
    |               AALOAD
    |               LDC "-n"
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.String.startsWith (Ljava/lang/String;)Z
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    |               IFEQ L5
    |               ILOAD_2     // I i
    |               ICONST_1
    |               IADD
    |               ALOAD_1     // [Ljava/lang/String; args
    |               ARRAYLENGTH
    |               IF_ICMPGE L5
    | catch java.lang.NumberFormatException -> E3
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 174)
    | |             ALOAD_1     // [Ljava/lang/String; args
    | |             IINC_2 1     // I i
    | |             ILOAD_2     // I i
    | |             AALOAD
    | | method-call(int java.lang.Integer.parseInt(java.lang.String))
    | | |           INVOKESTATIC java.lang.Integer.parseInt (Ljava/lang/String;)I
    | | method-call(int java.lang.Integer.parseInt(java.lang.String))
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total)
    | | |           PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total I
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total)
    | catch java.lang.NumberFormatException -> E3
    |               GOTO L9   (line 177)
    |           E3: ASTORE_3   (line 175)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 176)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    |               GOTO L9   (line 177)
    |           L5: ALOAD_1     // [Ljava/lang/String; args   (line 178)
    |               ILOAD_2     // I i
    |               AALOAD
    |               LDC "-c"
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.String.startsWith (Ljava/lang/String;)Z
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    |               IFEQ L6
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 179)
    |               ICONST_1
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create Z
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create)
    |               GOTO L9
    |           L6: ALOAD_1     // [Ljava/lang/String; args   (line 180)
    |               ILOAD_2     // I i
    |               AALOAD
    |               LDC "-r"
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.String.startsWith (Ljava/lang/String;)Z
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    |               IFEQ L7
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 181)
    |               ICONST_0
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test Z
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_test)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 182)
    |               ICONST_0
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create Z
    | field-set(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.do_create)
    |               GOTO L9
    |           L7: ALOAD_1     // [Ljava/lang/String; args   (line 183)
    |               ILOAD_2     // I i
    |               AALOAD
    |               LDC "-d"
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.String.startsWith (Ljava/lang/String;)Z
    | method-call(boolean java.lang.String.startsWith(java.lang.String))
    |               IFEQ L8
    |               ILOAD_2     // I i
    |               ICONST_1
    |               IADD
    |               ALOAD_1     // [Ljava/lang/String; args
    |               ARRAYLENGTH
    |               IF_ICMPGE L8
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 185)
    |               ALOAD_1     // [Ljava/lang/String; args
    |               IINC_2 1     // I i
    |               ILOAD_2     // I i
    |               AALOAD
    | field-set(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory Ljava/lang/String;
    | field-set(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.base_directory)
    |               GOTO L9
    |           L8: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 187)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    |           L9: IINC_2 1     // I i   (line 145)
    |               GOTO L0
    |          L10: RETURN   (line 189)
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.scanArgs(java.lang.String[]))
  end private void scanArgs(String[])

  private void badArgs():
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
    | field-get(java.io.PrintStream java.lang.System.err)
    | |             GETSTATIC java.lang.System.err Ljava/io/PrintStream;   (line 192)
    | field-get(java.io.PrintStream java.lang.System.err)
    |               LDC "CRAWL: crawl [-t #threads] [-u urlfile] [-run] [-s start#] [-n #pages]"
    | method-call(void java.io.PrintStream.println(java.lang.String))
    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
    | method-call(void java.io.PrintStream.println(java.lang.String))
    | field-get(java.io.PrintStream java.lang.System.err)
    | |             GETSTATIC java.lang.System.err Ljava/io/PrintStream;   (line 194)
    | field-get(java.io.PrintStream java.lang.System.err)
    |               LDC "             [-p #urls to process] [-create]"
    | method-call(void java.io.PrintStream.println(java.lang.String))
    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
    | method-call(void java.io.PrintStream.println(java.lang.String))
    |               ICONST_0   (line 195)
    | method-call(void java.lang.System.exit(int))
    | |             INVOKESTATIC java.lang.System.exit (I)V
    | method-call(void java.lang.System.exit(int))
    |               RETURN   (line 196)
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.badArgs())
  end private void badArgs()

  private void process():
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.process())
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 205)
    |               ICONST_1
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | |             PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | field-get(java.io.PrintStream java.lang.System.err)
    | |             GETSTATIC java.lang.System.err Ljava/io/PrintStream;   (line 207)
    | field-get(java.io.PrintStream java.lang.System.err)
    |               NEW java.lang.StringBuilder
    |               DUP
    |               INVOKESPECIAL java.lang.StringBuilder.<init> ()V
    |               LDC "CRAWL: Start processing at "
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String))
    |               NEW java.util.Date
    |               DUP
    |               INVOKESPECIAL java.util.Date.<init> ()V
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.Object))
    | |             INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.Object))
    | method-call(java.lang.String java.lang.StringBuilder.toString())
    | |             INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.StringBuilder.toString())
    | method-call(void java.io.PrintStream.println(java.lang.String))
    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
    | method-call(void java.io.PrintStream.println(java.lang.String))
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 209)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.startThreads())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.startThreads ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.startThreads())
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 210)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.loadUrls())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.loadUrls ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.loadUrls())
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 212)
    | field-get(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
    | field-get(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema)
    |               DUP
    |               ASTORE_1
    |               MONITORENTER
    | finally -> E1
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 213)
    | |             DUP
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | |             ICONST_1
    | |             ISUB
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | | |           PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    | | field-set(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 214)
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count)
    | |             IFNE L0
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 215)
    | | field-get(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
    | | field-get(java.lang.Object edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema)
    | | method-call(void java.lang.Object.notifyAll())
    | | |           INVOKEVIRTUAL java.lang.Object.notifyAll ()V
    | | method-call(void java.lang.Object.notifyAll())
    | |         L0: ALOAD_1   (line 216)
    | |             MONITOREXIT
    | finally -> E1
    |               GOTO L1
    | finally -> E1
    | |         E1: ASTORE_2
    | |             ALOAD_1
    | |             MONITOREXIT
    | finally -> E1
    |               ALOAD_2
    |               ATHROW
    |           L1: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 218)
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.waitForDone())
    | |             INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.waitForDone ()V
    | method-call(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.waitForDone())
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 220)
    | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
    | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | field-get(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file Ljava/lang/String;
    | field-get(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file)
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | field-get(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_urls)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_urls Ljava/util/Set;
    | field-get(java.util.Set edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_urls)
    | method-call(void edu.brown.cs.cs032.crawler.CrawlerUrlManager.addFutureUrls(java.lang.String, java.util.Collection))
    | |             INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrlManager.addFutureUrls (Ljava/lang/String;Ljava/util/Collection;)V
    | method-call(void edu.brown.cs.cs032.crawler.CrawlerUrlManager.addFutureUrls(java.lang.String, java.util.Collection))
    | field-get(java.io.PrintStream java.lang.System.err)
    | |             GETSTATIC java.lang.System.err Ljava/io/PrintStream;   (line 222)
    | field-get(java.io.PrintStream java.lang.System.err)
    |               NEW java.lang.StringBuilder
    |               DUP
    |               INVOKESPECIAL java.lang.StringBuilder.<init> ()V
    |               LDC "CRAWL: Done processing at "
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String))
    |               NEW java.util.Date
    |               DUP
    |               INVOKESPECIAL java.util.Date.<init> ()V
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.Object))
    | |             INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.Object))
    | method-call(java.lang.String java.lang.StringBuilder.toString())
    | |             INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String;
    | method-call(java.lang.String java.lang.StringBuilder.toString())
    | method-call(void java.io.PrintStream.println(java.lang.String))
    | |             INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
    | method-call(void java.io.PrintStream.println(java.lang.String))
    |               RETURN   (line 223)
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.process())
  end private void process()

  private void loadUrls():
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.loadUrls())
    | catch java.io.IOException -> E1
    | |             NEW java.io.LineNumberReader   (line 233)
    | |             DUP
    | |             NEW java.io.FileReader
    | |             DUP
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | | field-get(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file Ljava/lang/String;
    | | field-get(java.lang.String edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_file)
    | |             INVOKESPECIAL java.io.FileReader.<init> (Ljava/lang/String;)V
    | |             INVOKESPECIAL java.io.LineNumberReader.<init> (Ljava/io/Reader;)V
    | |             ASTORE_1
    | |             ICONST_0   (line 236)
    | |             ISTORE_2
    | |         L0: ILOAD_2     // I i
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at I
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.start_at)
    | |             IF_ICMPGE L2
    | |             ALOAD_1     // Ljava/io/LineNumberReader; lnr   (line 237)
    | | method-call(java.lang.String java.io.LineNumberReader.readLine())
    | | |           INVOKEVIRTUAL java.io.LineNumberReader.readLine ()Ljava/lang/String;
    | | method-call(java.lang.String java.io.LineNumberReader.readLine())
    | |             ASTORE_3
    | |             ALOAD_3     // Ljava/lang/String; ln   (line 238)
    | |             IFNONNULL L1
    | catch java.io.IOException -> E1
    |               RETURN   (line 239)
    | catch java.io.IOException -> E1
    | |         L1: IINC_2 1     // I i   (line 236)
    | |             GOTO L0
    | |         L2: ICONST_0   (line 241)
    | |             ISTORE_2
    | |         L3: ILOAD_2     // I i
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count I
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_count)
    | |             IF_ICMPGE L6
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued I
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued)
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total I
    | | field-get(int edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total)
    | |             IF_ICMPGT L6
    | |             ALOAD_1     // Ljava/io/LineNumberReader; lnr   (line 242)
    | | method-call(java.lang.String java.io.LineNumberReader.readLine())
    | | |           INVOKEVIRTUAL java.io.LineNumberReader.readLine ()Ljava/lang/String;
    | | method-call(java.lang.String java.io.LineNumberReader.readLine())
    | |             ASTORE_3
    | |             ALOAD_3     // Ljava/lang/String; ln   (line 243)
    | |             IFNONNULL L4
    | |             GOTO L6   (line 244)
    | |         L4: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 245)
    | | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    | | |           GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
    | | field-get(edu.brown.cs.cs032.crawler.CrawlerUrlManager edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager)
    | |             ALOAD_3     // Ljava/lang/String; ln
    | |             ACONST_NULL
    | | method-call(edu.brown.cs.cs032.crawler.CrawlerUrl edu.brown.cs.cs032.crawler.CrawlerUrlManager.normalizeNewUrl(java.lang.String, edu.brown.cs.cs032.crawler.CrawlerUrl))
    | | |           INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrlManager.normalizeNewUrl (Ljava/lang/String;Ledu/brown/cs/cs032/crawler/CrawlerUrl;)Ledu/brown/cs/cs032/crawler/CrawlerUrl;
    | | method-call(edu.brown.cs.cs032.crawler.CrawlerUrl edu.brown.cs.cs032.crawler.CrawlerUrlManager.normalizeNewUrl(java.lang.String, edu.brown.cs.cs032.crawler.CrawlerUrl))
    | |             ASTORE 4
    | |             ALOAD 4     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url   (line 246)
    | |             IFNULL L5
    | |             ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    | |             ALOAD 4     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url
    | | method-call(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.addUrlCandidate(edu.brown.cs.cs032.crawler.CrawlerUrl))
    | | |           INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.addUrlCandidate (Ledu/brown/cs/cs032/crawler/CrawlerUrl;)Z
    | | method-call(boolean edu.brown.cs.cs032.crawler.crawl.CrawlMain.addUrlCandidate(edu.brown.cs.cs032.crawler.CrawlerUrl))
    | |             IFEQ L5
    | |             IINC_2 1     // I i   (line 247)
    | |         L5: GOTO L3   (line 248)
    | |         L6: ALOAD_1     // Ljava/io/LineNumberReader; lnr   (line 249)
    | | method-call(void java.io.LineNumberReader.close())
    | | |           INVOKEVIRTUAL java.io.LineNumberReader.close ()V
    | | method-call(void java.io.LineNumberReader.close())
    | catch java.io.IOException -> E1
    |               GOTO L7   (line 253)
    |           E1: ASTORE_1   (line 250)
    | field-get(java.io.PrintStream java.lang.System.err)
    | |             GETSTATIC java.lang.System.err Ljava/io/PrintStream;   (line 251)
    | field-get(java.io.PrintStream java.lang.System.err)
    |               NEW java.lang.StringBuilder
    |               DUP
    |               INVOKESPECIAL java.lang.StringBuilder.<init> ()V
    |               LDC "CRAWL: Problem reading url file: "
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String))
    | |             INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/String;)Ljava/lang/StringBuilder;
    | method-call(java.lang.StringBuilder java.lang.StringBuilder.append(java.lang.String))
    |               ALOAD_1     // Ljava/io/IOException; e
    |               INVOKEVIRTUAL java.lang.StringBuilder.append (Ljava/lang/Object;)Ljava/lang/StringBuilder;
    |               INVOKEVIRTUAL java.lang.StringBuilder.toString ()Ljava/lang/String;
    |               INVOKEVIRTUAL java.io.PrintStream.println (Ljava/lang/String;)V
    |               ICONST_1   (line 252)
    |               INVOKESTATIC java.lang.System.exit (I)V
    |           L7: RETURN   (line 254)
    method-execution(void edu.brown.cs.cs032.crawler.crawl.CrawlMain.loadUrls())
  end private void loadUrls()

  void addRedirectUrl(edu.brown.cs.cs032.crawler.CrawlerUrl, String):
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 257)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
                    ALOAD_2     // Ljava/lang/String; nm
                    ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; base
                    INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrlManager.normalizeNewUrl (Ljava/lang/String;Ledu/brown/cs/cs032/crawler/CrawlerUrl;)Ledu/brown/cs/cs032/crawler/CrawlerUrl;
                    ASTORE_3
                    ALOAD_3     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url   (line 259)
                    IFNULL L0
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 260)
                    ALOAD_3     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url
                    INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.addUrlCandidate (Ledu/brown/cs/cs032/crawler/CrawlerUrl;)Z
                    POP
                L0: RETURN   (line 261)
  end void addRedirectUrl(edu.brown.cs.cs032.crawler.CrawlerUrl, String)

  edu.brown.cs.cs032.crawler.CrawlerUrl addUrlCandidate(edu.brown.cs.cs032.crawler.CrawlerUrl, String):
                    ALOAD_2     // Ljava/lang/String; nm   (line 264)
                    IFNONNULL L0
                    ACONST_NULL   (line 265)
                    ARETURN
                L0: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 267)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
                    ALOAD_2     // Ljava/lang/String; nm
                    ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; base
                    INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrlManager.normalizeNewUrl (Ljava/lang/String;Ledu/brown/cs/cs032/crawler/CrawlerUrl;)Ledu/brown/cs/cs032/crawler/CrawlerUrl;
                    ASTORE_3
                    ALOAD_3     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url   (line 269)
                    IFNULL L1
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued I
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total I
                    IF_ICMPLE L2
                L1: ALOAD_3     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url   (line 270)
                    ARETURN
                L2: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 272)
                    ALOAD_3     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url
                    INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlMain.addUrlCandidate (Ledu/brown/cs/cs032/crawler/CrawlerUrl;)Z
                    POP
                    ACONST_NULL   (line 274)
                    ARETURN
  end edu.brown.cs.cs032.crawler.CrawlerUrl addUrlCandidate(edu.brown.cs.cs032.crawler.CrawlerUrl, String)

  private boolean addUrlCandidate(edu.brown.cs.cs032.crawler.CrawlerUrl):
                    ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url   (line 278)
                    IFNONNULL L0
                    ICONST_0   (line 279)
                    IRETURN
                L0: ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url   (line 281)
                    INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrl.getNormalizedName ()Ljava/lang/String;
                    ASTORE_2
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 283)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_sema Ljava/lang/Object;
                    DUP
                    ASTORE_3
                    MONITORENTER
    finally -> E2
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 284)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_done Ljava/util/Set;
    |               ALOAD_2     // Ljava/lang/String; surl
    |               INVOKEINTERFACE java.util.Set.contains (Ljava/lang/Object;)Z
    |               IFEQ L1
    |               ICONST_0   (line 285)
    |               ALOAD_3
    |               MONITOREXIT
    finally -> E2
                    IRETURN
    finally -> E2
    |           L1: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 286)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.urls_done Ljava/util/Set;
    |               ALOAD_2     // Ljava/lang/String; surl
    |               INVOKEINTERFACE java.util.Set.add (Ljava/lang/Object;)Z
    |               POP
    |               ALOAD_3   (line 287)
    |               MONITOREXIT
    finally -> E2
                    GOTO L2
    finally -> E2
    |           E2: ASTORE 4
    |               ALOAD_3
    |               MONITOREXIT
    finally -> E2
                    ALOAD 4
                    ATHROW
                L2: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 289)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
                    DUP
                    ASTORE_3
                    MONITORENTER
    finally -> E5
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 290)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue Ljava/util/Set;
    |               ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url
    |               INVOKEINTERFACE java.util.Set.contains (Ljava/lang/Object;)Z
    |               IFEQ L3
    |               ICONST_0   (line 291)
    |               ALOAD_3
    |               MONITOREXIT
    finally -> E5
                    IRETURN
    finally -> E5
    |           L3: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 292)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued I
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total I
    |               IF_ICMPGT L4
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 293)
    |               DUP
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued I
    |               ICONST_1
    |               IADD
    |               PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.pages_queued I
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 294)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue Ljava/util/Set;
    |               ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; url
    |               INVOKEINTERFACE java.util.Set.add (Ljava/lang/Object;)Z
    |               POP
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 295)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
    |               INVOKEVIRTUAL java.lang.Object.notify ()V
    |           L4: ALOAD_3   (line 297)
    |               MONITOREXIT
    finally -> E5
                    GOTO L5
    finally -> E5
    |           E5: ASTORE 5
    |               ALOAD_3
    |               MONITOREXIT
    finally -> E5
                    ALOAD 5
                    ATHROW
                L5: ICONST_1   (line 299)
                    IRETURN
  end private boolean addUrlCandidate(edu.brown.cs.cs032.crawler.CrawlerUrl)

  edu.brown.cs.cs032.crawler.CrawlerUrl getNextUrl():
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 303)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
                    DUP
                    ASTORE_1
                    MONITORENTER
    finally -> E1
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 304)
    |               DUP
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               ICONST_1
    |               ISUB
    |               PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               ALOAD_1   (line 305)
    |               MONITOREXIT
    finally -> E1
                    GOTO L0
    finally -> E1
    |           E1: ASTORE_2
    |               ALOAD_1
    |               MONITOREXIT
    finally -> E1
                    ALOAD_2
                    ATHROW
                L0: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 310)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
                    DUP
                    ASTORE_2
                    MONITORENTER
    finally -> E5
    |           L1: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 311)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue Ljava/util/Set;
    |               INVOKEINTERFACE java.util.Set.isEmpty ()Z
    |               IFEQ L3
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 312)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               IFNE L2
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 313)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
    |               INVOKEVIRTUAL java.lang.Object.notifyAll ()V
    |               ACONST_NULL   (line 314)
    |               ALOAD_2
    |               MONITOREXIT
    finally -> E5
                    ARETURN
    finally -> E5
    | catch java.lang.InterruptedException -> E2
    | |         L2: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 317)
    | |             GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
    | |             INVOKEVIRTUAL java.lang.Object.wait ()V
    | catch java.lang.InterruptedException -> E2
    |               GOTO L1   (line 319)
    |           E2: ASTORE_3   (line 318)
    |               GOTO L1   (line 319)
    |           L3: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 322)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue Ljava/util/Set;
    |               INVOKEINTERFACE java.util.Set.iterator ()Ljava/util/Iterator;
    |               ASTORE_3
    |               ALOAD_3     // Ljava/util/Iterator; it   (line 323)
    |               INVOKEINTERFACE java.util.Iterator.next ()Ljava/lang/Object;
    |               CHECKCAST edu.brown.cs.cs032.crawler.CrawlerUrl
    |               ASTORE_1
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 324)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_queue Ljava/util/Set;
    |               ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; u
    |               INVOKEINTERFACE java.util.Set.remove (Ljava/lang/Object;)Z
    |               POP
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 325)
    |               DUP
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               ICONST_1
    |               IADD
    |               PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               ALOAD_2   (line 326)
    |               MONITOREXIT
    finally -> E5
                    GOTO L4
    finally -> E5
    |           E5: ASTORE 4
    |               ALOAD_2
    |               MONITOREXIT
    finally -> E5
                    ALOAD 4
                    ATHROW
                L4: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 328)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.url_manager Ledu/brown/cs/cs032/crawler/CrawlerUrlManager;
                    ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; u
                    INVOKEINTERFACE edu.brown.cs.cs032.crawler.CrawlerUrlManager.beginProcessing (Ledu/brown/cs/cs032/crawler/CrawlerUrl;)Z
                    IFEQ L5
                    ALOAD_1     // Ledu/brown/cs/cs032/crawler/CrawlerUrl; u   (line 329)
                    ARETURN
                L5: ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 331)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
                    DUP
                    ASTORE_2
                    MONITORENTER
    finally -> E7
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 332)
    |               DUP
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total I
    |               ICONST_1
    |               IADD
    |               PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.page_total I
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 333)
    |               DUP
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               ICONST_1
    |               ISUB
    |               PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               ALOAD_2   (line 334)
    |               MONITOREXIT
    finally -> E7
                    GOTO L6
    finally -> E7
    |           E7: ASTORE 5
    |               ALOAD_2
    |               MONITOREXIT
    finally -> E7
                    ALOAD 5
                    ATHROW
                L6: GOTO L0   (line 336)
  end edu.brown.cs.cs032.crawler.CrawlerUrl getNextUrl()

  void addFutureUrls(java.util.Collection):
                    ALOAD_1     // Ljava/util/Collection; c   (line 340)
                    IFNULL L0
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 341)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_sema Ljava/lang/Object;
                    DUP
                    ASTORE_2
                    MONITORENTER
    finally -> E1
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 342)
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.future_urls Ljava/util/Set;
    |               ALOAD_1     // Ljava/util/Collection; c
    |               INVOKEINTERFACE java.util.Set.addAll (Ljava/util/Collection;)Z
    |               POP
    |               ALOAD_2   (line 343)
    |               MONITOREXIT
    finally -> E1
                    GOTO L0
    finally -> E1
    |           E1: ASTORE_3
    |               ALOAD_2
    |               MONITOREXIT
    finally -> E1
                    ALOAD_3
                    ATHROW
                L0: RETURN   (line 345)
  end void addFutureUrls(java.util.Collection)

  private void startThreads():
                    ICONST_0   (line 354)
                    ISTORE_1
                L0: ILOAD_1     // I i
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.num_threads I
                    IF_ICMPGE L2
                    NEW edu.brown.cs.cs032.crawler.crawl.CrawlThread   (line 355)
                    DUP
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this
                    ILOAD_1     // I i
                    INVOKESPECIAL edu.brown.cs.cs032.crawler.crawl.CrawlThread.<init> (Ledu/brown/cs/cs032/crawler/crawl/CrawlMain;I)V
                    ASTORE_2
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 356)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.thread_set Ljava/util/Collection;
                    ALOAD_2     // Ledu/brown/cs/cs032/crawler/crawl/CrawlThread; ct
                    INVOKEINTERFACE java.util.Collection.add (Ljava/lang/Object;)Z
                    POP
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 357)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.work_sema Ljava/lang/Object;
                    DUP
                    ASTORE_3
                    MONITORENTER
    finally -> E1
    |               ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 358)
    |               DUP
    |               GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               ICONST_1
    |               IADD
    |               PUTFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.active_count I
    |               ALOAD_2     // Ledu/brown/cs/cs032/crawler/crawl/CrawlThread; ct   (line 359)
    |               INVOKEVIRTUAL edu.brown.cs.cs032.crawler.crawl.CrawlThread.start ()V
    |               ALOAD_3   (line 360)
    |               MONITOREXIT
    finally -> E1
                    GOTO L1
    finally -> E1
    |           E1: ASTORE 4
    |               ALOAD_3
    |               MONITOREXIT
    finally -> E1
                    ALOAD 4
                    ATHROW
                L1: IINC_1 1     // I i   (line 354)
                    GOTO L0
                L2: RETURN   (line 362)
  end private void startThreads()

  private void waitForDone():
                    ALOAD_0     // Ledu/brown/cs/cs032/crawler/crawl/CrawlMain; this   (line 365)
                    GETFIELD edu.brown.cs.cs032.crawler.crawl.CrawlMain.thread_set Ljava/util/Collection;
                    INVOKEINTERFACE java.util.Collection.iterator ()Ljava/util/Iterator;
                    ASTORE_1
                L0: ALOAD_1     // Ljava/util/Iterator; i$
                    INVOKEINTERFACE java.util.Iterator.hasNext ()Z
                    IFEQ L2
                    ALOAD_1     // Ljava/util/Iterator; i$
                    INVOKEINTERFACE java.util.Iterator.next ()Ljava/lang/Object;
                    CHECKCAST edu.brown.cs.cs032.crawler.crawl.CrawlThread
                    ASTORE_2
    catch java.lang.InterruptedException -> E0
    |               ALOAD_2     // Ledu/brown/cs/cs032/crawler/crawl/CrawlThread; ct   (line 367)
    |               INVOKEVIRTUAL edu.brown.cs.cs032.crawler.crawl.CrawlThread.join ()V
    catch java.lang.InterruptedException -> E0
                    GOTO L1   (line 369)
                E0: ASTORE_3   (line 368)
                L1: GOTO L0   (line 369)
                L2: RETURN   (line 371)
  end private void waitForDone()

end public class edu.brown.cs.cs032.crawler.crawl.CrawlMain
 -- (OutOfMemoryError) GC overhead limit exceeded
GC overhead limit exceeded
java.lang.OutOfMemoryError: GC overhead limit exceeded
    at java.util.Arrays.copyOfRange(Arrays.java:3209)
    at java.lang.String.<init>(String.java:216)
    at java.lang.StringBuffer.toString(StringBuffer.java:585)
    at org.aspectj.weaver.ReferenceType.makeParameterizedSignature(ReferenceType.java:828)
    at org.aspectj.weaver.ReferenceType.<init>(ReferenceType.java:75)
    at org.aspectj.weaver.TypeFactory.createParameterizedType(TypeFactory.java:44)
    at org.aspectj.weaver.ResolvedType.parameterize(ResolvedType.java:1945)
    at org.aspectj.weaver.ReferenceType.getSuperclass(ReferenceType.java:726)
    at org.aspectj.weaver.ResolvedType.getDirectSupertypes(ResolvedType.java:67)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:431)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:432)
    at org.aspectj.weaver.ReferenceType.isAssignableFrom(ReferenceType.java:302)
    at org.aspectj.weaver.patterns.KindedPointcut.warnOnConfusingSig(KindedPointcut.java:153)
    at org.aspectj.weaver.patterns.KindedPointcut.matchInternal(KindedPointcut.java:109)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146)
    at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:54)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146)
    at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:52)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146)
    at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:52)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146)
    at org.aspectj.weaver.patterns.AndPointcut.matchInternal(AndPointcut.java:52)
    at org.aspectj.weaver.patterns.Pointcut.match(Pointcut.java:146)
    at org.aspectj.weaver.ShadowMunger.match(ShadowMunger.java:69)
    at org.aspectj.weaver.Advice.match(Advice.java:112)
    at org.aspectj.weaver.bcel.BcelAdvice.match(BcelAdvice.java:140)
    at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2981)
    at org.aspectj.weaver.bcel.BcelClassWeaver.matchInvokeInstruction(BcelClassWeaver.java:2940)
    at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2697)
    at org.aspectj.weaver.bcel.BcelClassWeaver.match(BcelClassWeaver.java:2483)
    at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:486)
    at org.aspectj.weaver.bcel.BcelClassWeaver.weave(BcelClassWeaver.java:98)

warning at /home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace/analysis/build/aspects!/SharedBinsAspect.class:42::0 advice defined in SharedBinsAspect has not been applied [Xlint:adviceDidNotMatch]
warning at /home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace/analysis/build/aspects!/SharedBinsAspect.class:53::0 advice defined in SharedBinsAspect has not been applied [Xlint:adviceDidNotMatch]
warning at /home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace/analysis/build/aspects!/SharedBinsAspect.class:65::0 advice defined in SharedBinsAspect has not been applied [Xlint:adviceDidNotMatch]
warning at /home/suman/exercise/steve_rnr/ytrace/ytrace_examples/crawler/javasrc/edu/brown/cs/cs032/crawler/ytrace/analysis/build/aspects!/SharedBinsAspect.class:77::0 advice defined in SharedBinsAspect has not

Back to the top