offbynull / coroutines

Java toolkit that allows you to write coroutines.
GNU Lesser General Public License v3.0
346 stars 53 forks source link

Class files are instrumented, but "Caller not instrumented" exception occurs! #51

Closed claytonlemons closed 9 years ago

claytonlemons commented 9 years ago

Hi Kasra,

I'm very interested in using coroutines for my project, but I've run into a snag with getting a simple test to run. The exception I get tells me that I haven't instrumented my code, but I'm certain I have. Am I missing something obvious?

I've included my test code, the execution command, the exception, a log of running maven on my project, and my pom.xml. Please let me know if there is any other information that would help.

Here is my test.

package test.java.edu.utexas.locke;

import com.offbynull.coroutines.user.Continuation;
import com.offbynull.coroutines.user.Coroutine;
import com.offbynull.coroutines.user.CoroutineRunner;

public class CoroutineTest {

    private static class MyCoroutine implements Coroutine {
        private Continuation c;

        public void run(Continuation c) {
            this.c = c;
            System.out.println("started!");
            for (int i = 0; i < 10; i++)
            {
                echo(i);
            }
        }

        private void echo(int x) {
            System.out.println("in echo!");
            System.out.println(x);
            this.c.suspend();
        }
    }

    public static void main(String[] args) {
        CoroutineRunner runner = new CoroutineRunner(new MyCoroutine());
        while (!runner.execute()) {
            System.out.println("returned from coroutine");
            System.out.println("back in main!");
        }
        System.out.println("finished!");
    }

}

Here is the command that eclipse is executing:

/usr/local/java/jdk1.8.0_25/jre/bin/java -classpath /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes:/home/clemons/.m2/repository/com/offbynull/coroutines/user/1.1.0/user-1.1.0.jar test.java.edu.utexas.locke.CoroutineTest

Here is the exception that I get when I try to run my test. I understand what the exception is, but I'm confused because I'm positive that my code has been instrumented. The log file seems to verify that.

Exception in thread "main" com.offbynull.coroutines.user.CoroutineException: Exception thrown during execution
    at com.offbynull.coroutines.user.CoroutineRunner.execute(CoroutineRunner.java:57)
    at test.java.edu.utexas.locke.CoroutineTest.main(CoroutineTest.java:30)
Caused by: java.lang.UnsupportedOperationException: Caller not instrumented
    at com.offbynull.coroutines.user.Continuation.suspend(Continuation.java:179)
    at test.java.edu.utexas.locke.CoroutineTest$MyCoroutine.echo(CoroutineTest.java:24)
    at test.java.edu.utexas.locke.CoroutineTest$MyCoroutine.run(CoroutineTest.java:17)
    at com.offbynull.coroutines.user.CoroutineRunner.execute(CoroutineRunner.java:54)
    ... 1 more

Here is the log file from running mvn -X compile test-compile I can see that the instrumenter gets created and executed on each class file, including CoroutineTest$MyCoroutine, and the size of CoroutineTest$MyCoroutine changes from 1342 to 1437, indicating that something was changed.

