[ 
https://issues.apache.org/jira/browse/KAFKA-16640?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17943638#comment-17943638
 ] 

Vladimir Bukhtoyarov commented on KAFKA-16640:
----------------------------------------------

[~frankvicky]  *Using* does not re-throw exception that happens inside lamda, 
if {*}get{*}(or similar) is not called. 

This pull-request [https://github.com/apache/kafka/pull/15881/files]  breaks 
all tests that it affects(about 13 tests).

 

For example this test passes despite fact that 5*5 != 5
{code:java}
Using(new CoordinatorLoaderImpl[(String, String)](
  time = Time.SYSTEM,
  replicaManager = replicaManager,
  deserializer = serde,
  loadBufferSize = 1000
)) { loader =>
  assertTrue(2*2 == 5)
  when(replicaManager.getLog(tp)).thenReturn(None)

  val result = loader.load(tp, coordinator)
  assertFutureThrows(result, classOf[NotLeaderOrFollowerException])
} {code}
 

To make this test working it needs to interact with Try like bellow
{code:java}
Using(new CoordinatorLoaderImpl[(String, String)](
  time = Time.SYSTEM,
  replicaManager = replicaManager,
  deserializer = serde,
  loadBufferSize = 1000
)) { loader =>
  assertTrue(2*2 == 5)
  when(replicaManager.getLog(tp)).thenReturn(None)

  val result = loader.load(tp, coordinator)
  assertFutureThrows(result, classOf[NotLeaderOrFollowerException])
}.get // call get to rethrow exception {code}

> Replace TestUtils#resource by scala.util.Using
> ----------------------------------------------
>
>                 Key: KAFKA-16640
>                 URL: https://issues.apache.org/jira/browse/KAFKA-16640
>             Project: Kafka
>          Issue Type: Improvement
>            Reporter: Chia-Ping Tsai
>            Assignee: TengYao Chi
>            Priority: Minor
>             Fix For: 3.8.0
>
>
> `scala.util.Using` is in both scala 2.13 and scala-collection-compat so we 
> don't need to have custom try-resource function.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to