Skip to content

IllegalStateException listing bookmarks when there are no bookmarks

Created originally on Bitbucket by johnpeb (John Peberdy)

IllegalStateException listing bookmarks when there are no bookmarks

The exception is on the command invocation after the bookmark list() invocation. Patch below to repro.

{{{ java.lang.IllegalStateException: Trying to execute new command when command already running: bookmarks at com.aragost.javahg.internals.Server.runCommand(Server.java:403) at com.aragost.javahg.internals.AbstractCommand.launchStream(AbstractCommand.java:144) at com.aragost.javahg.internals.AbstractCommand.launchString(AbstractCommand.java:123) at com.aragost.javahg.commands.BookmarksCommand.create(BookmarksCommand.java:92) at com.aragost.javahg.commands.BookmarksCommandTest.test(BookmarksCommandTest.java:92) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:616) at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:44) at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:15) at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:41) at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:20) at org.junit.internal.runners.statements.RunAfters.evaluate(RunAfters.java:31) at org.junit.runners.BlockJUnit4ClassRunner.runNotIgnored(BlockJUnit4ClassRunner.java:79) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:71) at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:49) at org.junit.runners.ParentRunner$3.run(ParentRunner.java:193) at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:52) at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:191) at org.junit.runners.ParentRunner.access$000(ParentRunner.java:42) at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:184) at org.junit.runners.ParentRunner.run(ParentRunner.java:236) at org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:50) at org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390) at org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197) }}}

{{{ diff -r 73c3acc69257 src/test/java/com/aragost/javahg/commands/BookmarksCommandTest.java --- a/src/test/java/com/aragost/javahg/commands/BookmarksCommandTest.java Sun Apr 15 01:05:19 2012 -0400 +++ b/src/test/java/com/aragost/javahg/commands/BookmarksCommandTest.java Sun Apr 15 01:22:31 2012 -0400 @@ -86,6 +86,9 @@ @test public void test() throws IOException { Repository repo = getTestRepository(); +

  •    Assert.assertTrue(BookmarksCommand.on(repo).list().isEmpty());
  •    BookmarksCommand.on(repo).inactive().create("null");
       createChangeset();
       BookmarksCommand.on(repo).create("a");

}}}

To upload designs, you'll need to enable LFS and have an admin enable hashed storage. More information