Apache Maven 3.0.5
Maven home: /usr/share/maven
Java version: 1.8.0_25, vendor: Oracle Corporation
Java home: /usr/local/java/jdk1.8.0_25/jre
Default locale: en_US, platform encoding: UTF-8
OS name: "linux", version: "3.19.0-25-generic", arch: "amd64", family: "unix"
[INFO] Error stacktraces are turned on.
[DEBUG] Reading global settings from /usr/share/maven/conf/settings.xml
[DEBUG] Reading user settings from /home/clemons/.m2/settings.xml
[DEBUG] Using local repository at /home/clemons/.m2/repository
[DEBUG] Using manager EnhancedLocalRepositoryManager with priority 10 for /home/clemons/.m2/repository
[INFO] Scanning for projects...
[DEBUG] Extension realms for project edu.utexas.lockethreadpool:LockeThreadPool:jar:0.0.1-SNAPSHOT: (none)
[DEBUG] Looking up lifecyle mappings for packaging jar from ClassRealm[plexus.core, parent: null]
[DEBUG] === REACTOR BUILD PLAN ================================================
[DEBUG] Project: edu.utexas.lockethreadpool:LockeThreadPool:jar:0.0.1-SNAPSHOT
[DEBUG] Tasks:   [compile, test-compile, com.offbynull.coroutines:maven-plugin:test-instrument]
[DEBUG] Style:   Regular
[DEBUG] =======================================================================
[INFO]                                                                         
[INFO] ------------------------------------------------------------------------
[INFO] Building Locke Thread Pool 0.0.1-SNAPSHOT
[INFO] ------------------------------------------------------------------------
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] Lifecycle default -> [validate, initialize, generate-sources, process-sources, generate-resources, process-resources, compile, process-classes, generate-test-sources, process-test-sources, generate-test-resources, process-test-resources, test-compile, process-test-classes, test, prepare-package, package, pre-integration-test, integration-test, post-integration-test, verify, install, deploy]
[DEBUG] Lifecycle clean -> [pre-clean, clean, post-clean]
[DEBUG] Lifecycle site -> [pre-site, site, post-site, site-deploy]
[DEBUG] === PROJECT BUILD PLAN ================================================
[DEBUG] Project:       edu.utexas.lockethreadpool:LockeThreadPool:0.0.1-SNAPSHOT
[DEBUG] Dependencies (collect): []
[DEBUG] Dependencies (resolve): [compile, test]
[DEBUG] Repositories (dependencies): [central (https://repo.maven.apache.org/maven2, releases)]
[DEBUG] Repositories (plugins)     : [central (https://repo.maven.apache.org/maven2, releases)]
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-resources-plugin:2.3:resources (default-resources)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
  <escapeString>${maven.resources.escapeString}</escapeString>
  <filters>${project.build.filters}</filters>
  <includeEmptyDirs default-value="false">${maven.resources.includeEmptyDirs}</includeEmptyDirs>
  <outputDirectory>${project.build.outputDirectory}</outputDirectory>
  <overwrite default-value="false">${maven.resources.overwrite}</overwrite>
  <project>${project}</project>
  <resources>${project.resources}</resources>
  <session>${session}</session>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <basedir default-value="${basedir}"/>
  <buildDirectory default-value="${project.build.directory}"/>
  <classpathElements default-value="${project.compileClasspathElements}"/>
  <compileSourceRoots default-value="${project.compileSourceRoots}"/>
  <compilerId default-value="javac">${maven.compiler.compilerId}</compilerId>
  <compilerReuseStrategy default-value="${reuseCreated}">${maven.compiler.compilerReuseStrategy}</compilerReuseStrategy>
  <compilerVersion>${maven.compiler.compilerVersion}</compilerVersion>
  <debug default-value="true">${maven.compiler.debug}</debug>
  <debuglevel>${maven.compiler.debuglevel}</debuglevel>
  <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
  <executable>${maven.compiler.executable}</executable>
  <failOnError default-value="true">${maven.compiler.failOnError}</failOnError>
  <fork default-value="false">${maven.compiler.fork}</fork>
  <generatedSourcesDirectory default-value="${project.build.directory}/generated-sources/annotations"/>
  <maxmem>${maven.compiler.maxmem}</maxmem>
  <meminitial>${maven.compiler.meminitial}</meminitial>
  <optimize default-value="false">${maven.compiler.optimize}</optimize>
  <outputDirectory default-value="${project.build.outputDirectory}"/>
  <outputFileName>${project.build.finalName}</outputFileName>
  <projectArtifact default-value="${project.artifact}"/>
  <session default-value="${session}"/>
  <showDeprecation default-value="false">${maven.compiler.showDeprecation}</showDeprecation>
  <showWarnings default-value="false">${maven.compiler.showWarnings}</showWarnings>
  <skipMultiThreadWarning default-value="${false}">${maven.compiler.skipMultiThreadWarning}</skipMultiThreadWarning>
  <source default-value="1.5">${maven.compiler.source}</source>
  <staleMillis default-value="0">${lastModGranularityMs}</staleMillis>
  <target default-value="1.5">${maven.compiler.target}</target>
  <verbose default-value="false">${maven.compiler.verbose}</verbose>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-resources-plugin:2.3:resources (default-resources)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
  <escapeString>${maven.resources.escapeString}</escapeString>
  <filters>${project.build.filters}</filters>
  <includeEmptyDirs default-value="false">${maven.resources.includeEmptyDirs}</includeEmptyDirs>
  <outputDirectory>${project.build.outputDirectory}</outputDirectory>
  <overwrite default-value="false">${maven.resources.overwrite}</overwrite>
  <project>${project}</project>
  <resources>${project.resources}</resources>
  <session>${session}</session>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile (default-compile)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <basedir default-value="${basedir}"/>
  <buildDirectory default-value="${project.build.directory}"/>
  <classpathElements default-value="${project.compileClasspathElements}"/>
  <compileSourceRoots default-value="${project.compileSourceRoots}"/>
  <compilerId default-value="javac">${maven.compiler.compilerId}</compilerId>
  <compilerReuseStrategy default-value="${reuseCreated}">${maven.compiler.compilerReuseStrategy}</compilerReuseStrategy>
  <compilerVersion>${maven.compiler.compilerVersion}</compilerVersion>
  <debug default-value="true">${maven.compiler.debug}</debug>
  <debuglevel>${maven.compiler.debuglevel}</debuglevel>
  <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
  <executable>${maven.compiler.executable}</executable>
  <failOnError default-value="true">${maven.compiler.failOnError}</failOnError>
  <fork default-value="false">${maven.compiler.fork}</fork>
  <generatedSourcesDirectory default-value="${project.build.directory}/generated-sources/annotations"/>
  <maxmem>${maven.compiler.maxmem}</maxmem>
  <meminitial>${maven.compiler.meminitial}</meminitial>
  <optimize default-value="false">${maven.compiler.optimize}</optimize>
  <outputDirectory default-value="${project.build.outputDirectory}"/>
  <outputFileName>${project.build.finalName}</outputFileName>
  <projectArtifact default-value="${project.artifact}"/>
  <session default-value="${session}"/>
  <showDeprecation default-value="false">${maven.compiler.showDeprecation}</showDeprecation>
  <showWarnings default-value="false">${maven.compiler.showWarnings}</showWarnings>
  <skipMultiThreadWarning default-value="${false}">${maven.compiler.skipMultiThreadWarning}</skipMultiThreadWarning>
  <source default-value="1.5">${maven.compiler.source}</source>
  <staleMillis default-value="0">${lastModGranularityMs}</staleMillis>
  <target default-value="1.5">${maven.compiler.target}</target>
  <verbose default-value="false">${maven.compiler.verbose}</verbose>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          com.offbynull.coroutines:maven-plugin:1.0.4:instrument (default)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <jdkLibsDirectory default-value="${java.home}/lib"/>
  <project default-value="${project}"/>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-resources-plugin:2.3:testResources (default-testResources)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
  <escapeString>${maven.resources.escapeString}</escapeString>
  <filters>${project.build.filters}</filters>
  <includeEmptyDirs default-value="false">${maven.resources.includeEmptyDirs}</includeEmptyDirs>
  <outputDirectory>${project.build.testOutputDirectory}</outputDirectory>
  <overwrite default-value="false">${maven.resources.overwrite}</overwrite>
  <project>${project}</project>
  <resources>${project.testResources}</resources>
  <session>${session}</session>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile (default-testCompile)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <basedir default-value="${basedir}"/>
  <buildDirectory default-value="${project.build.directory}"/>
  <classpathElements default-value="${project.testClasspathElements}"/>
  <compileSourceRoots default-value="${project.testCompileSourceRoots}"/>
  <compilerId default-value="javac">${maven.compiler.compilerId}</compilerId>
  <compilerReuseStrategy default-value="${reuseCreated}">${maven.compiler.compilerReuseStrategy}</compilerReuseStrategy>
  <compilerVersion>${maven.compiler.compilerVersion}</compilerVersion>
  <debug default-value="true">${maven.compiler.debug}</debug>
  <debuglevel>${maven.compiler.debuglevel}</debuglevel>
  <encoding default-value="${project.build.sourceEncoding}">${encoding}</encoding>
  <executable>${maven.compiler.executable}</executable>
  <failOnError default-value="true">${maven.compiler.failOnError}</failOnError>
  <fork default-value="false">${maven.compiler.fork}</fork>
  <generatedTestSourcesDirectory default-value="${project.build.directory}/generated-test-sources/test-annotations"/>
  <maxmem>${maven.compiler.maxmem}</maxmem>
  <meminitial>${maven.compiler.meminitial}</meminitial>
  <optimize default-value="false">${maven.compiler.optimize}</optimize>
  <outputDirectory default-value="${project.build.testOutputDirectory}"/>
  <outputFileName>${project.build.finalName}</outputFileName>
  <session default-value="${session}"/>
  <showDeprecation default-value="false">${maven.compiler.showDeprecation}</showDeprecation>
  <showWarnings default-value="false">${maven.compiler.showWarnings}</showWarnings>
  <skip>${maven.test.skip}</skip>
  <skipMultiThreadWarning default-value="${false}">${maven.compiler.skipMultiThreadWarning}</skipMultiThreadWarning>
  <source default-value="1.5">${maven.compiler.source}</source>
  <staleMillis default-value="0">${lastModGranularityMs}</staleMillis>
  <target default-value="1.5">${maven.compiler.target}</target>
  <testSource>${maven.compiler.testSource}</testSource>
  <testTarget>${maven.compiler.testTarget}</testTarget>
  <verbose default-value="false">${maven.compiler.verbose}</verbose>
</configuration>
[DEBUG] -----------------------------------------------------------------------
[DEBUG] Goal:          com.offbynull.coroutines:maven-plugin:1.0.4:test-instrument (default-cli)
[DEBUG] Style:         Regular
[DEBUG] Configuration: <?xml version="1.0" encoding="UTF-8"?>
<configuration>
  <jdkLibsDirectory default-value="${java.home}/lib"/>
  <project default-value="${project}"/>
</configuration>
[DEBUG] =======================================================================
[DEBUG] edu.utexas.lockethreadpool:LockeThreadPool:jar:0.0.1-SNAPSHOT
[DEBUG]    com.offbynull.coroutines:user:jar:1.0.4:compile
[INFO] 
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ LockeThreadPool ---
[DEBUG] Created new class realm maven.api
[DEBUG] Importing foreign packages into class realm maven.api
[DEBUG]   Imported: org.apache.maven.cli < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.lifecycle < plexus.core
[DEBUG]   Imported: org.apache.maven.lifecycle < plexus.core
[DEBUG]   Imported: org.apache.maven.repository < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.personality < plexus.core
[DEBUG]   Imported: org.apache.maven.usability < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.configuration < plexus.core
[DEBUG]   Imported: org.sonatype.aether.version < plexus.core
[DEBUG]   Imported: org.sonatype.aether.* < plexus.core
[DEBUG]   Imported: org.sonatype.aether.artifact < plexus.core
[DEBUG]   Imported: org.apache.maven.* < plexus.core
[DEBUG]   Imported: org.apache.maven.project < plexus.core
[DEBUG]   Imported: org.sonatype.aether.repository < plexus.core
[DEBUG]   Imported: org.sonatype.aether.impl < plexus.core
[DEBUG]   Imported: org.apache.maven.exception < plexus.core
[DEBUG]   Imported: org.apache.maven.plugin < plexus.core
[DEBUG]   Imported: org.sonatype.aether.collection < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.* < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.logging < plexus.core
[DEBUG]   Imported: org.apache.maven.profiles < plexus.core
[DEBUG]   Imported: org.sonatype.aether.metadata < plexus.core
[DEBUG]   Imported: org.sonatype.aether.spi < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlPullParserException < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.* < plexus.core
[DEBUG]   Imported: org.sonatype.aether.graph < plexus.core
[DEBUG]   Imported: org.apache.maven.rtinfo < plexus.core
[DEBUG]   Imported: org.sonatype.aether.installation < plexus.core
[DEBUG]   Imported: org.apache.maven.monitor < plexus.core
[DEBUG]   Imported: org.sonatype.aether.transfer < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.context < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.observers < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.resource < plexus.core
[DEBUG]   Imported: org.sonatype.aether.deployment < plexus.core
[DEBUG]   Imported: org.apache.maven.model < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.Xpp3Dom < plexus.core
[DEBUG]   Imported: org.apache.maven.artifact < plexus.core
[DEBUG]   Imported: org.apache.maven.toolchain < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlSerializer < plexus.core
[DEBUG]   Imported: org.apache.maven.settings < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.authorization < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.events < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.authentication < plexus.core
[DEBUG]   Imported: org.apache.maven.reporting < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.repository < plexus.core
[DEBUG]   Imported: org.apache.maven.configuration < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.classworlds < plexus.core
[DEBUG]   Imported: org.codehaus.classworlds < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.util.xml.pull.XmlPullParser < plexus.core
[DEBUG]   Imported: org.apache.maven.classrealm < plexus.core
[DEBUG]   Imported: org.sonatype.aether.resolution < plexus.core
[DEBUG]   Imported: org.apache.maven.execution < plexus.core
[DEBUG]   Imported: org.apache.maven.wagon.proxy < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.container < plexus.core
[DEBUG]   Imported: org.codehaus.plexus.component < plexus.core
[DEBUG] Populating class realm maven.api
[DEBUG] org.apache.maven.plugins:maven-resources-plugin:jar:2.3:
[DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0.6:compile
[DEBUG]    org.apache.maven:maven-project:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-settings:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-profile:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-model:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-artifact-manager:jar:2.0.6:compile
[DEBUG]          org.apache.maven:maven-repository-metadata:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-plugin-registry:jar:2.0.6:compile
[DEBUG]       org.apache.maven:maven-artifact:jar:2.0.6:compile
[DEBUG]       org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
[DEBUG]          junit:junit:jar:3.8.1:compile
[DEBUG]          classworlds:classworlds:jar:1.1-alpha-2:compile
[DEBUG]    org.codehaus.plexus:plexus-utils:jar:1.5.6:compile
[DEBUG]    org.apache.maven.shared:maven-filtering:jar:1.0-beta-2:compile
[DEBUG]       org.apache.maven:maven-core:jar:2.0.6:compile
[DEBUG]          org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.6:compile
[DEBUG]          org.apache.maven.reporting:maven-reporting-api:jar:2.0.6:compile
[DEBUG]             org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7:compile
[DEBUG]          org.apache.maven:maven-error-diagnostics:jar:2.0.6:compile
[DEBUG]          commons-cli:commons-cli:jar:1.0:compile
[DEBUG]          org.apache.maven:maven-plugin-descriptor:jar:2.0.6:compile
[DEBUG]          org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4:compile
[DEBUG]       org.apache.maven:maven-monitor:jar:2.0.6:compile
[DEBUG]       org.codehaus.plexus:plexus-interpolation:jar:1.6:compile
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-resources-plugin:2.3
[DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-resources-plugin:2.3
[DEBUG]   Imported:  < maven.api
[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-resources-plugin:2.3
[DEBUG]   Included: org.apache.maven.plugins:maven-resources-plugin:jar:2.3
[DEBUG]   Included: junit:junit:jar:3.8.1
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:1.5.6
[DEBUG]   Included: org.apache.maven.shared:maven-filtering:jar:1.0-beta-2
[DEBUG]   Included: org.apache.maven.reporting:maven-reporting-api:jar:2.0.6
[DEBUG]   Included: org.apache.maven.doxia:doxia-sink-api:jar:1.0-alpha-7
[DEBUG]   Included: commons-cli:commons-cli:jar:1.0
[DEBUG]   Included: org.codehaus.plexus:plexus-interactivity-api:jar:1.0-alpha-4
[DEBUG]   Included: org.codehaus.plexus:plexus-interpolation:jar:1.6
[DEBUG]   Excluded: org.apache.maven:maven-plugin-api:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-project:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-settings:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-profile:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-model:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-artifact-manager:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-repository-metadata:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-plugin-registry:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-artifact:jar:2.0.6
[DEBUG]   Excluded: org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1
[DEBUG]   Excluded: classworlds:classworlds:jar:1.1-alpha-2
[DEBUG]   Excluded: org.apache.maven:maven-core:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-error-diagnostics:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-plugin-descriptor:jar:2.0.6
[DEBUG]   Excluded: org.apache.maven:maven-monitor:jar:2.0.6
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-resources-plugin:2.3:resources from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-resources-plugin:2.3, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-resources-plugin:2.3:resources' with basic configurator -->
[DEBUG]   (f) filters = []
[DEBUG]   (s) includeEmptyDirs = false
[DEBUG]   (s) outputDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]   (s) overwrite = false
[DEBUG]   (f) project = MavenProject: edu.utexas.lockethreadpool:LockeThreadPool:0.0.1-SNAPSHOT @ /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/pom.xml
[DEBUG]   (s) resources = [Resource {targetPath: null, filtering: false, FileSet {directory: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/resources, PatternSet [includes: {}, excludes: {}]}}]
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@cd1d761
[DEBUG] -- end configuration --
[DEBUG] properties used {java.vendor=Oracle Corporation, env.IM_CONFIG_PHASE=1, env.LESSOPEN=| /usr/bin/lesspipe %s, env._LXSESSION_PID=1259, sun.java.launcher=SUN_STANDARD, env.QT_IM_MODULE=xim, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, os.name=Linux, env.UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1149, sun.boot.class.path=/usr/local/java/jdk1.8.0_25/jre/lib/resources.jar:/usr/local/java/jdk1.8.0_25/jre/lib/rt.jar:/usr/local/java/jdk1.8.0_25/jre/lib/sunrsasign.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jsse.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jce.jar:/usr/local/java/jdk1.8.0_25/jre/lib/charsets.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jfr.jar:/usr/local/java/jdk1.8.0_25/jre/classes, env.PWD=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, env.LANG=en_US.UTF-8, java.vm.specification.vendor=Oracle Corporation, env.XDG_MENU_PREFIX=lxde-, java.runtime.version=1.8.0_25-b17, env.GTK_IM_MODULE=xim, env.DEFAULTS_PATH=/usr/share/gconf/Lubuntu.default.path, env.UPSTART_EVENTS=started xsession, env.XDG_VTNR=7, env.DISPLAY=:0, user.name=clemons, env.QT4_IM_MODULE=xim, env._=/usr/bin/mvn, maven.build.version=Apache Maven 3.0.5, env.USER=clemons, env.SHELL=/bin/bash, env.DESKTOP_SESSION=Lubuntu, env.XDG_DATA_DIRS=/etc/xdg/lubuntu:/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/share/Lubuntu:/usr/local/share/:/usr/share/, env.NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat, env.PATH=/home/clemons/anaconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/clemons/bin:/usr/local/java/jdk1.8.0_25/bin, env.XDG_CURRENT_DESKTOP=LXDE, user.language=en, env.XDG_SESSION_DESKTOP=Lubuntu, sun.boot.library.path=/usr/local/java/jdk1.8.0_25/jre/lib/amd64, classworlds.conf=/usr/share/maven/bin/m2.conf, env.UPSTART_JOB=lxsession, java.version=1.8.0_25, user.timezone=America/Chicago, env.DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-mtaWjMb8yZ, sun.arch.data.model=64, java.endorsed.dirs=/usr/local/java/jdk1.8.0_25/jre/lib/endorsed, sun.cpu.isalist=, sun.jnu.encoding=UTF-8, file.encoding.pkg=sun.io, env.SHLVL=1, file.separator=/, java.specification.name=Java Platform API Specification, java.class.version=52.0, env.GDMSESSION=Lubuntu, user.country=US, env.GNOME_KEYRING_PID=, java.home=/usr/local/java/jdk1.8.0_25/jre, java.vm.info=mixed mode, env.LOGNAME=clemons, os.version=3.19.0-25-generic, env.SAL_USE_VCLPLUGIN=gtk, path.separator=:, java.vm.version=25.25-b02, env.UPSTART_INSTANCE=, env.LANGUAGE=en_US, env.XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0, env.QT_QPA_PLATFORMTHEME=lxqt, env.SESSIONTYPE=lxsession, env.XDG_SESSION_TYPE=x11, env.JAVA_HOME=/usr/local/java/jdk1.8.0_25, java.awt.printerjob=sun.print.PSPrinterJob, env.TERM=xterm, sun.io.unicode.encoding=UnicodeLittle, awt.toolkit=sun.awt.X11.XToolkit, env.XMODIFIERS=@im=ibus, env.QT_PLATFORM_PLUGIN=lxqt, env.GDM_LANG=en_US, user.home=/home/clemons, env.JOB=dbus, env.OLDPWD=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, java.specification.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib, java.vm.vendor=Oracle Corporation, env.XDG_SEAT=seat0, java.runtime.name=Java(TM) SE Runtime Environment, maven.home=/usr/share/maven, java.class.path=/usr/share/maven/boot/plexus-classworlds-2.x.jar, sun.java.command=org.codehaus.plexus.classworlds.launcher.Launcher -X compile test-compile com.offbynull.coroutines:maven-plugin:test-instrument, env.XDG_SESSION_ID=c2, maven.version=3.0.5, env.XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt, java.vm.specification.name=Java Virtual Machine Specification, java.vm.specification.version=1.8, sun.os.patch.level=unknown, sun.cpu.endian=little, env.HOME=/home/clemons, env.XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0, env.LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:, java.io.tmpdir=/tmp, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, env.SSH_AUTH_SOCK=/run/user/1000/keyring/ssh, env.XDG_CONFIG_HOME=/home/clemons/.config, env.CLUTTER_IM_MODULE=xim, java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment, os.arch=amd64, env.INSTANCE=, env.XDG_RUNTIME_DIR=/run/user/1000, java.ext.dirs=/usr/local/java/jdk1.8.0_25/jre/lib/ext:/usr/java/packages/lib/ext, env.XAUTHORITY=/home/clemons/.Xauthority, env.SESSION=Lubuntu, user.dir=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, env.MANDATORY_PATH=/usr/share/gconf/Lubuntu.mandatory.path, line.separator=
, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, env.XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/clemons, file.encoding=UTF-8, env.GPG_AGENT_INFO=/run/user/1000/keyring/gpg:0:1, java.specification.version=1.8, env.GNOME_KEYRING_CONTROL=, env.XDG_CONFIG_DIRS=/etc/xdg/lubuntu:/etc/xdg/xdg-Lubuntu:/usr/share/upstart/xdg:/etc/xdg, env.LESSCLOSE=/usr/bin/lesspipe %s %s}
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[DEBUG] resource with targetPath null
directory /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/resources
excludes []
includes []
[INFO] skip non existing resourceDirectory /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ LockeThreadPool ---
[DEBUG] org.apache.maven.plugins:maven-compiler-plugin:jar:2.5.1:
[DEBUG]    org.apache.maven:maven-plugin-api:jar:2.0.9:compile
[DEBUG]    org.apache.maven:maven-artifact:jar:2.0.9:compile
[DEBUG]    org.apache.maven:maven-core:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-settings:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-profile:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-model:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-repository-metadata:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-error-diagnostics:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-project:jar:2.0.9:compile
[DEBUG]          org.apache.maven:maven-plugin-registry:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-plugin-descriptor:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-artifact-manager:jar:2.0.9:compile
[DEBUG]       org.apache.maven:maven-monitor:jar:2.0.9:compile
[DEBUG]    org.apache.maven:maven-toolchain:jar:1.0:compile
[DEBUG]    org.codehaus.plexus:plexus-utils:jar:3.0:compile
[DEBUG]    org.codehaus.plexus:plexus-compiler-api:jar:1.9.1:compile
[DEBUG]    org.codehaus.plexus:plexus-compiler-manager:jar:1.9.1:compile
[DEBUG]    org.codehaus.plexus:plexus-compiler-javac:jar:1.9.1:runtime
[DEBUG]    org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1:compile
[DEBUG]       junit:junit:jar:3.8.1:compile
[DEBUG]       classworlds:classworlds:jar:1.1-alpha-2:compile
[DEBUG] Created new class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:2.5.1
[DEBUG] Importing foreign packages into class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:2.5.1
[DEBUG]   Imported:  < maven.api
[DEBUG] Populating class realm plugin>org.apache.maven.plugins:maven-compiler-plugin:2.5.1
[DEBUG]   Included: org.apache.maven.plugins:maven-compiler-plugin:jar:2.5.1
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:3.0
[DEBUG]   Included: org.codehaus.plexus:plexus-compiler-api:jar:1.9.1
[DEBUG]   Included: org.codehaus.plexus:plexus-compiler-manager:jar:1.9.1
[DEBUG]   Included: org.codehaus.plexus:plexus-compiler-javac:jar:1.9.1
[DEBUG]   Included: junit:junit:jar:3.8.1
[DEBUG]   Excluded: org.apache.maven:maven-plugin-api:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-artifact:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-core:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-settings:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-plugin-parameter-documenter:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-profile:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-model:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-repository-metadata:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-error-diagnostics:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-project:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-plugin-registry:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-plugin-descriptor:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-artifact-manager:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-monitor:jar:2.0.9
[DEBUG]   Excluded: org.apache.maven:maven-toolchain:jar:1.0
[DEBUG]   Excluded: org.codehaus.plexus:plexus-container-default:jar:1.0-alpha-9-stable-1
[DEBUG]   Excluded: classworlds:classworlds:jar:1.1-alpha-2
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:2.5.1, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile' with basic configurator -->
[DEBUG]   (f) basedir = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool
[DEBUG]   (f) buildDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target
[DEBUG]   (f) classpathElements = [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes, /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar]
[DEBUG]   (f) compileSourceRoots = [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java]
[DEBUG]   (f) compilerId = javac
[DEBUG]   (f) debug = true
[DEBUG]   (f) failOnError = true
[DEBUG]   (f) fork = false
[DEBUG]   (f) generatedSourcesDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/generated-sources/annotations
[DEBUG]   (f) optimize = false
[DEBUG]   (f) outputDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]   (f) outputFileName = LockeThreadPool-0.0.1-SNAPSHOT
[DEBUG]   (f) projectArtifact = edu.utexas.lockethreadpool:LockeThreadPool:jar:0.0.1-SNAPSHOT
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@cd1d761
[DEBUG]   (f) showDeprecation = false
[DEBUG]   (f) showWarnings = false
[DEBUG]   (f) source = 1.5
[DEBUG]   (f) staleMillis = 0
[DEBUG]   (f) target = 1.5
[DEBUG]   (f) verbose = false
[DEBUG] -- end configuration --
[DEBUG] Using compiler 'javac'.
[DEBUG] Source directories: [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java]
[DEBUG] Classpath: [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
 /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar]
[DEBUG] Output directory: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG] CompilerReuseStrategy: reuseCreated
[DEBUG] Classpath:
[DEBUG]  /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]  /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar
[DEBUG] Source roots:
[DEBUG]  /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java
[DEBUG] Command line options:
[DEBUG] -d /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes -classpath /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes:/home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar: -sourcepath /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeSemaphore.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeThreadPool.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/SynchronizationOperation.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeDeque.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeThread.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeTask.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeProcess.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeThreadPair.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/ComputationTracker.java -g -nowarn -target 1.5 -source 1.5
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 9 source files to /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[INFO] 
[INFO] --- maven-resources-plugin:2.3:resources (default-resources) @ LockeThreadPool ---
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-resources-plugin:2.3:resources from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-resources-plugin:2.3, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-resources-plugin:2.3:resources' with basic configurator -->
[DEBUG]   (f) filters = []
[DEBUG]   (s) includeEmptyDirs = false
[DEBUG]   (s) outputDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]   (s) overwrite = false
[DEBUG]   (f) project = MavenProject: edu.utexas.lockethreadpool:LockeThreadPool:0.0.1-SNAPSHOT @ /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/pom.xml
[DEBUG]   (s) resources = [Resource {targetPath: null, filtering: false, FileSet {directory: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/resources, PatternSet [includes: {}, excludes: {}]}}]
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@cd1d761
[DEBUG] -- end configuration --
[DEBUG] properties used {java.vendor=Oracle Corporation, env.IM_CONFIG_PHASE=1, env.LESSOPEN=| /usr/bin/lesspipe %s, env._LXSESSION_PID=1259, sun.java.launcher=SUN_STANDARD, env.QT_IM_MODULE=xim, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, os.name=Linux, env.UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1149, sun.boot.class.path=/usr/local/java/jdk1.8.0_25/jre/lib/resources.jar:/usr/local/java/jdk1.8.0_25/jre/lib/rt.jar:/usr/local/java/jdk1.8.0_25/jre/lib/sunrsasign.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jsse.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jce.jar:/usr/local/java/jdk1.8.0_25/jre/lib/charsets.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jfr.jar:/usr/local/java/jdk1.8.0_25/jre/classes, env.PWD=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, env.LANG=en_US.UTF-8, java.vm.specification.vendor=Oracle Corporation, env.XDG_MENU_PREFIX=lxde-, java.runtime.version=1.8.0_25-b17, env.GTK_IM_MODULE=xim, env.DEFAULTS_PATH=/usr/share/gconf/Lubuntu.default.path, env.UPSTART_EVENTS=started xsession, env.XDG_VTNR=7, env.DISPLAY=:0, user.name=clemons, env.QT4_IM_MODULE=xim, env._=/usr/bin/mvn, maven.build.version=Apache Maven 3.0.5, env.USER=clemons, env.SHELL=/bin/bash, env.DESKTOP_SESSION=Lubuntu, env.XDG_DATA_DIRS=/etc/xdg/lubuntu:/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/share/Lubuntu:/usr/local/share/:/usr/share/, env.NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat, env.PATH=/home/clemons/anaconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/clemons/bin:/usr/local/java/jdk1.8.0_25/bin, env.XDG_CURRENT_DESKTOP=LXDE, user.language=en, env.XDG_SESSION_DESKTOP=Lubuntu, sun.boot.library.path=/usr/local/java/jdk1.8.0_25/jre/lib/amd64, classworlds.conf=/usr/share/maven/bin/m2.conf, env.UPSTART_JOB=lxsession, java.version=1.8.0_25, user.timezone=America/Chicago, env.DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-mtaWjMb8yZ, sun.arch.data.model=64, java.endorsed.dirs=/usr/local/java/jdk1.8.0_25/jre/lib/endorsed, sun.cpu.isalist=, sun.jnu.encoding=UTF-8, file.encoding.pkg=sun.io, env.SHLVL=1, file.separator=/, java.specification.name=Java Platform API Specification, java.class.version=52.0, env.GDMSESSION=Lubuntu, user.country=US, env.GNOME_KEYRING_PID=, java.home=/usr/local/java/jdk1.8.0_25/jre, java.vm.info=mixed mode, env.LOGNAME=clemons, os.version=3.19.0-25-generic, env.SAL_USE_VCLPLUGIN=gtk, path.separator=:, java.vm.version=25.25-b02, env.UPSTART_INSTANCE=, env.LANGUAGE=en_US, env.XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0, env.QT_QPA_PLATFORMTHEME=lxqt, env.SESSIONTYPE=lxsession, env.XDG_SESSION_TYPE=x11, env.JAVA_HOME=/usr/local/java/jdk1.8.0_25, java.awt.printerjob=sun.print.PSPrinterJob, env.TERM=xterm, sun.io.unicode.encoding=UnicodeLittle, awt.toolkit=sun.awt.X11.XToolkit, env.XMODIFIERS=@im=ibus, env.QT_PLATFORM_PLUGIN=lxqt, env.GDM_LANG=en_US, user.home=/home/clemons, env.JOB=dbus, env.OLDPWD=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, java.specification.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib, java.vm.vendor=Oracle Corporation, env.XDG_SEAT=seat0, java.runtime.name=Java(TM) SE Runtime Environment, maven.home=/usr/share/maven, java.class.path=/usr/share/maven/boot/plexus-classworlds-2.x.jar, sun.java.command=org.codehaus.plexus.classworlds.launcher.Launcher -X compile test-compile com.offbynull.coroutines:maven-plugin:test-instrument, env.XDG_SESSION_ID=c2, maven.version=3.0.5, env.XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt, java.vm.specification.name=Java Virtual Machine Specification, java.vm.specification.version=1.8, sun.os.patch.level=unknown, sun.cpu.endian=little, env.HOME=/home/clemons, env.XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0, env.LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:, java.io.tmpdir=/tmp, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, env.SSH_AUTH_SOCK=/run/user/1000/keyring/ssh, env.XDG_CONFIG_HOME=/home/clemons/.config, env.CLUTTER_IM_MODULE=xim, java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment, os.arch=amd64, env.INSTANCE=, env.XDG_RUNTIME_DIR=/run/user/1000, java.ext.dirs=/usr/local/java/jdk1.8.0_25/jre/lib/ext:/usr/java/packages/lib/ext, env.XAUTHORITY=/home/clemons/.Xauthority, env.SESSION=Lubuntu, user.dir=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, env.MANDATORY_PATH=/usr/share/gconf/Lubuntu.mandatory.path, line.separator=
, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, env.XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/clemons, file.encoding=UTF-8, env.GPG_AGENT_INFO=/run/user/1000/keyring/gpg:0:1, java.specification.version=1.8, env.GNOME_KEYRING_CONTROL=, env.XDG_CONFIG_DIRS=/etc/xdg/lubuntu:/etc/xdg/xdg-Lubuntu:/usr/share/upstart/xdg:/etc/xdg, env.LESSCLOSE=/usr/bin/lesspipe %s %s}
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[DEBUG] resource with targetPath null
directory /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/resources
excludes []
includes []
[INFO] skip non existing resourceDirectory /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:compile (default-compile) @ LockeThreadPool ---
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:2.5.1, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:2.5.1:compile' with basic configurator -->
[DEBUG]   (f) basedir = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool
[DEBUG]   (f) buildDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target
[DEBUG]   (f) classpathElements = [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes, /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar]
[DEBUG]   (f) compileSourceRoots = [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java]
[DEBUG]   (f) compilerId = javac
[DEBUG]   (f) debug = true
[DEBUG]   (f) failOnError = true
[DEBUG]   (f) fork = false
[DEBUG]   (f) generatedSourcesDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/generated-sources/annotations
[DEBUG]   (f) optimize = false
[DEBUG]   (f) outputDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]   (f) outputFileName = LockeThreadPool-0.0.1-SNAPSHOT
[DEBUG]   (f) projectArtifact = edu.utexas.lockethreadpool:LockeThreadPool:jar:0.0.1-SNAPSHOT
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@cd1d761
[DEBUG]   (f) showDeprecation = false
[DEBUG]   (f) showWarnings = false
[DEBUG]   (f) source = 1.5
[DEBUG]   (f) staleMillis = 0
[DEBUG]   (f) target = 1.5
[DEBUG]   (f) verbose = false
[DEBUG] -- end configuration --
[DEBUG] Using compiler 'javac'.
[DEBUG] Source directories: [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java]
[DEBUG] Classpath: [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
 /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar]
[DEBUG] Output directory: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG] CompilerReuseStrategy: reuseCreated
[DEBUG] Classpath:
[DEBUG]  /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]  /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar
[DEBUG] Source roots:
[DEBUG]  /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java
[DEBUG] Command line options:
[DEBUG] -d /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes -classpath /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes:/home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar: -sourcepath /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeSemaphore.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeThreadPool.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/SynchronizationOperation.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeDeque.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeThread.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeTask.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeProcess.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/LockeThreadPair.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/main/java/edu/utexas/locke/ComputationTracker.java -g -nowarn -target 1.5 -source 1.5
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 9 source files to /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[INFO] 
[INFO] --- maven-plugin:1.0.4:instrument (default) @ LockeThreadPool ---
[DEBUG] com.offbynull.coroutines:maven-plugin:jar:1.0.4:
[DEBUG]    com.offbynull.coroutines:instrumenter:jar:1.0.4:compile
[DEBUG]       com.offbynull.coroutines:user:jar:1.0.4:compile
[DEBUG]       org.ow2.asm:asm-debug-all:jar:5.0.3:compile
[DEBUG]       org.apache.commons:commons-lang3:jar:3.3.2:compile
[DEBUG]       org.apache.commons:commons-compress:jar:1.9:compile
[DEBUG]    commons-io:commons-io:jar:2.4:compile
[DEBUG]    org.codehaus.plexus:plexus-utils:jar:1.1:runtime
[DEBUG] Created new class realm plugin>com.offbynull.coroutines:maven-plugin:1.0.4
[DEBUG] Importing foreign packages into class realm plugin>com.offbynull.coroutines:maven-plugin:1.0.4
[DEBUG]   Imported:  < maven.api
[DEBUG] Populating class realm plugin>com.offbynull.coroutines:maven-plugin:1.0.4
[DEBUG]   Included: com.offbynull.coroutines:maven-plugin:jar:1.0.4
[DEBUG]   Included: com.offbynull.coroutines:instrumenter:jar:1.0.4
[DEBUG]   Included: com.offbynull.coroutines:user:jar:1.0.4
[DEBUG]   Included: org.ow2.asm:asm-debug-all:jar:5.0.3
[DEBUG]   Included: org.apache.commons:commons-lang3:jar:3.3.2
[DEBUG]   Included: org.apache.commons:commons-compress:jar:1.9
[DEBUG]   Included: commons-io:commons-io:jar:2.4
[DEBUG]   Included: org.codehaus.plexus:plexus-utils:jar:1.1
[DEBUG] Configuring mojo com.offbynull.coroutines:maven-plugin:1.0.4:instrument from plugin realm ClassRealm[plugin>com.offbynull.coroutines:maven-plugin:1.0.4, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'com.offbynull.coroutines:maven-plugin:1.0.4:instrument' with basic configurator -->
[DEBUG]   (f) jdkLibsDirectory = /usr/local/java/jdk1.8.0_25/jre/lib
[DEBUG]   (f) project = MavenProject: edu.utexas.lockethreadpool:LockeThreadPool:0.0.1-SNAPSHOT @ /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/pom.xml
[DEBUG] -- end configuration --
[DEBUG] Getting compile classpath
[DEBUG] Getting bootstrap classpath
[INFO] Classpath for instrumentation is as follows: [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes, /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar, /usr/local/java/jdk1.8.0_25/jre/lib/charsets.jar, /usr/local/java/jdk1.8.0_25/jre/lib/jsse.jar, /usr/local/java/jdk1.8.0_25/jre/lib/jce.jar, /usr/local/java/jdk1.8.0_25/jre/lib/deploy.jar, /usr/local/java/jdk1.8.0_25/jre/lib/plugin.jar, /usr/local/java/jdk1.8.0_25/jre/lib/resources.jar, /usr/local/java/jdk1.8.0_25/jre/lib/jfxswt.jar, /usr/local/java/jdk1.8.0_25/jre/lib/jfr.jar, /usr/local/java/jdk1.8.0_25/jre/lib/javaws.jar, /usr/local/java/jdk1.8.0_25/jre/lib/security/US_export_policy.jar, /usr/local/java/jdk1.8.0_25/jre/lib/security/local_policy.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/sunpkcs11.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/zipfs.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/localedata.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/cldrdata.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/dnsns.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/nashorn.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/jfxrt.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/sunjce_provider.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/sunec.jar, /usr/local/java/jdk1.8.0_25/jre/lib/rt.jar, /usr/local/java/jdk1.8.0_25/jre/lib/management-agent.jar]
[INFO] Creating instrumenter...
[INFO] Processing main output folder ... 
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeProcess$1.class
[DEBUG] File size changed from 1028 to 1028
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeDeque.class
[DEBUG] File size changed from 1107 to 1107
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeSemaphore.class
[DEBUG] File size changed from 321 to 321
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeThreadPool.class
[DEBUG] File size changed from 2490 to 2490
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/SynchronizationOperation.class
[DEBUG] File size changed from 2055 to 2055
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeProcess.class
[DEBUG] File size changed from 4562 to 4562
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/SynchronizationOperation$Type.class
[DEBUG] File size changed from 1369 to 1369
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeThreadPair.class
[DEBUG] File size changed from 758 to 758
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeThread.class
[DEBUG] File size changed from 3376 to 3572
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/ComputationTracker.class
[DEBUG] File size changed from 1135 to 1135
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeTask.class
[DEBUG] File size changed from 1037 to 1037
[INFO] 
[INFO] --- maven-resources-plugin:2.3:testResources (default-testResources) @ LockeThreadPool ---
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-resources-plugin:2.3:testResources from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-resources-plugin:2.3, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-resources-plugin:2.3:testResources' with basic configurator -->
[DEBUG]   (f) filters = []
[DEBUG]   (s) includeEmptyDirs = false
[DEBUG]   (s) outputDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]   (s) overwrite = false
[DEBUG]   (f) project = MavenProject: edu.utexas.lockethreadpool:LockeThreadPool:0.0.1-SNAPSHOT @ /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/pom.xml
[DEBUG]   (s) resources = [Resource {targetPath: null, filtering: false, FileSet {directory: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/resources, PatternSet [includes: {}, excludes: {}]}}]
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@cd1d761
[DEBUG] -- end configuration --
[DEBUG] properties used {java.vendor=Oracle Corporation, env.IM_CONFIG_PHASE=1, env.LESSOPEN=| /usr/bin/lesspipe %s, env._LXSESSION_PID=1259, sun.java.launcher=SUN_STANDARD, env.QT_IM_MODULE=xim, sun.management.compiler=HotSpot 64-Bit Tiered Compilers, os.name=Linux, env.UPSTART_SESSION=unix:abstract=/com/ubuntu/upstart-session/1000/1149, sun.boot.class.path=/usr/local/java/jdk1.8.0_25/jre/lib/resources.jar:/usr/local/java/jdk1.8.0_25/jre/lib/rt.jar:/usr/local/java/jdk1.8.0_25/jre/lib/sunrsasign.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jsse.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jce.jar:/usr/local/java/jdk1.8.0_25/jre/lib/charsets.jar:/usr/local/java/jdk1.8.0_25/jre/lib/jfr.jar:/usr/local/java/jdk1.8.0_25/jre/classes, env.PWD=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, env.LANG=en_US.UTF-8, java.vm.specification.vendor=Oracle Corporation, env.XDG_MENU_PREFIX=lxde-, java.runtime.version=1.8.0_25-b17, env.GTK_IM_MODULE=xim, env.DEFAULTS_PATH=/usr/share/gconf/Lubuntu.default.path, env.UPSTART_EVENTS=started xsession, env.XDG_VTNR=7, env.DISPLAY=:0, user.name=clemons, env.QT4_IM_MODULE=xim, env._=/usr/bin/mvn, maven.build.version=Apache Maven 3.0.5, env.USER=clemons, env.SHELL=/bin/bash, env.DESKTOP_SESSION=Lubuntu, env.XDG_DATA_DIRS=/etc/xdg/lubuntu:/usr/local/share:/usr/share:/usr/share/gdm:/var/lib/menu-xdg:/usr/share/Lubuntu:/usr/local/share/:/usr/share/, env.NLSPATH=/usr/dt/lib/nls/msg/%L/%N.cat, env.PATH=/home/clemons/anaconda/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/clemons/bin:/usr/local/java/jdk1.8.0_25/bin, env.XDG_CURRENT_DESKTOP=LXDE, user.language=en, env.XDG_SESSION_DESKTOP=Lubuntu, sun.boot.library.path=/usr/local/java/jdk1.8.0_25/jre/lib/amd64, classworlds.conf=/usr/share/maven/bin/m2.conf, env.UPSTART_JOB=lxsession, java.version=1.8.0_25, user.timezone=America/Chicago, env.DBUS_SESSION_BUS_ADDRESS=unix:abstract=/tmp/dbus-mtaWjMb8yZ, sun.arch.data.model=64, java.endorsed.dirs=/usr/local/java/jdk1.8.0_25/jre/lib/endorsed, sun.cpu.isalist=, sun.jnu.encoding=UTF-8, file.encoding.pkg=sun.io, env.SHLVL=1, file.separator=/, java.specification.name=Java Platform API Specification, java.class.version=52.0, env.GDMSESSION=Lubuntu, user.country=US, env.GNOME_KEYRING_PID=, java.home=/usr/local/java/jdk1.8.0_25/jre, java.vm.info=mixed mode, env.LOGNAME=clemons, os.version=3.19.0-25-generic, env.SAL_USE_VCLPLUGIN=gtk, path.separator=:, java.vm.version=25.25-b02, env.UPSTART_INSTANCE=, env.LANGUAGE=en_US, env.XDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0, env.QT_QPA_PLATFORMTHEME=lxqt, env.SESSIONTYPE=lxsession, env.XDG_SESSION_TYPE=x11, env.JAVA_HOME=/usr/local/java/jdk1.8.0_25, java.awt.printerjob=sun.print.PSPrinterJob, env.TERM=xterm, sun.io.unicode.encoding=UnicodeLittle, awt.toolkit=sun.awt.X11.XToolkit, env.XMODIFIERS=@im=ibus, env.QT_PLATFORM_PLUGIN=lxqt, env.GDM_LANG=en_US, user.home=/home/clemons, env.JOB=dbus, env.OLDPWD=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, java.specification.vendor=Oracle Corporation, java.vendor.url=http://java.oracle.com/, java.library.path=/usr/java/packages/lib/amd64:/usr/lib64:/lib64:/lib:/usr/lib, java.vm.vendor=Oracle Corporation, env.XDG_SEAT=seat0, java.runtime.name=Java(TM) SE Runtime Environment, maven.home=/usr/share/maven, java.class.path=/usr/share/maven/boot/plexus-classworlds-2.x.jar, sun.java.command=org.codehaus.plexus.classworlds.launcher.Launcher -X compile test-compile com.offbynull.coroutines:maven-plugin:test-instrument, env.XDG_SESSION_ID=c2, maven.version=3.0.5, env.XFILESEARCHPATH=/usr/dt/app-defaults/%L/Dt, java.vm.specification.name=Java Virtual Machine Specification, java.vm.specification.version=1.8, sun.os.patch.level=unknown, sun.cpu.endian=little, env.HOME=/home/clemons, env.XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0, env.LS_COLORS=rs=0:di=01;34:ln=01;36:mh=00:pi=40;33:so=01;35:do=01;35:bd=40;33;01:cd=40;33;01:or=40;31;01:su=37;41:sg=30;43:ca=30;41:tw=30;42:ow=34;42:st=37;44:ex=01;32:*.tar=01;31:*.tgz=01;31:*.arc=01;31:*.arj=01;31:*.taz=01;31:*.lha=01;31:*.lz4=01;31:*.lzh=01;31:*.lzma=01;31:*.tlz=01;31:*.txz=01;31:*.tzo=01;31:*.t7z=01;31:*.zip=01;31:*.z=01;31:*.Z=01;31:*.dz=01;31:*.gz=01;31:*.lrz=01;31:*.lz=01;31:*.lzo=01;31:*.xz=01;31:*.bz2=01;31:*.bz=01;31:*.tbz=01;31:*.tbz2=01;31:*.tz=01;31:*.deb=01;31:*.rpm=01;31:*.jar=01;31:*.war=01;31:*.ear=01;31:*.sar=01;31:*.rar=01;31:*.alz=01;31:*.ace=01;31:*.zoo=01;31:*.cpio=01;31:*.7z=01;31:*.rz=01;31:*.cab=01;31:*.jpg=01;35:*.jpeg=01;35:*.gif=01;35:*.bmp=01;35:*.pbm=01;35:*.pgm=01;35:*.ppm=01;35:*.tga=01;35:*.xbm=01;35:*.xpm=01;35:*.tif=01;35:*.tiff=01;35:*.png=01;35:*.svg=01;35:*.svgz=01;35:*.mng=01;35:*.pcx=01;35:*.mov=01;35:*.mpg=01;35:*.mpeg=01;35:*.m2v=01;35:*.mkv=01;35:*.webm=01;35:*.ogm=01;35:*.mp4=01;35:*.m4v=01;35:*.mp4v=01;35:*.vob=01;35:*.qt=01;35:*.nuv=01;35:*.wmv=01;35:*.asf=01;35:*.rm=01;35:*.rmvb=01;35:*.flc=01;35:*.avi=01;35:*.fli=01;35:*.flv=01;35:*.gl=01;35:*.dl=01;35:*.xcf=01;35:*.xwd=01;35:*.yuv=01;35:*.cgm=01;35:*.emf=01;35:*.axv=01;35:*.anx=01;35:*.ogv=01;35:*.ogx=01;35:*.aac=00;36:*.au=00;36:*.flac=00;36:*.m4a=00;36:*.mid=00;36:*.midi=00;36:*.mka=00;36:*.mp3=00;36:*.mpc=00;36:*.ogg=00;36:*.ra=00;36:*.wav=00;36:*.axa=00;36:*.oga=00;36:*.spx=00;36:*.xspf=00;36:, java.io.tmpdir=/tmp, java.vendor.url.bug=http://bugreport.sun.com/bugreport/, env.SSH_AUTH_SOCK=/run/user/1000/keyring/ssh, env.XDG_CONFIG_HOME=/home/clemons/.config, env.CLUTTER_IM_MODULE=xim, java.awt.graphicsenv=sun.awt.X11GraphicsEnvironment, os.arch=amd64, env.INSTANCE=, env.XDG_RUNTIME_DIR=/run/user/1000, java.ext.dirs=/usr/local/java/jdk1.8.0_25/jre/lib/ext:/usr/java/packages/lib/ext, env.XAUTHORITY=/home/clemons/.Xauthority, env.SESSION=Lubuntu, user.dir=/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool, env.MANDATORY_PATH=/usr/share/gconf/Lubuntu.mandatory.path, line.separator=
, java.vm.name=Java HotSpot(TM) 64-Bit Server VM, env.XDG_GREETER_DATA_DIR=/var/lib/lightdm-data/clemons, file.encoding=UTF-8, env.GPG_AGENT_INFO=/run/user/1000/keyring/gpg:0:1, java.specification.version=1.8, env.GNOME_KEYRING_CONTROL=, env.XDG_CONFIG_DIRS=/etc/xdg/lubuntu:/etc/xdg/xdg-Lubuntu:/usr/share/upstart/xdg:/etc/xdg, env.LESSCLOSE=/usr/bin/lesspipe %s %s}
[WARNING] Using platform encoding (UTF-8 actually) to copy filtered resources, i.e. build is platform dependent!
[DEBUG] resource with targetPath null
directory /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/resources
excludes []
includes []
[INFO] skip non existing resourceDirectory /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/resources
[INFO] 
[INFO] --- maven-compiler-plugin:2.5.1:testCompile (default-testCompile) @ LockeThreadPool ---
[DEBUG] Configuring mojo org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile from plugin realm ClassRealm[plugin>org.apache.maven.plugins:maven-compiler-plugin:2.5.1, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'org.apache.maven.plugins:maven-compiler-plugin:2.5.1:testCompile' with basic configurator -->
[DEBUG]   (f) basedir = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool
[DEBUG]   (f) buildDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target
[DEBUG]   (f) classpathElements = [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes, /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes, /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar]
[DEBUG]   (f) compileSourceRoots = [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java]
[DEBUG]   (f) compilerId = javac
[DEBUG]   (f) debug = true
[DEBUG]   (f) failOnError = true
[DEBUG]   (f) fork = false
[DEBUG]   (f) generatedTestSourcesDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/generated-test-sources/test-annotations
[DEBUG]   (f) optimize = false
[DEBUG]   (f) outputDirectory = /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]   (f) outputFileName = LockeThreadPool-0.0.1-SNAPSHOT
[DEBUG]   (f) session = org.apache.maven.execution.MavenSession@cd1d761
[DEBUG]   (f) showDeprecation = false
[DEBUG]   (f) showWarnings = false
[DEBUG]   (f) source = 1.5
[DEBUG]   (f) staleMillis = 0
[DEBUG]   (f) target = 1.5
[DEBUG]   (f) verbose = false
[DEBUG] -- end configuration --
[DEBUG] Using compiler 'javac'.
[DEBUG] Source directories: [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java]
[DEBUG] Classpath: [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
 /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
 /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar]
