diff --git a/docs/sections/services/dfc/architecture.rst b/docs/sections/services/dfc/architecture.rst
index eec07a9..f25b855 100644
--- a/docs/sections/services/dfc/architecture.rst
+++ b/docs/sections/services/dfc/architecture.rst
@@ -13,8 +13,8 @@
 
 DFC will handle the collection of bulk PM data flow:
     1. Subscribes to fileReady DMaaP topic
-    2. Collects the file from the xNF
-    3. Sends new file data to DataRouter.
+    2. Collects the files from the xNF
+    3. Sends the collected files and files' data to DataRouter.
 
 
 DFC is delivered as one **Docker container** which hosts application server.
diff --git a/docs/sections/services/dfc/configuration.rst b/docs/sections/services/dfc/configuration.rst
index 03999f9..fce00cd 100644
--- a/docs/sections/services/dfc/configuration.rst
+++ b/docs/sections/services/dfc/configuration.rst
@@ -20,7 +20,7 @@
 JSON CONFIGURATION EXPLAINED
 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
 
-Variables of interest (e.g. variables that should be inspected/modifed for a specific runtime environment) are listed below for convenience.  The entire file is provided later in this page for reference.
+Variables of interest (e.g. variables that should be inspected/modified for a specific runtime environment) are listed below for convenience.  The entire file is provided later in this page for reference.
 
 dmaapConsumerConfiguration
 """"""""""""""""""""""""""
diff --git a/docs/sections/services/dfc/consumedapis.rst b/docs/sections/services/dfc/consumedapis.rst
index 2fe63b4..258164a 100644
--- a/docs/sections/services/dfc/consumedapis.rst
+++ b/docs/sections/services/dfc/consumedapis.rst
@@ -23,7 +23,7 @@
 +-----------+---------------------+
 
 GET /FEEDLOG_TOPIC/DEFAULT_FEED_ID?type=pub&filename=FILENAME
--------------
+-------------------------------------------------------------
 
 Description
 ~~~~~~~~~~~
diff --git a/docs/sections/services/dfc/delivery.rst b/docs/sections/services/dfc/delivery.rst
index 02494ab..41d7240 100644
--- a/docs/sections/services/dfc/delivery.rst
+++ b/docs/sections/services/dfc/delivery.rst
@@ -9,22 +9,21 @@
 
 DFC is delivered as a docker container. The latest released version (Dublin) can be downloaded from nexus:
 
-    ``docker pull nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.1.2``
+    ``docker pull nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.1.3``
 
-For another version, it is possible to replace the tag '1.1.2' with any version that seems suitable. Available images
+For another version, it is possible to replace the tag '1.1.3' with any version that seems suitable. Available images
 are visible following this `link`_.
 
-.. _link https://nexus3.onap.org/#browse/search=keyword%3D*datafile*
+.. _link: https://nexus3.onap.org/#browse/search=keyword%3D*collectors.datafile*
 
 
 ONAP Gerrit
 -----------
 
-It is possible to clone the Gerrit repository of DFC with at this `link`_. Choose your preferred settings (ssh, http or
-https, with or without hook) and run the command in your terminal.
-
-.. _link https://gerrit.onap.org/r/#/admin/projects/dcaegen2/collectors/datafile
+It is possible to clone the Gerrit repository of DFC at this
+`link <https://gerrit.onap.org/r/#/admin/projects/dcaegen2/collectors/datafile>`__.
+Choose your preferred settings (ssh, http or https, with or without hook) and run the command in your terminal.
 
 If using Cloudify to deploy DFC, the blueprints are needed, and can be found `here`_.
 
-.. _here https://gerrit.onap.org/r/gitweb?p=dcaegen2/platform/blueprints.git;a=blob;f=blueprints/reference_templates/k8s-datafile-collector.yaml-template;h=17d2aedec131154b4f5f84a08a099b0364b1e627;hb=HEAD
\ No newline at end of file
+.. _here: https://gerrit.onap.org/r/gitweb?p=dcaegen2/collectors/datafile.git;a=blob;f=datafile-app-server/dpo/blueprints/k8s-datafile.yaml;h=cae953085ab00570ea6dd9600c7a7a83e33e3249;hb=HEAD
diff --git a/docs/sections/services/dfc/installation.rst b/docs/sections/services/dfc/installation.rst
index d782a52..bfc84e4 100644
--- a/docs/sections/services/dfc/installation.rst
+++ b/docs/sections/services/dfc/installation.rst
@@ -21,25 +21,21 @@
 Deployment steps
 ^^^^^^^^^^^^^^^^
 
-1. Execute bash on the cloudify manager kubernetes pod. 
+1. Execute bash on the cloudify manager kubernetes pod.
 
-.. code-block:: json
-    kubectl -n onap exec -it <dev-dcaegen2-dcae-cloudify-manager> bash
+    ``kubectl -n onap exec -it <dev-dcaegen2-dcae-cloudify-manager> bash``
 
 2. Download the dfc `blueprint`_.
-.. _blueprint 
 
-    https://gerrit.onap.org/r/gitweb?p=dcaegen2/platform/blueprints.git;a=blob;f=blueprints/reference_templates/k8s-datafile-collector.yaml-template;h=17d2aedec131154b4f5f84a08a099b0364b1e627;hb=HEAD
+.. _blueprint: https://gerrit.onap.org/r/gitweb?p=dcaegen2/platform/blueprints.git;a=blob;f=blueprints/reference_templates/k8s-datafile-collector.yaml-template;h=17d2aedec131154b4f5f84a08a099b0364b1e627;hb=HEAD
 
 3. Run Cloudify Install command to install dfc.
 
-.. code-block:: json
-    cfy install <dfc-blueprint-path>
+    ``cfy install <dfc-blueprint-path>``
 
 Sample output:
 
-..code-block:: json
-    cfy install k8s-datafile.yaml
+    ``cfy install k8s-datafile.yaml``
 
 Run '*cfy events list -e 37da3f5f-a06b-4ce8-84d3-8b64ccd81c33'* to retrieve the execution's events/logs.
 
@@ -61,18 +57,17 @@
 Installation
 ^^^^^^^^^^^^
 
-The following command will download the Dublin version of the datafile container from
+The following command will download the Dublin version of the datafile image from
 nexus and launch it in the container named "datafile":
 
-    ``docker run -d -p 8100:8100 -p 8433:8433
-    nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.1.2``
+    ``docker run -d -p 8100:8100 -p 8433:8433 nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:1.1.3``
 
