Skip to content

Commit f8db17d

Browse files
committed
fix csv async export
1 parent ff28173 commit f8db17d

1 file changed

Lines changed: 24 additions & 16 deletions

File tree

knowageutils/src/main/java/it/eng/spagobi/tools/dataset/common/iterator/CsvStreamingOutput.java

Lines changed: 24 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -48,28 +48,36 @@ public CsvStreamingOutput(DataIterator iterator) {
4848
resultSetMetaData = ((it.eng.spagobi.tools.dataset.common.iterator.ResultSetIterator) iterator).getRs().getMetaData();
4949
for (int i = 0; i < resultSetMetaData.getColumnCount(); i++) {
5050
String columnName = resultSetMetaData.getColumnName(i + 1);
51-
Optional<IFieldMetaData> fieldMetaData = fieldsMetadata.stream().filter(f -> f.getName().equals(columnName)).findFirst();
51+
Optional<IFieldMetaData> fieldMetaData = fieldsMetadata.stream().filter(f -> f.getName().equalsIgnoreCase(columnName)).findFirst();
5252
fieldMetaData.ifPresent(filteredMetadata::add);
5353
}
5454
} catch (Exception e) {
55-
IMetaData metadati = iterator.getMetaData();
56-
for (int i = 0; i < metadati.getFieldCount(); i++) {
57-
filteredMetadata.add(metadati.getFieldMeta(i));
58-
}
59-
while (iterator.hasNext()) {
60-
IRecord currRecord = iterator.next();
61-
for (int j = 0; j < metadati.getFieldCount(); j++) {
62-
IField field = currRecord.getFieldAt(j);
63-
Object fieldValue = field.getValue();
64-
if (fieldValue != null) {
65-
filteredMetadata.add(metadati.getFieldMeta(j));
66-
} else {
67-
}
68-
}
69-
}
55+
try {
56+
IMetaData metadati = iterator.getMetaData();
57+
for (int i = 0; i < metadati.getFieldCount(); i++) {
58+
filteredMetadata.add(metadati.getFieldMeta(i));
59+
}
60+
while (iterator.hasNext()) {
61+
IRecord currRecord = iterator.next();
62+
for (int j = 0; j < metadati.getFieldCount(); j++) {
63+
IField field = currRecord.getFieldAt(j);
64+
Object fieldValue = field.getValue();
65+
if (fieldValue != null) {
66+
filteredMetadata.add(metadati.getFieldMeta(j));
67+
}
68+
}
69+
}
7070

71+
} catch (Exception ex) {
72+
logger.error("Error while retrieving metadata from iterator", ex);
73+
throw new RuntimeException("Error while retrieving metadata from iterator", ex);
74+
}
7175
}
7276

77+
if (filteredMetadata.isEmpty()) {
78+
logger.error("No metadata found for the iterator");
79+
throw new RuntimeException("No metadata found for the iterator");
80+
}
7381

7482
this.visibleFields = filteredMetadata.stream().filter(e -> {
7583
Object o = e.getProperties().get("visible");

0 commit comments

Comments
 (0)