[DEBUG] Output directory: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG] CompilerReuseStrategy: reuseCreated
[DEBUG] Classpath:
[DEBUG]  /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]  /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[DEBUG]  /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar
[DEBUG] Source roots:
[DEBUG]  /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java
[DEBUG] Command line options:
[DEBUG] -d /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes -classpath /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes:/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes:/home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar: -sourcepath /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java: /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java/edu/utexas/locke/MyThread.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java/edu/utexas/locke/LockeFibonacci.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java/edu/utexas/locke/Fibonacci.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java/edu/utexas/locke/CoroutineTest.java /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/src/test/java/edu/utexas/locke/Main.java -g -nowarn -target 1.5 -source 1.5
[WARNING] File encoding has not been set, using platform encoding UTF-8, i.e. build is platform dependent!
[INFO] Compiling 5 source files to /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes
[INFO] 
[INFO] --- maven-plugin:1.0.4:test-instrument (default-cli) @ LockeThreadPool ---
[DEBUG] Configuring mojo com.offbynull.coroutines:maven-plugin:1.0.4:test-instrument from plugin realm ClassRealm[plugin>com.offbynull.coroutines:maven-plugin:1.0.4, parent: sun.misc.Launcher$AppClassLoader@5c647e05]
[DEBUG] Configuring mojo 'com.offbynull.coroutines:maven-plugin:1.0.4:test-instrument' with basic configurator -->
[DEBUG]   (f) jdkLibsDirectory = /usr/local/java/jdk1.8.0_25/jre/lib
[DEBUG]   (f) project = MavenProject: edu.utexas.lockethreadpool:LockeThreadPool:0.0.1-SNAPSHOT @ /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/pom.xml
[DEBUG] -- end configuration --
[DEBUG] Getting compile classpath
[DEBUG] Getting bootstrap classpath
[INFO] Classpath for instrumentation is as follows: [/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes, /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes, /home/clemons/.m2/repository/com/offbynull/coroutines/user/1.0.4/user-1.0.4.jar, /usr/local/java/jdk1.8.0_25/jre/lib/charsets.jar, /usr/local/java/jdk1.8.0_25/jre/lib/jsse.jar, /usr/local/java/jdk1.8.0_25/jre/lib/jce.jar, /usr/local/java/jdk1.8.0_25/jre/lib/deploy.jar, /usr/local/java/jdk1.8.0_25/jre/lib/plugin.jar, /usr/local/java/jdk1.8.0_25/jre/lib/resources.jar, /usr/local/java/jdk1.8.0_25/jre/lib/jfxswt.jar, /usr/local/java/jdk1.8.0_25/jre/lib/jfr.jar, /usr/local/java/jdk1.8.0_25/jre/lib/javaws.jar, /usr/local/java/jdk1.8.0_25/jre/lib/security/US_export_policy.jar, /usr/local/java/jdk1.8.0_25/jre/lib/security/local_policy.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/sunpkcs11.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/zipfs.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/localedata.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/cldrdata.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/dnsns.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/nashorn.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/jfxrt.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/sunjce_provider.jar, /usr/local/java/jdk1.8.0_25/jre/lib/ext/sunec.jar, /usr/local/java/jdk1.8.0_25/jre/lib/rt.jar, /usr/local/java/jdk1.8.0_25/jre/lib/management-agent.jar]
[INFO] Creating instrumenter...
[INFO] Processing test output folder ... 
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeProcess$1.class
[DEBUG] File size changed from 1028 to 1028
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeDeque.class
[DEBUG] File size changed from 1107 to 1107
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeSemaphore.class
[DEBUG] File size changed from 321 to 321
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeThreadPool.class
[DEBUG] File size changed from 2490 to 2490
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/SynchronizationOperation.class
[DEBUG] File size changed from 2055 to 2055
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeProcess.class
[DEBUG] File size changed from 4562 to 4562
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/SynchronizationOperation$Type.class
[DEBUG] File size changed from 1369 to 1369
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeThreadPair.class
[DEBUG] File size changed from 758 to 758
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeThread.class
[DEBUG] File size changed from 3572 to 3572
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/ComputationTracker.class
[DEBUG] File size changed from 1135 to 1135
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/main/java/edu/utexas/locke/LockeTask.class
[DEBUG] File size changed from 1037 to 1037
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/test/java/edu/utexas/locke/Fibonacci.class
[DEBUG] File size changed from 1910 to 1910
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/test/java/edu/utexas/locke/CoroutineTest$1.class
[DEBUG] File size changed from 241 to 241
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/test/java/edu/utexas/locke/CoroutineTest.class
[DEBUG] File size changed from 1126 to 1126
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/test/java/edu/utexas/locke/MyThread.class
[DEBUG] File size changed from 786 to 786
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/test/java/edu/utexas/locke/Main.class
[DEBUG] File size changed from 1120 to 1120
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/test/java/edu/utexas/locke/LockeFibonacci.class
[DEBUG] File size changed from 1954 to 1954
[INFO] Instrumenting /home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes/test/java/edu/utexas/locke/CoroutineTest$MyCoroutine.class
[DEBUG] File size changed from 1342 to 1437
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.762s
[INFO] Finished at: Tue Aug 04 01:53:43 CDT 2015
[INFO] Final Memory: 17M/361M
[INFO] ------------------------------------------------------------------------