-For another version, it is possible to replace the tag '1.1.2' with any version that seems suitable (including latest).
+For another version, it is possible to replace the tag '1.1.3' with any version that seems suitable (including latest).
 Available images are visible following this `link`_.
 
-.. _link https://nexus3.onap.org/#browse/search=keyword%3D*datafile*
+.. _link: https://nexus3.onap.org/#browse/search=keyword%3D*datafile*
 
-Another option is to pull the container first, and then run it with the image ID:
+Another option is to pull the image first, and then run the image's container with the image ID:
 
     ``docker pull nexus3.onap.org:10001/onap/org.onap.dcaegen2.collectors.datafile.datafile-app-server:latest``
 
diff --git a/docs/sections/services/dfc/release-notes.rst b/docs/sections/services/dfc/release-notes.rst
index 1ae888a..a0277d8 100644
--- a/docs/sections/services/dfc/release-notes.rst
+++ b/docs/sections/services/dfc/release-notes.rst
@@ -4,11 +4,9 @@
 Release Notes
 =============
 
-Version 1.1.2
+Version 1.1.3
 -------------
 
-:Release Date: 2019-05-30
-
 Messages are now handled in parallel
 
 Retry mechanism implemented
@@ -17,6 +15,8 @@
 
 Deployment using Cloudify made available
 
+Bug fix: Too old files (thus not existing anymore) are ignored
+
 
 Version: 1.1.1
 --------------
diff --git a/docs/sections/services/dfc/troubleshooting.rst b/docs/sections/services/dfc/troubleshooting.rst
index c905802..a4c10a7 100644
--- a/docs/sections/services/dfc/troubleshooting.rst
+++ b/docs/sections/services/dfc/troubleshooting.rst
@@ -1,5 +1,8 @@
-Trobleshooting
-==============
+.. This work is licensed under a Creative Commons Attribution 4.0 International License.
+.. http://creativecommons.org/licenses/by/4.0
+
+Troubleshooting
+===============
 
 In order to find the origin of an error, we suggest to use the logs resulting from tracing, which needs to be activated.
 
@@ -21,27 +24,25 @@
 Here are some examples on how to use the REST API  (here curl is used, but a web-browser can also be used. If you are
 logged in to a container, wget can probably be used)  :
 Activate debug tracing on all classes in the DFC:
-.. code-block:: json
-    curl http://127.0.0.1:8100/actuator/loggers/org.onap.dcaegen2.collectors.datafile -i -X POST  -H 'Content-Type:
-    application/json' -d '{"configuredLevel":"debug"}'
+
+    ``curl http://127.0.0.1:8100/actuator/loggers/org.onap.dcaegen2.collectors.datafile -i -X POST  -H 'Content-Type:
+    application/json' -d '{"configuredLevel":"debug"}'``
 
 Read the log file:
-.. code-block:: json
-    curl http://127.0.0.1:8100/actuator/logfile  -i -X GET
+
+    ``curl http://127.0.0.1:8100/actuator/logfile  -i -X GET``
 
 Get build information:
-.. code-block:: json
-    curl http://127.0.0.1:8100/actuator/info
+
+    ``curl http://127.0.0.1:8100/actuator/info``
 
 Get metric from the JVM. This lists the metrics that are available:
 
-.. code-block:: json
-    curl http://127.0.0.1:8100/actuator/metrics  -i -X GET
+    ``curl http://127.0.0.1:8100/actuator/metrics  -i -X GET``
 
 To see the value of a particular metric, just add \/[nameOfTheMetric] in the end of address, for example:
 
-.. code-block:: json
-    curl http://127.0.0.1:8100/actuator/metrics/process.cpu.usage  -i -X GET
+    ``curl http://127.0.0.1:8100/actuator/metrics/process.cpu.usage  -i -X GET``
 
 
 Certificate failure
@@ -50,14 +51,12 @@
 If there is an error linked to the certificate, it is possible to get information about it. A possible cause for the
 error can be that the expiry date of the certificate is past.
 
