Issue in AbstractTableExporter.getColumnValue

在使用ExportAction导出表格时会有下面的报错

Caused by: java.lang.ClassCastException: class java.lang.String cannot be cast to class java.lang.Integer (java.lang.String and java.lang.Integer are in module java.base of loader 'bootstrap')
	at com.xxx.LastUpdateTimeFormatter.format(LastUpdateTimeFormatter.java:10)
	at com.haulmont.cuba.gui.components.Formatter.apply(Formatter.java:30)
	at com.haulmont.cuba.gui.components.Formatter.apply(Formatter.java:26)
	at io.jmix.gridexportui.exporter.AbstractTableExporter.getColumnValue(AbstractTableExporter.java:195)
	at io.jmix.gridexportui.exporter.excel.ExcelExporter.createDataGridRowForEntityInstance(ExcelExporter.java:436)
	at io.jmix.gridexportui.exporter.excel.ExcelExporter.lambda$exportDataGrid$4(ExcelExporter.java:367)
	at io.jmix.gridexportui.exporter.excel.AllRecordsExporter.lambda$exportAll$0(AllRecordsExporter.java:141)
	at org.springframework.transaction.support.TransactionOperations.lambda$executeWithoutResult$0(TransactionOperations.java:68)
	at org.springframework.transaction.support.TransactionTemplate.execute(TransactionTemplate.java:140)
	at org.springframework.transaction.support.TransactionOperations.executeWithoutResult(TransactionOperations.java:67)
	at io.jmix.gridexportui.exporter.excel.AllRecordsExporter.exportAll(AllRecordsExporter.java:122)
	at io.jmix.gridexportui.exporter.excel.ExcelExporter.exportDataGrid(ExcelExporter.java:366)
	at io.jmix.gridexportui.action.ExportAction.doExport(ExportAction.java:196)
	at io.jmix.gridexportui.action.ExportAction$1.actionPerform(ExportAction.java:145)
	at io.jmix.ui.sys.DialogsImpl$OptionDialogBuilderImpl.lambda$show$0(DialogsImpl.java:344)
	at io.jmix.ui.widget.JmixButton.fireClick(JmixButton.java:77)
	at com.vaadin.ui.Button$1.click(Button.java:57)

看源码好像是因为AbstractTableExporter类的getColumnValue(DataGrid dataGrid, DataGrid.Column column, Object instance)方法体里调用了两次column.getPresentationProvider().apply(cellValue);

image

想确认下为什么这里要调用两次column.getPresentationProvider().apply(cellValue);

2 个赞

Hi

Thanks for reporting this issue!

I have created it on GitHub: PresentationProvider apply twice in some cases · Issue #1547 · jmix-framework/jmix · GitHub