Skip to content

Commit 8ae7657

Browse files
committed
Fix: Added handler for unexpected exceptions on code to be able to commit the message to failure relationship without failing
Signed-off-by: Ricardo Ruiz Saiz <dorm.std@gmail.com>
1 parent 2e7b35d commit 8ae7657

2 files changed

Lines changed: 13 additions & 9 deletions

File tree

nifi-nifiCKANDatasetBackup-processors/src/main/java/net/atos/qrowd/processors/nifiCKANDatasetBackup/CKAN_Package_Backup.java

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,8 @@ public void onTrigger(final ProcessContext context, final ProcessSession session
204204
session.transfer(flowFile, REL_NO_PACKAGE);
205205
ckan_api_handler.close();
206206
}
207+
session.commit();
208+
getLogger().info("Processor finished completely");
207209
}catch(IOException ioe) {
208210
getLogger().log(LogLevel.ERROR, "Error while using the CKAN API");
209211
getLogger().error(ioe.toString());
@@ -213,10 +215,12 @@ public void onTrigger(final ProcessContext context, final ProcessSession session
213215
getLogger().log(LogLevel.ERROR, "Error while splitting the resource filename, it contains no '.'");
214216
getLogger().error(oob.toString());
215217
session.transfer(session.penalize(flowFile), REL_FAILURE);
216-
}finally {
217-
// As long as we commit the session right here, we are safe.
218-
session.commit();
219-
getLogger().info("Processor finished completely");
218+
}catch(Exception e)
219+
{
220+
getLogger().error("Unexpected error");
221+
getLogger().error(e.toString());
222+
session.transfer(session.penalize(flowFile), REL_FAILURE);
220223
}
224+
session.commit();
221225
}
222226
}

nifi-nifiCKANFlowfileUploader-processors/src/main/java/net/atos/qrowd/processors/nifiCKANprocessor/CKAN_Flowfile_Uploader.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -245,12 +245,12 @@ public void onTrigger(final ProcessContext context, final ProcessSession session
245245
new Object[]{file, url, organizationId });
246246
getLogger().error(ioe.toString());
247247
session.transfer(session.penalize(flowFile), REL_FAILURE);
248+
}catch(Exception e)
249+
{
250+
getLogger().error("Unexpected error");
251+
getLogger().error(e.toString());
252+
session.transfer(session.penalize(flowFile), REL_FAILURE);
248253
}
249-
250-
251-
// It is critical that we commit the session before we perform the Delete. Otherwise, we could have a case where we
252-
// ingest the file, delete it, and then NiFi is restarted before the session is committed. That would result in data loss.
253-
// As long as we commit the session right here, we are safe.
254254
session.commit();
255255
}
256256

0 commit comments

Comments
 (0)