Finally, here is my pom.xml file. I'm pretty sure it is configured correctly because user-1.1.0.jar shows up as a dependency in my project, and I can run the instrument and test-instrument goals

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>edu.utexas.lockethreadpool</groupId>
  <artifactId>LockeThreadPool</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <name>Locke Thread Pool</name>
  <description>A work-stealing thread pool implementation in Java</description>
  <dependencies>
    <dependency>
        <groupId>com.offbynull.coroutines</groupId>
        <artifactId>user</artifactId>
        <version>1.1.0</version>
    </dependency>
  </dependencies>
  <build>
    <testOutputDirectory>/home/clemons/projects/ut/mp/LockeThreadPool/LockeThreadPool/target/classes</testOutputDirectory>
    <plugins>
        <plugin>
            <groupId>com.offbynull.coroutines</groupId>
            <artifactId>maven-plugin</artifactId>
            <version>1.1.0</version>
            <executions>
                <execution>
                    <goals>
                        <goal>instrument</goal>
                        <goal>test-instrument</goal>
                    </goals>
                </execution>
            </executions>
        </plugin>
    </plugins>
    <pluginManagement>
        <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven build itself.-->
            <plugin>
                <groupId>org.eclipse.m2e</groupId>
                <artifactId>lifecycle-mapping</artifactId>
                <version>1.0.0</version>
                <configuration>
                    <lifecycleMappingMetadata>
                        <pluginExecutions>
                            <pluginExecution>
                                <pluginExecutionFilter>
                                    <groupId>
                                        com.offbynull.coroutines
                                    </groupId>
                                    <artifactId>
                                        maven-plugin
                                    </artifactId>
                                    <versionRange>
                                        [1.1.0,)
                                    </versionRange>
                                    <goals>
                                        <goal>instrument</goal>
                                        <goal>test-instrument</goal>
                                    </goals>
                                </pluginExecutionFilter>
                                <action>
                                    <execute />
                                </action>
                            </pluginExecution>
                        </pluginExecutions>
                    </lifecycleMappingMetadata>
                </configuration>
            </plugin>
        </plugins>
    </pluginManagement>
  </build>
