mirror of https://github.com/apache/kafka.git
				
				
				
			KAFKA-13288; Include internal topics when searching hanging transactions (#11319)
This patch ensures that internal topics are included when searching for hanging transactions with the `--broker-id` argument in `kafka-transactions.sh`. Reviewers: David Jacot <djacot@confluent.io>, Guozhang Wang <wangguoz@gmail.com>
This commit is contained in:
		
							parent
							
								
									1e19de3199
								
							
						
					
					
						commit
						c1c639db77
					
				|  | @ -19,6 +19,8 @@ package org.apache.kafka.clients.admin; | |||
| 
 | ||||
| import org.apache.kafka.common.annotation.InterfaceStability; | ||||
| 
 | ||||
| import java.util.Objects; | ||||
| 
 | ||||
| /** | ||||
|  * Options for {@link Admin#listTopics()}. | ||||
|  * | ||||
|  | @ -58,4 +60,24 @@ public class ListTopicsOptions extends AbstractOptions<ListTopicsOptions> { | |||
|     public boolean shouldListInternal() { | ||||
|         return listInternal; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public String toString() { | ||||
|         return "ListTopicsOptions(" + | ||||
|             "listInternal=" + listInternal + | ||||
|             ')'; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public boolean equals(Object o) { | ||||
|         if (this == o) return true; | ||||
|         if (o == null || getClass() != o.getClass()) return false; | ||||
|         ListTopicsOptions that = (ListTopicsOptions) o; | ||||
|         return listInternal == that.listInternal; | ||||
|     } | ||||
| 
 | ||||
|     @Override | ||||
|     public int hashCode() { | ||||
|         return Objects.hash(listInternal); | ||||
|     } | ||||
| } | ||||
|  |  | |||
|  | @ -29,6 +29,7 @@ import org.apache.kafka.clients.admin.AdminClientConfig; | |||
| import org.apache.kafka.clients.admin.DescribeProducersOptions; | ||||
| import org.apache.kafka.clients.admin.DescribeProducersResult; | ||||
| import org.apache.kafka.clients.admin.DescribeTransactionsResult; | ||||
| import org.apache.kafka.clients.admin.ListTopicsOptions; | ||||
| import org.apache.kafka.clients.admin.ListTransactionsOptions; | ||||
| import org.apache.kafka.clients.admin.ProducerState; | ||||
| import org.apache.kafka.clients.admin.TopicDescription; | ||||
|  | @ -719,7 +720,8 @@ public abstract class TransactionsCommand { | |||
|             Admin admin | ||||
|         ) throws Exception { | ||||
|             try { | ||||
|                 return new ArrayList<>(admin.listTopics().names().get()); | ||||
|                 ListTopicsOptions listOptions = new ListTopicsOptions().listInternal(true); | ||||
|                 return new ArrayList<>(admin.listTopics(listOptions).names().get()); | ||||
|             } catch (ExecutionException e) { | ||||
|                 printErrorAndExit("Failed to list topics", e.getCause()); | ||||
|                 return Collections.emptyList(); | ||||
|  |  | |||
|  | @ -24,6 +24,7 @@ import org.apache.kafka.clients.admin.DescribeProducersResult; | |||
| import org.apache.kafka.clients.admin.DescribeProducersResult.PartitionProducerState; | ||||
| import org.apache.kafka.clients.admin.DescribeTopicsResult; | ||||
| import org.apache.kafka.clients.admin.DescribeTransactionsResult; | ||||
| import org.apache.kafka.clients.admin.ListTopicsOptions; | ||||
| import org.apache.kafka.clients.admin.ListTopicsResult; | ||||
| import org.apache.kafka.clients.admin.ListTransactionsOptions; | ||||
| import org.apache.kafka.clients.admin.ListTransactionsResult; | ||||
|  | @ -533,7 +534,8 @@ public class TransactionsCommandTest { | |||
|     ) { | ||||
|         ListTopicsResult result = Mockito.mock(ListTopicsResult.class); | ||||
|         Mockito.when(result.names()).thenReturn(completedFuture(topics)); | ||||
|         Mockito.when(admin.listTopics()).thenReturn(result); | ||||
|         ListTopicsOptions listOptions = new ListTopicsOptions().listInternal(true); | ||||
|         Mockito.when(admin.listTopics(listOptions)).thenReturn(result); | ||||
|     } | ||||
| 
 | ||||
|     private void expectDescribeTopics( | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue