You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@kafka.apache.org by ij...@apache.org on 2017/05/31 09:22:23 UTC

kafka git commit: MINOR: Improve assert in ControllerFailoverTest

Repository: kafka
Updated Branches:
  refs/heads/trunk ef9551297 -> 31cc8885e


MINOR: Improve assert in ControllerFailoverTest

It sometimes fails in Jenkins like:

```text
java.lang.AssertionError: IllegalStateException was not thrown
	at org.junit.Assert.fail(Assert.java:88)
	at org.junit.Assert.assertTrue(Assert.java:41)
	at kafka.controller.ControllerFailoverTest.testHandleIllegalStateException(ControllerFailoverTest.scala:86)
```

I ran it locally 100 times with no failure.

Author: Ismael Juma <is...@juma.me.uk>

Reviewers: Rajini Sivaram <ra...@googlemail.com>

Closes #3176 from ijuma/improve-controller-failover-assert


Project: http://git-wip-us.apache.org/repos/asf/kafka/repo
Commit: http://git-wip-us.apache.org/repos/asf/kafka/commit/31cc8885
Tree: http://git-wip-us.apache.org/repos/asf/kafka/tree/31cc8885
Diff: http://git-wip-us.apache.org/repos/asf/kafka/diff/31cc8885

Branch: refs/heads/trunk
Commit: 31cc8885e4cfc35d97291b5d9eece6f3793f2538
Parents: ef95512
Author: Ismael Juma <is...@juma.me.uk>
Authored: Wed May 31 10:22:10 2017 +0100
Committer: Ismael Juma <is...@juma.me.uk>
Committed: Wed May 31 10:22:17 2017 +0100

----------------------------------------------------------------------
 .../unit/kafka/controller/ControllerFailoverTest.scala | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/kafka/blob/31cc8885/core/src/test/scala/unit/kafka/controller/ControllerFailoverTest.scala
----------------------------------------------------------------------
diff --git a/core/src/test/scala/unit/kafka/controller/ControllerFailoverTest.scala b/core/src/test/scala/unit/kafka/controller/ControllerFailoverTest.scala
index 7a91bef..c17ec6a 100644
--- a/core/src/test/scala/unit/kafka/controller/ControllerFailoverTest.scala
+++ b/core/src/test/scala/unit/kafka/controller/ControllerFailoverTest.scala
@@ -68,13 +68,11 @@ class ControllerFailoverTest extends KafkaServerTestHarness with Logging {
 
     // Wait until we have verified that we have resigned
     val latch = new CountDownLatch(1)
-    @volatile var expectedExceptionThrown = false
-    @volatile var unexpectedExceptionThrown: Option[Throwable] = None
+    @volatile var exceptionThrown: Option[Throwable] = None
     val illegalStateEvent = ControllerTestUtils.createMockControllerEvent(ControllerState.BrokerChange, { () =>
       try initialController.handleIllegalState(new IllegalStateException("Thrown for test purposes"))
       catch {
-        case _: IllegalStateException => expectedExceptionThrown = true
-        case t: Throwable => unexpectedExceptionThrown = Some(t)
+        case t: Throwable => exceptionThrown = Some(t)
       }
       latch.await()
     })
@@ -83,12 +81,13 @@ class ControllerFailoverTest extends KafkaServerTestHarness with Logging {
     TestUtils.waitUntilTrue(() => !initialController.kafkaScheduler.isStarted, "Scheduler was not shutdown")
     TestUtils.waitUntilTrue(() => !initialController.isActive, "Controller did not become inactive")
     latch.countDown()
-    assertTrue("IllegalStateException was not thrown", expectedExceptionThrown)
-    assertEquals("Unexpected exception thrown", None, unexpectedExceptionThrown)
+    assertTrue("handleIllegalState did not throw an exception", exceptionThrown.isDefined)
+    assertTrue(s"handleIllegalState should throw an IllegalStateException, but $exceptionThrown was thrown",
+      exceptionThrown.get.isInstanceOf[IllegalStateException])
 
     TestUtils.waitUntilTrue(() => {
       servers.exists { server =>
-        server.kafkaController.isActive && server.kafkaController.epoch > initialController.epoch
+        server.kafkaController.isActive && server.kafkaController.epoch > initialEpoch
       }
     }, "Failed to find controller")