</project>

Other things I have tried: I have verified that the file that was instrumented is indeed the file I'm trying to execute. I also tried downgrading to 1.0.4, but that didn't help.

Any ideas?

Thanks!

offbynull commented 9 years ago

Hey,

The problem you're having is that your echo method isn't being instrumented. The reason for this is that the instrumenter (called from the maven plugin) will only instrument methods that take in a Continuation as a parameter. Trying to grab a Continuation object out of a field and calling suspend() on it won't work.

This is noted in the Explanation section of the README (just above the FAQ section). Important portion is as follows...

Any method that takes in a Continuation type as a parameter will be instrumented by the plugin to work as part of a coroutine.

If you update your code to the following, I bet it'll work.

        public void run(Continuation c) {
            System.out.println("started!");
            for (int i = 0; i < 10; i++)
            {
                echo(c, i);
            }
        }

        private void echo(Continuation c, int x) {
            System.out.println("in echo!");
            System.out.println(x);
            c.suspend();
        }

I'll keep this ticket open for a few days in case your problem isn't solved by this change.

offbynull commented 9 years ago

Possible action item:

Explicitly and overtly state the parameter requirement in the example section of the README.

offbynull commented 9 years ago

Possible action item:

Wording in explanation section may be too ambiguous.

claytonlemons commented 9 years ago

