in hms-lambda-handler/src/main/java/com/amazonaws/athena/hms/handler/ListTablesHandler.java [88:121]
public ListTablesResponse handleRequest(ListTablesRequest request, Context context)
{
HiveMetaStoreConf conf = getConf();
try {
context.getLogger().log("Connecting to embedded HMS client");
HiveMetaStoreClient client = getClient();
ListTablesResponse response = new ListTablesResponse();
TablePaginator paginator = new TablePaginator(context, request, client);
PaginatedResponse<Table> paginatedResponse = paginator.paginateByNames(request.getNextToken(), request.getMaxSize());
if (paginatedResponse != null) {
response.setNextToken(paginatedResponse.getNextToken());
List<Table> tables = paginatedResponse.getEntries();
if (tables != null && !tables.isEmpty()) {
TSerializer serializer = new TSerializer(getTProtocolFactory());
List<String> jsonTableList = new ArrayList<>();
for (Table table : tables) {
jsonTableList.add(serializer.toString(table, StandardCharsets.UTF_8.name()));
}
response.setTables(jsonTableList);
context.getLogger().log("Paginated response: entry size: " + jsonTableList.size()
+ ", nextToken: " + response.getNextToken());
}
}
return response;
}
catch (RuntimeException e) {
context.getLogger().log("Exception: " + e.getMessage());
throw e;
}
catch (Exception e) {
context.getLogger().log("Exception: " + e.getMessage());
throw new RuntimeException(e);
}
}