-.. code-block:: json
-    keytool -list -v -keystore dfc.jks
+    ``keytool -list -v -keystore dfc.jks``
 
 The command to encode the b64 jks file to local execution is (the \*.jks.b64 is in the repo and the Dockerfile is
 encoding it into .jks. So when you pull from nexus, this won't be needed, only when git-checkout and java/mvn run):
 
-.. code-block:: json
-    base64 -d dfc.jks.b64 > dfc.jks
+    ``base64 -d dfc.jks.b64 > dfc.jks``
 
 
 Common logs due to configuration errors
@@ -67,168 +66,210 @@
 
 
 
-..**Missing configuration on Consul**
+.. **Missing configuration on Consul**
 
-.."Exception during getting configuration from CONSUL/CONFIG_BINDING_SERVICE"
+.. "Exception during getting configuration from CONSUL/CONFIG_BINDING_SERVICE"
 
 
 The file datafile_endpoints.json allows to set different configuration parameters. You can find below the kind of reply
 you get if any parameter is not valid:
 
 
-Wrong trustedCaPassword:
-org.onap.dcaegen2.collectors.datafile.tasks.FileCollector     |2019-04-24T14:05:54.494Z     |WARN     |Failed to download file: PNF0 A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:06:40.609Z     |ERROR     |File fetching failed, fileData
+-Wrong trustedCaPassword:
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.tasks.FileCollector     |2019-04-24T14:05:54.494Z     |WARN     |Failed to download file: PNF0 A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:06:40.609Z     |ERROR     |File fetching failed, fileData
 
 
-Wrong trustedCa:
-org.onap.dcaegen2.collectors.datafile.tasks.FileCollector     |2019-04-24T14:11:22.584Z     |WARN     |Failed to download file: PNF0 A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: **WRONGconfig/ftp.jks**     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/ftp.jks     ...
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/ftp.jks     ...
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/ftp.jks     ...
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:11:58.963Z     |ERROR     |File fetching failed, fileData
+-Wrong trustedCa:
 
-Wrong keyPassword:
-org.onap.dcaegen2.collectors.datafile.tasks.FileCollector     |2019-04-24T14:15:40.694Z     |WARN     |Failed to download file: PNF0 A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:16:08.292Z     |ERROR     |File fetching failed, fileData
+.. code-block:: json
 
-Wrong keyCert:
-org.onap.dcaegen2.collectors.datafile.tasks.FileCollector     |2019-04-24T14:20:46.308Z     |WARN     |Failed to download file: PNF0 A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: **WRONGconfig/dfc.jks (No such file or directory)**     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/dfc.jks (No such file or directory)     ...
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/dfc.jks (No such file or directory)     ...
-\...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/dfc.jks (No such file or directory)     ...
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:21:16.447Z     |ERROR     |File fetching failed, fileData
+    org.onap.dcaegen2.collectors.datafile.tasks.FileCollector     |2019-04-24T14:11:22.584Z     |WARN     |Failed to download file: PNF0 A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: **WRONGconfig/ftp.jks**     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/ftp.jks     ...
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/ftp.jks     ...
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/ftp.jks     ...
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:11:58.963Z     |ERROR     |File fetching failed, fileData
 
-Wrong consumer dmaapHostName:
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:27:06.578Z     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: **WRONGlocalhost**: Try again, config: DmaapConsumerConfiguration{consumerId=C12, consumerGroup=OpenDcae-c12, timeoutMs=-1, messageLimit=1, **dmaapHostName=WRONGlocalhost**, dmaapPortNumber=2222, dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUT, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=90fe7450-0bc2-4bf6-a2f0-2aeef6f196ae     |     |     |reactor-http-epoll-3     |
-\...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*: Try again, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*: Try again, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*: Try again, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*: Try again, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
+-Wrong keyPassword:
 
-Wrong consumer dmaapPortNumber:
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:33:35.286Z     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:**WRONGport**, config: DmaapConsumerConfiguration{consumerId=C12, consumerGroup=OpenDcae-c12, timeoutMs=-1, messageLimit=1, dmaapHostName=localhost, **dmaapPortNumber=WRONGport**, dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUT, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=b57c68fe-84bf-442f-accd-ea821a5a321f     |     |     |reactor-http-epoll-3     |
-\...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
+.. code-block:: json
 
-Wrong consumer dmaapTopicName:
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:38:07.097Z     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=C12, consumerGroup=OpenDcae-c12, timeoutMs=-1, messageLimit=1, dmaapHostName=localhost, dmaapPortNumber=2222, **dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG**, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=8bd71bac-68af-494b-9518-3ab4478371cf     |     |     |reactor-http-epoll-4     |
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
+    org.onap.dcaegen2.collectors.datafile.tasks.FileCollector     |2019-04-24T14:15:40.694Z     |WARN     |Failed to download file: PNF0 A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.IOException: Keystore was tampered with, or password was incorrect     ...
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:16:08.292Z     |ERROR     |File fetching failed, fileData
 
-Consumer dmaapProtocol:
+-Wrong keyCert:
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.tasks.FileCollector     |2019-04-24T14:20:46.308Z     |WARN     |Failed to download file: PNF0 A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: **WRONGconfig/dfc.jks (No such file or directory)**     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/dfc.jks (No such file or directory)     ...
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/dfc.jks (No such file or directory)     ...
+    \...     |WARN     |Failed to download file: ..., reason: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Could not open connection: java.io.FileNotFoundException: WRONGconfig/dfc.jks (No such file or directory)     ...
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:21:16.447Z     |ERROR     |File fetching failed, fileData
+
+-Wrong consumer dmaapHostName:
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:27:06.578Z     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: **WRONGlocalhost**: Try again, config: DmaapConsumerConfiguration{consumerId=C12, consumerGroup=OpenDcae-c12, timeoutMs=-1, messageLimit=1, **dmaapHostName=WRONGlocalhost**, dmaapPortNumber=2222, dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUT, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=90fe7450-0bc2-4bf6-a2f0-2aeef6f196ae     |     |     |reactor-http-epoll-3     |
+    \...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*: Try again, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*: Try again, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*: Try again, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.net.UnknownHostException: *WRONGlocalhost*: Try again, config: DmaapConsumerConfiguration{..., dmaapHostName=*WRONGlocalhost*, ...}     ...
+
+-Wrong consumer dmaapPortNumber:
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:33:35.286Z     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:**WRONGport**, config: DmaapConsumerConfiguration{consumerId=C12, consumerGroup=OpenDcae-c12, timeoutMs=-1, messageLimit=1, dmaapHostName=localhost, **dmaapPortNumber=WRONGport**, dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUT, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=b57c68fe-84bf-442f-accd-ea821a5a321f     |     |     |reactor-http-epoll-3     |
+    \...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: io.netty.channel.AbstractChannel$AnnotatedConnectException: syscall:getsockopt(..) failed: Connection refused: localhost/127.0.0.1:*WRONGport*, config: DmaapConsumerConfiguration{..., dmaapPortNumber=*WRONGport*, ...}     ...
+
+-Wrong consumer dmaapTopicName:
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T14:38:07.097Z     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=C12, consumerGroup=OpenDcae-c12, timeoutMs=-1, messageLimit=1, dmaapHostName=localhost, dmaapPortNumber=2222, **dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG**, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=8bd71bac-68af-494b-9518-3ab4478371cf     |     |     |reactor-http-epoll-4     |
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., dmaapTopicName=*/events/unauthenticated.VES_NOTIFICATION_OUTPUTWRONG*, ...}     ...
+
+-Consumer dmaapProtocol:
 Not configurable.
 
-..Wrong consumer dmaapUserName:
-..No issue with the simulator, to be checked in cloud40.
+.. Wrong consumer dmaapUserName:
+.. No issue with the simulator, to be checked in cloud40.
 
-..Wrong consumer dmaapUserPassword:
-..No issue with the simulator, to be checked in cloud40.
+.. Wrong consumer dmaapUserPassword:
+.. No issue with the simulator, to be checked in cloud40.
 
-Consumer dmaapContentType:
+-Consumer dmaapContentType:
 Not configurable.
 
-Wrong consumer consumerId:
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:10:13.485Z     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{**consumerId=C12WRONG**, consumerGroup=OpenDcae-c12, timeoutMs=-1, messageLimit=1, dmaapHostName=localhost, dmaapPortNumber=2222, dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUT, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=138acd07-c519-41ef-8dcb-08d78af2d914     |     |     |reactor-http-epoll-4     |
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
+-Wrong consumer consumerId:
 
-Wrong consumer consumerGroup:
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:15:51.869Z     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=C12, **consumerGroup=OpenDcae-c12WRONG**, timeoutMs=-1, messageLimit=1, dmaapHostName=localhost, dmaapPortNumber=2222, dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUT, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=880c4593-dc3f-422e-b9d7-4aeca8cbd0bf     |     |     |reactor-http-epoll-4     |
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
-\...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
+.. code-block:: json
 
-Wrong consumer timeoutMs (not a numeric value):
-org.onap.dcaegen2.collectors.datafile.configuration.AppConfig     |2019-04-24T15:23:04.674Z     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     |RequestID=215c39ed-d54e-44a2-9a10-08539e645801     |java.lang.NumberFormatException: **For input string: "WRONG"**\n\tat java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n\tat java.lang.Integer.parseInt(Integer.java:580)\n\tat java.lang.Integer.parseInt(Integer.java:615)\n\tat com.google.gson.JsonPrimitive.getAsInt(JsonPrimitive.java:264)\n\tat com.google.gson.internal.bind.JsonTreeReader.nextInt(JsonTreeReader.java:243)\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:226)\n\t... 20 common frames omitted\nWrapped by: com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: **For input string: "WRONG"**\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:228)\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:218)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.readInTimeoutMs(GsonAdaptersDmaapConsumerConfiguration.java:219)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.eachAttribute(GsonAdaptersDmaapConsumerConfiguration.java:138)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.readDmaapConsumerConfiguration(GsonAdaptersDmaapConsumerConfiguration.java:116)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.read(GsonAdaptersDmaapConsumerConfiguration.java:66)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.read(GsonAdaptersDmaapConsumerConfiguration.java:31)\n\tat com.google.gson.Gson.fromJson(Gson.java:927)\n\tat com.google.gson.Gson.fromJson(Gson.java:994)\n\tat com.google.gson.Gson.fromJson(Gson.java:967)\n\tat org.onap.dcaegen2.collectors.datafile.configuration.AppConfig.deserializeType(AppConfig.java:130)\n\tat org.onap.dcaegen2.collectors.datafile.configuration.AppConfig.loadConfigurationFromFile(AppConfig.java:96)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.executeDatafileMainTask(ScheduledTasks.java:91)\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |pool-3-thread-1     |
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:23:04.677Z     |ERROR     |Unexpected exception: java.lang.NullPointerException     |RequestID=215c39ed-d54e-44a2-9a10-08539e645801     |java.lang.NullPointerException: null\n\tat org.onap.dcaegen2.collectors.datafile.service.DmaapWebClient.fromConfiguration(DmaapWebClient.java:54)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DMaaPMessageConsumer.createHttpClient(DMaaPMessageConsumer.java:74)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DMaaPMessageConsumer.<init>(DMaaPMessageConsumer.java:48)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.createConsumerTask(ScheduledTasks.java:157)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.fetchMoreFileReadyMessages(ScheduledTasks.java:247)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.createMainTask(ScheduledTasks.java:108)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.executeDatafileMainTask(ScheduledTasks.java:92)\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |pool-3-thread-1     |
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:10:13.485Z     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{**consumerId=C12WRONG**, consumerGroup=OpenDcae-c12, timeoutMs=-1, messageLimit=1, dmaapHostName=localhost, dmaapPortNumber=2222, dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUT, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=138acd07-c519-41ef-8dcb-08d78af2d914     |     |     |reactor-http-epoll-4     |
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=*C12WRONG*, ...}     ...
 
-Wrong consumer messageLimit:
-org.onap.dcaegen2.collectors.datafile.configuration.AppConfig     |2019-04-24T15:27:40.433Z     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     |RequestID=69974429-d80a-4333-a16c-eae7588905a9     |java.lang.NumberFormatException: **For input string: "WRONG"**\n\tat java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n\tat java.lang.Integer.parseInt(Integer.java:580)\n\tat java.lang.Integer.parseInt(Integer.java:615)\n\tat com.google.gson.JsonPrimitive.getAsInt(JsonPrimitive.java:264)\n\tat com.google.gson.internal.bind.JsonTreeReader.nextInt(JsonTreeReader.java:243)\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:226)\n\t... 20 common frames omitted\nWrapped by: com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: **For input string: "WRONG"**\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:228)\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:218)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.readInMessageLimit(GsonAdaptersDmaapConsumerConfiguration.java:225)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.eachAttribute(GsonAdaptersDmaapConsumerConfiguration.java:152)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.readDmaapConsumerConfiguration(GsonAdaptersDmaapConsumerConfiguration.java:116)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.read(GsonAdaptersDmaapConsumerConfiguration.java:66)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.read(GsonAdaptersDmaapConsumerConfiguration.java:31)\n\tat com.google.gson.Gson.fromJson(Gson.java:927)\n\tat com.google.gson.Gson.fromJson(Gson.java:994)\n\tat com.google.gson.Gson.fromJson(Gson.java:967)\n\tat org.onap.dcaegen2.collectors.datafile.configuration.AppConfig.deserializeType(AppConfig.java:130)\n\tat org.onap.dcaegen2.collectors.datafile.configuration.AppConfig.loadConfigurationFromFile(AppConfig.java:96)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.executeDatafileMainTask(ScheduledTasks.java:91)\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |pool-3-thread-1     |
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:27:40.436Z     |ERROR     |Unexpected exception: java.lang.NullPointerException     |RequestID=69974429-d80a-4333-a16c-eae7588905a9     |java.lang.NullPointerException: null\n\tat org.onap.dcaegen2.collectors.datafile.service.DmaapWebClient.fromConfiguration(DmaapWebClient.java:54)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DMaaPMessageConsumer.createHttpClient(DMaaPMessageConsumer.java:74)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DMaaPMessageConsumer.<init>(DMaaPMessageConsumer.java:48)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.createConsumerTask(ScheduledTasks.java:157)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.fetchMoreFileReadyMessages(ScheduledTasks.java:247)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.createMainTask(ScheduledTasks.java:108)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.executeDatafileMainTask(ScheduledTasks.java:92)\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |pool-3-thread-1     |
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
-\...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
-\...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+-Wrong consumer consumerGroup:
 