Thanks Kasra!

That was the issue all along. My program is working correctly now for the most part. There is another exception I came across that I'll post as a separate issue.

The reason I chose to make the Continuation object a class member is because my use case involves exposing a thread class (LockeThread) as part of a recursive thread pool library. LockeThread has the following methods: run(), fork() and join(). Clients override run() and call fork()/join() to implement recursive tasks. I wanted to hide the Continuation parameter so that clients would not need to worry about passing it around.

Out of curiosity, would it not be possible to annotate stack-saveable methods using something like @Continuable?

offbynull commented 9 years ago

Hey,

I think there are a couple of problems with this approach.

First is that versions of Java that don't support annotations won't work anymore. I think this includes anything below 1.5.

Second (most important) is that you introduce ambiguity by not passing in the Continuation object as a parameter. Passing in the Continuation object as a parameter acts as both a marker (equivalent to an annotation) and a guarantee that the Continuation object you're using is the one you want (it gets passed down the stack with the invocation chain). If you have the ability to grab a Continuation object from anywhere and call suspend on it, there's nothing stopping you from calling suspend on the wrong Continuation object / calling suspend on the correct Continuation object but at the wrong time or in the wrong state.

I understand that the design choices I made may not mesh well with your project's API. It's a little more rigid that Javaflow, but that rigidity also increases performance and is intended to make things less ambiguous. If you can't make it work, I would encourage you to take a look at the code and potentially create a fork to better fit your usecase.

