@@ -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