-
Notifications
You must be signed in to change notification settings - Fork 485
Description
在scala3中 会出现hashCode死循环
Scala2 升级scale3后出现 hashCoded导致的StackOverflowError
触发Bug的代码
class ExportData(
field1: String,
field2: String,
description: Option[String] // 使用Option 导致hashCode死循环
) {
def getField1() = field1
def getField2() = field2
def getDescription(): Option[String] = description
}
class SimpleTest {
val exportData = List(
new ExportData("data1", "data2", Some("abc")),
)
@test
def test(): Unit = {
EasyExcelFactory.write("out2.csv", classOf[ExportData])
.excelType(ExcelTypeEnum.CSV)
.sheet("Sheet1")
.doWrite(exportData.asJava)
}
}
提示的异常或者没有达到的效果
java.lang.StackOverflowError
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.excel.metadata.csv.CsvWorkbook.hashCode(CsvWorkbook.java:36)
at com.alibaba.excel.metadata.csv.CsvSheet.hashCode(CsvSheet.java:60)
at com.alibaba.