offbynull commented 9 years ago

Just a heads up: There's an instrumentation bug in 1.1.0 where the Maven plugin crashes if it encounters arrays in certain rare cases. It's been fixed in 1.1.1, but hasn't been released yet.

offbynull commented 9 years ago

The README has been updated. The following was added

// IMPORTANT: Methods that are intended to be run as part of a coroutine // must take in a Continuation type as a parameter. Otherwise, they // won't be marked for instrumentation.

  • Question and answer about annotation moved to FAQ (with some tweaks)

Why not use annotations?

I wanted to hide the Continuation parameter so that clients would not need to worry about passing it around.

... snip ...

Out of curiosity, would it not be possible to annotate stack-saveable methods using something like @Continuable?

There are a couple of issues with using annotations ...

  1. First is that versions of Java that don't support annotations won't work anymore. This includes anything below 1.5.
  2. Second (most important) is that you introduce ambiguity by not passing in the Continuation object as a parameter. Passing in the Continuation object as a parameter acts as both a marker (equivalent to an annotation) and a guarantee that the Continuation object you're using is the one you want (it gets passed down the stack with the invocation chain). If instead of passing as a parameter, you were to use a Continuation object taken from some external source (e.g. a field or the return value of a method), there's more of a chance that you'll end up calling suspend on the wrong Continuation object / calling suspend on the correct Continuation object but at the wrong time or in the wrong state.
offbynull commented 9 years ago

Closing this ticket EOD today.