Eclipse:CSV 解析标准输入时未检测到 EOF

Eclipse: EOF not detected when CSV-parsing standard input

使用 Eclipse (2021-06, 4.20.0) 运行-“常用”选项卡中的配置设置将 csv 文件附加到标准输入。将 CSV 解析器附加到标准输入。

从解析器中提取 CSV 记录会获取所有文件内容,但不会检测到 EOF。 opencsv-5.5.2 和 apache-csv-1.9.0(以及我公司的遗留 csv 解析器)都会发生这种情况。

例如使用 opencsv:

var isr = new InputStreamReader(System.in);
var br = new BufferedReader(isr);
var reader = new CSVReader(isr /* or br */);
while ( (csv_record = reader.readNext()) != null) {
    // foo
}

在读取所有 csv 行后挂在 FileInputStream.readBytes 中。调用堆栈:

Thread [main] (Suspended)   
    owns: BufferedInputStream  (id=75)  
    owns: InputStreamReader  (id=22)    
    FileInputStream.readBytes(byte[], int, int) line: not available [native method] 
    FileInputStream.read(byte[], int, int) line: 279    
    BufferedInputStream.read1(byte[], int, int) line: 290   
    BufferedInputStream.read(byte[], int, int) line: 351    
    StreamDecoder.readBytes() line: 284 
    StreamDecoder.implRead(char[], int, int) line: 326  
    StreamDecoder.read(char[], int, int) line: 178  
    InputStreamReader.read(char[], int, int) line: 185  
    BufferedReader.fill() line: 161 
    BufferedReader.read() line: 182 
    CSVReader.isClosed() line: 399  
    CSVReader.getNextLine() line: 343   
    CSVReader.primeNextRecord() line: 235   
    CSVReader.flexibleRead(boolean, boolean) line: 598  
    CSVReader.readNext() line: 204  
    Main.main(String[]) line: 48    

所有 csv 解析器都挂在 FileInputStream.readBytes 中,具有相似的堆栈跟踪。

所有变体 运行 在 eclipse 之外都很好,使用重定向。

这是一个已知的 Eclipse 错误吗?我搜索了,但一无所获。

是否有任何已知的解决方法?

向 greg-449 致敬,这几乎可以肯定是一个 eclipse 错误:

https://bugs.eclipse.org/bugs/show_bug.cgi?id=513713