-Wrong producer dmaapHostName:
-org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker     |2019-04-24T15:33:00.097Z     |WARN     |Unable to check if file has been published, file: A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.UnknownHostException: **WRONGlocalhost**: Try again\n\tat java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)\n\tat java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)\n\tat java.net.InetAddress.getAllByName0(InetAddress.java:1277)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1193)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1127)\n\tat org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:664)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:635)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:474)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:280)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:295)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:119)\n\t... 23 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.UnknownHostException: **WRONGlocalhost**: Try again\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:120)\n\t... 23 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:124)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker.isFilePublished(PublishedChecker.java:82)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.shouldBePublished(ScheduledTasks.java:194)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:93)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
-org.onap.dcaegen2.collectors.datafile.ftp.FtpsClient     |2019-04-24T15:33:00.275Z     |WARN     |Local file /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz already created     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
-org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher     |2019-04-24T15:33:00.429Z     |WARN     |Unable to send file to DataRouter. Data: /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.UnknownHostException: **WRONGlocalhost**\n\tat java.net.InetAddress.getAllByName0(InetAddress.java:1281)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1193)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1127)\n\tat org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:664)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:635)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:474)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:280)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:295)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:92)\n\t... 61 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.UnknownHostException: **WRONGlocalhost**\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:93)\n\t... 61 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:97)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher.publishFile(DataRouterPublisher.java:102)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)\n\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)\n\tat reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:89)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:145)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... Unable to create web client.\n\tat ...
-org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher     |2019-04-24T15:33:18.558Z     |WARN     |Unable to send file to DataRouter. Data: /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.UnknownHostException: **WRONGlocalhost**: Try again\n\tat java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)\n\tat java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)\n\tat java.net.InetAddress.getAllByName0(InetAddress.java:1277)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1193)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1127)\n\tat org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:664)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:635)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:474)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:280)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:295)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:92)\n\t... 20 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.UnknownHostException: **WRONGlocalhost**: Try again\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:93)\n\t... 20 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:97)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher.publishFile(DataRouterPublisher.java:102)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:457)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.resubscribe(FluxRetryWhen.java:183)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onNext(FluxRetryWhen.java:229)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)\n\tat reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:117)\n\tat reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:50)\n\tat reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:27)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |parallel-204     |
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.UnknownHostException: *WRONGlocalhost*: Try again\n\tat ... java.net.UnknownHostException: *WRONGlocalhost*: Try again\n\tat ... Unable to create web client.\n\tat ...
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:33:57.340Z     |ERROR     |File publishing failed: FilePublishInformation{productName=RnNode, vendorName=Ericsson, lastEpochMicrosec=8745745764578, sourceName=PNF0, startEpochMicrosec=8745745764578, timeZoneOffset=UTC+05.30, name=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, location=ftps://onap:pano@localhost:21/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, internalLocation=/tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, compression=gzip, fileFormatType=org.3GPP.32.435#measCollec, fileFormatVersion=V10, context={RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz}}     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |parallel-206     |
+.. code-block:: json
 
-Wrong producer dmaapPortNumber:
-org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker     |2019-04-24T15:38:24.806Z     |WARN     |Unable to check if file has been published, file: A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.ConnectException: Connection refused\n\tat sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)\n\tat sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)\n\tat org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:171)\n\tat org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:145)\n\tat org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:348)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)\n\t... 1 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:120)\n\t... 23 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:124)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker.isFilePublished(PublishedChecker.java:82)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.shouldBePublished(ScheduledTasks.java:194)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:93)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
-org.onap.dcaegen2.collectors.datafile.ftp.FtpsClient     |2019-04-24T15:38:24.972Z     |WARN     |Local file /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz already created     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
-org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher     |2019-04-24T15:38:25.146Z     |WARN     |Unable to send file to DataRouter. Data: /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.ConnectException: Connection refused\n\tat sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)\n\tat sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)\n\tat org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:171)\n\tat org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:145)\n\tat org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:348)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)\n\t... 1 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:93)\n\t... 61 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:97)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher.publishFile(DataRouterPublisher.java:102)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)\n\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)\n\tat reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:89)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:145)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:39:38.121Z     |ERROR     |File publishing failed: FilePublishInformation{productName=RnNode, vendorName=Ericsson, lastEpochMicrosec=8745745764578, sourceName=PNF0, startEpochMicrosec=8745745764578, timeZoneOffset=UTC+05.30, name=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, location=ftps://onap:pano@localhost:21/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, internalLocation=/tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, compression=gzip, fileFormatType=org.3GPP.32.435#measCollec, fileFormatVersion=V10, context={RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz}}     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |parallel-206     |
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:15:51.869Z     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{consumerId=C12, **consumerGroup=OpenDcae-c12WRONG**, timeoutMs=-1, messageLimit=1, dmaapHostName=localhost, dmaapPortNumber=2222, dmaapTopicName=/events/unauthenticated.VES_NOTIFICATION_OUTPUT, dmaapProtocol=http, dmaapUserName=, dmaapUserPassword=, dmaapContentType=application/json, trustStorePath=change it, trustStorePasswordPath=change it, keyStorePath=change it, keyStorePasswordPath=change it, enableDmaapCertAuth=false}     |RequestID=880c4593-dc3f-422e-b9d7-4aeca8cbd0bf     |     |     |reactor-http-epoll-4     |
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
+    \...     |ERROR     |Polling for file ready message failed, exception: java.lang.RuntimeException: DmaaPConsumer HTTP 404 NOT_FOUND, config: DmaapConsumerConfiguration{..., consumerGroup=*OpenDcae-c12WRONG*, ...}     ...
 
-Producer dmaapTopicName:
+-Wrong consumer timeoutMs (not a numeric value):
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.configuration.AppConfig     |2019-04-24T15:23:04.674Z     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     |RequestID=215c39ed-d54e-44a2-9a10-08539e645801     |java.lang.NumberFormatException: **For input string: "WRONG"**\n\tat java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n\tat java.lang.Integer.parseInt(Integer.java:580)\n\tat java.lang.Integer.parseInt(Integer.java:615)\n\tat com.google.gson.JsonPrimitive.getAsInt(JsonPrimitive.java:264)\n\tat com.google.gson.internal.bind.JsonTreeReader.nextInt(JsonTreeReader.java:243)\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:226)\n\t... 20 common frames omitted\nWrapped by: com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: **For input string: "WRONG"**\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:228)\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:218)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.readInTimeoutMs(GsonAdaptersDmaapConsumerConfiguration.java:219)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.eachAttribute(GsonAdaptersDmaapConsumerConfiguration.java:138)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.readDmaapConsumerConfiguration(GsonAdaptersDmaapConsumerConfiguration.java:116)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.read(GsonAdaptersDmaapConsumerConfiguration.java:66)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.read(GsonAdaptersDmaapConsumerConfiguration.java:31)\n\tat com.google.gson.Gson.fromJson(Gson.java:927)\n\tat com.google.gson.Gson.fromJson(Gson.java:994)\n\tat com.google.gson.Gson.fromJson(Gson.java:967)\n\tat org.onap.dcaegen2.collectors.datafile.configuration.AppConfig.deserializeType(AppConfig.java:130)\n\tat org.onap.dcaegen2.collectors.datafile.configuration.AppConfig.loadConfigurationFromFile(AppConfig.java:96)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.executeDatafileMainTask(ScheduledTasks.java:91)\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |pool-3-thread-1     |
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:23:04.677Z     |ERROR     |Unexpected exception: java.lang.NullPointerException     |RequestID=215c39ed-d54e-44a2-9a10-08539e645801     |java.lang.NullPointerException: null\n\tat org.onap.dcaegen2.collectors.datafile.service.DmaapWebClient.fromConfiguration(DmaapWebClient.java:54)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DMaaPMessageConsumer.createHttpClient(DMaaPMessageConsumer.java:74)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DMaaPMessageConsumer.<init>(DMaaPMessageConsumer.java:48)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.createConsumerTask(ScheduledTasks.java:157)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.fetchMoreFileReadyMessages(ScheduledTasks.java:247)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.createMainTask(ScheduledTasks.java:108)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.executeDatafileMainTask(ScheduledTasks.java:92)\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |pool-3-thread-1     |
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+
+-Wrong consumer messageLimit:
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.configuration.AppConfig     |2019-04-24T15:27:40.433Z     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     |RequestID=69974429-d80a-4333-a16c-eae7588905a9     |java.lang.NumberFormatException: **For input string: "WRONG"**\n\tat java.lang.NumberFormatException.forInputString(NumberFormatException.java:65)\n\tat java.lang.Integer.parseInt(Integer.java:580)\n\tat java.lang.Integer.parseInt(Integer.java:615)\n\tat com.google.gson.JsonPrimitive.getAsInt(JsonPrimitive.java:264)\n\tat com.google.gson.internal.bind.JsonTreeReader.nextInt(JsonTreeReader.java:243)\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:226)\n\t... 20 common frames omitted\nWrapped by: com.google.gson.JsonSyntaxException: java.lang.NumberFormatException: **For input string: "WRONG"**\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:228)\n\tat com.google.gson.internal.bind.TypeAdapters$7.read(TypeAdapters.java:218)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.readInMessageLimit(GsonAdaptersDmaapConsumerConfiguration.java:225)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.eachAttribute(GsonAdaptersDmaapConsumerConfiguration.java:152)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.readDmaapConsumerConfiguration(GsonAdaptersDmaapConsumerConfiguration.java:116)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.read(GsonAdaptersDmaapConsumerConfiguration.java:66)\n\tat org.onap.dcaegen2.services.sdk.rest.services.dmaap.client.config.GsonAdaptersDmaapConsumerConfiguration$DmaapConsumerConfigurationTypeAdapter.read(GsonAdaptersDmaapConsumerConfiguration.java:31)\n\tat com.google.gson.Gson.fromJson(Gson.java:927)\n\tat com.google.gson.Gson.fromJson(Gson.java:994)\n\tat com.google.gson.Gson.fromJson(Gson.java:967)\n\tat org.onap.dcaegen2.collectors.datafile.configuration.AppConfig.deserializeType(AppConfig.java:130)\n\tat org.onap.dcaegen2.collectors.datafile.configuration.AppConfig.loadConfigurationFromFile(AppConfig.java:96)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.executeDatafileMainTask(ScheduledTasks.java:91)\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |pool-3-thread-1     |
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:27:40.436Z     |ERROR     |Unexpected exception: java.lang.NullPointerException     |RequestID=69974429-d80a-4333-a16c-eae7588905a9     |java.lang.NullPointerException: null\n\tat org.onap.dcaegen2.collectors.datafile.service.DmaapWebClient.fromConfiguration(DmaapWebClient.java:54)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DMaaPMessageConsumer.createHttpClient(DMaaPMessageConsumer.java:74)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DMaaPMessageConsumer.<init>(DMaaPMessageConsumer.java:48)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.createConsumerTask(ScheduledTasks.java:157)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.fetchMoreFileReadyMessages(ScheduledTasks.java:247)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.createMainTask(ScheduledTasks.java:108)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.executeDatafileMainTask(ScheduledTasks.java:92)\n\tat org.springframework.scheduling.support.DelegatingErrorHandlingRunnable.run(DelegatingErrorHandlingRunnable.java:54)\n\tat java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)\n\tat java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |pool-3-thread-1     |
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+    \...configuration.AppConfig     ...     |ERROR     |Problem with loading configuration, file: /opt/app/datafile/config/datafile_endpoints.json     ...     |java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ... java.lang.NumberFormatException: For input string: *"WRONG"*\n\tat ...
+    \...tasks.ScheduledTasks     ...     |ERROR     |Unexpected exception: java.lang.NullPointerException     ...
+
+-Wrong producer dmaapHostName:
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker     |2019-04-24T15:33:00.097Z     |WARN     |Unable to check if file has been published, file: A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.UnknownHostException: **WRONGlocalhost**: Try again\n\tat java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)\n\tat java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)\n\tat java.net.InetAddress.getAllByName0(InetAddress.java:1277)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1193)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1127)\n\tat org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:664)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:635)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:474)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:280)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:295)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:119)\n\t... 23 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.UnknownHostException: **WRONGlocalhost**: Try again\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:120)\n\t... 23 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:124)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker.isFilePublished(PublishedChecker.java:82)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.shouldBePublished(ScheduledTasks.java:194)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:93)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
+    org.onap.dcaegen2.collectors.datafile.ftp.FtpsClient     |2019-04-24T15:33:00.275Z     |WARN     |Local file /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz already created     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
+    org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher     |2019-04-24T15:33:00.429Z     |WARN     |Unable to send file to DataRouter. Data: /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.UnknownHostException: **WRONGlocalhost**\n\tat java.net.InetAddress.getAllByName0(InetAddress.java:1281)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1193)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1127)\n\tat org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:664)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:635)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:474)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:280)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:295)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:92)\n\t... 61 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.UnknownHostException: **WRONGlocalhost**\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:93)\n\t... 61 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:97)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher.publishFile(DataRouterPublisher.java:102)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)\n\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)\n\tat reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:89)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:145)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... Unable to create web client.\n\tat ...
+    org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher     |2019-04-24T15:33:18.558Z     |WARN     |Unable to send file to DataRouter. Data: /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.UnknownHostException: **WRONGlocalhost**: Try again\n\tat java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method)\n\tat java.net.InetAddress$2.lookupAllHostAddr(InetAddress.java:929)\n\tat java.net.InetAddress.getAddressesFromNameService(InetAddress.java:1324)\n\tat java.net.InetAddress.getAllByName0(InetAddress.java:1277)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1193)\n\tat java.net.InetAddress.getAllByName(InetAddress.java:1127)\n\tat org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java:45)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:664)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager$InternalAddressResolver.resolveRemoteAddress(PoolingNHttpClientConnectionManager.java:635)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.processPendingRequest(AbstractNIOConnPool.java:474)\n\tat org.apache.http.nio.pool.AbstractNIOConnPool.lease(AbstractNIOConnPool.java:280)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:295)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:92)\n\t... 20 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.UnknownHostException: **WRONGlocalhost**: Try again\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:93)\n\t... 20 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:97)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher.publishFile(DataRouterPublisher.java:102)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:457)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.resubscribe(FluxRetryWhen.java:183)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenOtherSubscriber.onNext(FluxRetryWhen.java:229)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)\n\tat reactor.core.publisher.MonoDelay$MonoDelayRunnable.run(MonoDelay.java:117)\n\tat reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:50)\n\tat reactor.core.scheduler.SchedulerTask.call(SchedulerTask.java:27)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |parallel-204     |
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... java.net.UnknownHostException: *WRONGlocalhost*\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.UnknownHostException: *WRONGlocalhost*: Try again\n\tat ... java.net.UnknownHostException: *WRONGlocalhost*: Try again\n\tat ... Unable to create web client.\n\tat ...
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:33:57.340Z     |ERROR     |File publishing failed: FilePublishInformation{productName=RnNode, vendorName=Ericsson, lastEpochMicrosec=8745745764578, sourceName=PNF0, startEpochMicrosec=8745745764578, timeZoneOffset=UTC+05.30, name=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, location=ftps://onap:pano@localhost:21/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, internalLocation=/tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, compression=gzip, fileFormatType=org.3GPP.32.435#measCollec, fileFormatVersion=V10, context={RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz}}     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |parallel-206     |
+
+-Wrong producer dmaapPortNumber:
+
+.. code-block:: json
+
+    org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker     |2019-04-24T15:38:24.806Z     |WARN     |Unable to check if file has been published, file: A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.ConnectException: Connection refused\n\tat sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)\n\tat sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)\n\tat org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:171)\n\tat org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:145)\n\tat org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:348)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)\n\t... 1 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:120)\n\t... 23 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:124)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker.isFilePublished(PublishedChecker.java:82)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.shouldBePublished(ScheduledTasks.java:194)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:93)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
+    org.onap.dcaegen2.collectors.datafile.ftp.FtpsClient     |2019-04-24T15:38:24.972Z     |WARN     |Local file /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz already created     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
+    org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher     |2019-04-24T15:38:25.146Z     |WARN     |Unable to send file to DataRouter. Data: /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |java.net.ConnectException: Connection refused\n\tat sun.nio.ch.SocketChannelImpl.checkConnect(Native Method)\n\tat sun.nio.ch.SocketChannelImpl.finishConnect(SocketChannelImpl.java:717)\n\tat org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvent(DefaultConnectingIOReactor.java:171)\n\tat org.apache.http.impl.nio.reactor.DefaultConnectingIOReactor.processEvents(DefaultConnectingIOReactor.java:145)\n\tat org.apache.http.impl.nio.reactor.AbstractMultiworkerIOReactor.execute(AbstractMultiworkerIOReactor.java:348)\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.execute(PoolingNHttpClientConnectionManager.java:221)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClientBase$1.run(CloseableHttpAsyncClientBase.java:64)\n\t... 1 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: java.net.ConnectException: Connection refused\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:93)\n\t... 61 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:97)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher.publishFile(DataRouterPublisher.java:102)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)\n\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)\n\tat reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:89)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:145)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |java.net.ConnectException: Connection refused\n\tat ... Connection refused\n\tat ... Unable to create web client.\n\tat ...
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:39:38.121Z     |ERROR     |File publishing failed: FilePublishInformation{productName=RnNode, vendorName=Ericsson, lastEpochMicrosec=8745745764578, sourceName=PNF0, startEpochMicrosec=8745745764578, timeZoneOffset=UTC+05.30, name=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, location=ftps://onap:pano@localhost:21/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, internalLocation=/tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, compression=gzip, fileFormatType=org.3GPP.32.435#measCollec, fileFormatVersion=V10, context={RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz}}     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |parallel-206     |
+
+-Producer dmaapTopicName:
 Not configurable.
 
-Wrong producer dmaapProtocol:
-org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker     |2019-04-24T15:47:45.906Z     |WARN     |Unable to check if file has been published, file: A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |org.apache.http.conn.UnsupportedSchemeException: **WRONGhttps** protocol is not supported\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:291)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:119)\n\t... 23 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: org.apache.http.conn.UnsupportedSchemeException: **WRONGhttps** protocol is not supported\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:120)\n\t... 23 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:124)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker.isFilePublished(PublishedChecker.java:82)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.shouldBePublished(ScheduledTasks.java:194)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:93)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
-org.onap.dcaegen2.collectors.datafile.ftp.FtpsClient     |2019-04-24T15:47:46.102Z     |WARN     |Local file /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz already created     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
-org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher     |2019-04-24T15:47:46.227Z     |WARN     |Unable to send file to DataRouter. Data: /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |org.apache.http.conn.UnsupportedSchemeException: **WRONGhttps** protocol is not supported\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:291)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:92)\n\t... 61 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: org.apache.http.conn.UnsupportedSchemeException: **WRONGhttps** protocol is not supported\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:93)\n\t... 61 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:97)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher.publishFile(DataRouterPublisher.java:102)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)\n\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)\n\tat reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:89)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:145)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
-\...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
-org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:48:42.406Z     |ERROR     |File publishing failed: FilePublishInformation{productName=RnNode, vendorName=Ericsson, lastEpochMicrosec=8745745764578, sourceName=PNF0, startEpochMicrosec=8745745764578, timeZoneOffset=UTC+05.30, name=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, location=ftps://onap:pano@localhost:21/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, internalLocation=/tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, compression=gzip, fileFormatType=org.3GPP.32.435#measCollec, fileFormatVersion=V10, context={RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz}}     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |parallel-206     |
+-Wrong producer dmaapProtocol:
 
-..Wrong producer dmaapUserName:
-..No issue with the simulator, to be checked in cloud40.
+.. code-block:: json
 
-..Wrong producer dmaapUserPassword:
-..No issue with the simulator, to be checked in cloud40.
+    org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker     |2019-04-24T15:47:45.906Z     |WARN     |Unable to check if file has been published, file: A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |org.apache.http.conn.UnsupportedSchemeException: **WRONGhttps** protocol is not supported\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:291)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:119)\n\t... 23 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: org.apache.http.conn.UnsupportedSchemeException: **WRONGhttps** protocol is not supported\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:120)\n\t... 23 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithCustomTimeout(DmaapProducerHttpClient.java:124)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.PublishedChecker.isFilePublished(PublishedChecker.java:82)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks.shouldBePublished(ScheduledTasks.java:194)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:93)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
+    org.onap.dcaegen2.collectors.datafile.ftp.FtpsClient     |2019-04-24T15:47:46.102Z     |WARN     |Local file /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz already created     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |FileCollectorWorker-2     |
+    org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher     |2019-04-24T15:47:46.227Z     |WARN     |Unable to send file to DataRouter. Data: /tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |org.apache.http.conn.UnsupportedSchemeException: **WRONGhttps** protocol is not supported\n\tat org.apache.http.impl.nio.conn.PoolingNHttpClientConnectionManager.requestConnection(PoolingNHttpClientConnectionManager.java:291)\n\tat org.apache.http.impl.nio.client.AbstractClientExchangeHandler.requestConnection(AbstractClientExchangeHandler.java:377)\n\tat org.apache.http.impl.nio.client.DefaultClientExchangeHandlerImpl.start(DefaultClientExchangeHandlerImpl.java:129)\n\tat org.apache.http.impl.nio.client.InternalHttpAsyncClient.execute(InternalHttpAsyncClient.java:141)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:75)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:108)\n\tat org.apache.http.impl.nio.client.CloseableHttpAsyncClient.execute(CloseableHttpAsyncClient.java:92)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:92)\n\t... 61 common frames omitted\nWrapped by: java.util.concurrent.ExecutionException: org.apache.http.conn.UnsupportedSchemeException: **WRONGhttps** protocol is not supported\n\tat org.apache.http.concurrent.BasicFuture.getResult(BasicFuture.java:71)\n\tat org.apache.http.concurrent.BasicFuture.get(BasicFuture.java:84)\n\tat org.apache.http.impl.nio.client.FutureWrapper.get(FutureWrapper.java:70)\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:93)\n\t... 61 common frames omitted\nWrapped by: org.onap.dcaegen2.collectors.datafile.exceptions.DatafileTaskException: Unable to create web client.\n\tat org.onap.dcaegen2.collectors.datafile.service.producer.DmaapProducerHttpClient.getDmaapProducerResponseWithRedirect(DmaapProducerHttpClient.java:97)\n\tat org.onap.dcaegen2.collectors.datafile.tasks.DataRouterPublisher.publishFile(DataRouterPublisher.java:102)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:118)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmit(FluxFlatMap.java:501)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onNext(FluxFlatMap.java:943)\n\tat reactor.core.publisher.FluxOnErrorResume$ResumeSubscriber.onNext(FluxOnErrorResume.java:73)\n\tat reactor.core.publisher.SerializedSubscriber.onNext(SerializedSubscriber.java:89)\n\tat reactor.core.publisher.FluxRetryWhen$RetryWhenMainSubscriber.onNext(FluxRetryWhen.java:145)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoFlatMap$FlatMapMain.onNext(MonoFlatMap.java:144)\n\tat reactor.core.publisher.Operators$MonoSubscriber.complete(Operators.java:1505)\n\tat reactor.core.publisher.MonoProcessor.onNext(MonoProcessor.java:389)\n\tat reactor.core.publisher.Operators$ScalarSubscription.request(Operators.java:2070)\n\tat reactor.core.publisher.MonoProcessor.onSubscribe(MonoProcessor.java:399)\n\tat reactor.core.publisher.MonoJust.subscribe(MonoJust.java:54)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.MonoProcessor.add(MonoProcessor.java:531)\n\tat reactor.core.publisher.MonoProcessor.subscribe(MonoProcessor.java:444)\n\tat reactor.core.publisher.MonoFlatMap.subscribe(MonoFlatMap.java:60)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxRetryWhen.subscribe(FluxRetryWhen.java:85)\n\tat reactor.core.publisher.MonoRetryWhen.subscribe(MonoRetryWhen.java:50)\n\tat reactor.core.publisher.MonoOnErrorResume.subscribe(MonoOnErrorResume.java:44)\n\tat reactor.core.publisher.Mono.subscribe(Mono.java:3695)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxFilter$FilterSubscriber.onNext(FluxFilter.java:107)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.tryEmitScalar(FluxFlatMap.java:449)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:384)\n\tat reactor.core.publisher.FluxPeek$PeekSubscriber.onNext(FluxPeek.java:192)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drainLoop(FluxFlatMap.java:664)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.drain(FluxFlatMap.java:540)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapInner.onSubscribe(FluxFlatMap.java:924)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:139)\n\tat reactor.core.publisher.FluxIterable.subscribe(FluxIterable.java:63)\n\tat reactor.core.publisher.Flux.subscribe(Flux.java:7743)\n\tat reactor.core.publisher.FluxFlatMap$FlatMapMain.onNext(FluxFlatMap.java:389)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.runAsync(FluxPublishOn.java:398)\n\tat reactor.core.publisher.FluxPublishOn$PublishOnSubscriber.run(FluxPublishOn.java:484)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:84)\n\tat reactor.core.scheduler.WorkerTask.call(WorkerTask.java:37)\n\tat java.util.concurrent.FutureTask.run(FutureTask.java:266)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$201(ScheduledThreadPoolExecutor.java:180)\n\tat java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:293)\n\tat java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)\n\tat java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)\n\tat java.lang.Thread.run(Thread.java:748)\n     |     |FileCollectorWorker-2     |
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
+    \...tasks.DataRouterPublisher     ...     |WARN     |Unable to send file to DataRouter. Data: ...     |org.apache.http.conn.UnsupportedSchemeException: *WRONGhttps* protocol is not supported\n\tat ... *WRONGhttps* protocol is not supported\n\tat ... Unable to create web client.\n\tat ...
+    org.onap.dcaegen2.collectors.datafile.tasks.ScheduledTasks     |2019-04-24T15:48:42.406Z     |ERROR     |File publishing failed: FilePublishInformation{productName=RnNode, vendorName=Ericsson, lastEpochMicrosec=8745745764578, sourceName=PNF0, startEpochMicrosec=8745745764578, timeZoneOffset=UTC+05.30, name=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, location=ftps://onap:pano@localhost:21/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, internalLocation=/tmp/onap_datafile/A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz, compression=gzip, fileFormatType=org.3GPP.32.435#measCollec, fileFormatVersion=V10, context={RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz}}     |RequestID=A20000626.2315+0200-2330+0200_PNF0-0-1MB.tar.gz     |     |     |parallel-206     |
 
-Producer dmaapContentType:
+.. Wrong producer dmaapUserName:
+.. No issue with the simulator, to be checked in cloud40.
+
+.. Wrong producer dmaapUserPassword:
+.. No issue with the simulator, to be checked in cloud40.
+
+-Producer dmaapContentType:
 Not configurable.
 
-Security parameters:
-Not in use.
\ No newline at end of file
+-Security parameters:
+Not in use.
