【Java】 kafkaStreams.cleanUp(); がstate dirのファイルをうまく消せなくてエラーになる場合

おそらくwindows環境だけの問題です。

        KafkaStreams kafkaStreams = new KafkaStreams(builder.build(), streamsConfiguration);
        kafkaStreams.cleanUp();

の前に

        final File baseDir = new File(streamsConfiguration.get(StreamsConfig.STATE_DIR_CONFIG).toString());
        final File stateDir = new File(baseDir, streamsConfiguration.get(StreamsConfig.APPLICATION_ID_CONFIG).toString());
        //System.out.println(stateDir);
        try {
            FileUtils.deleteDirectory(stateDir);
        } catch (IOException e) {
            System.out.println("delete error");
        }

を突っ込みます。

import org.apache.commons.io.FileUtils; などが必要になります。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です