[ 
https://issues.apache.org/jira/browse/NIFI-8026?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17417542#comment-17417542
 ] 

Ganesh commented on NIFI-8026:
------------------------------

Facing same issue while migrating from RDBMS to MongoDB. Do we have solution or 
work around for this issue until we get a fix? Any tentative timeline for the 
fix?

> PutMongoRecord cannot handle deeply nested JSON documents.
> ----------------------------------------------------------
>
>                 Key: NIFI-8026
>                 URL: https://issues.apache.org/jira/browse/NIFI-8026
>             Project: Apache NiFi
>          Issue Type: Bug
>          Components: Core Framework
>    Affects Versions: 1.12.1
>            Reporter: Rostislav Nedelchev
>            Priority: Major
>         Attachments: nested_json.json
>
>
> I am running Apache Nifi 1.12.1 to import data from S3 to MongoDB.
> Unfortunately, the PutMongoRecord with JsonTreeReader cannot handle nested 
> JSONs.  I have used the GenerateFlowFile Processor to isolate one such 
> example ( [^nested_json.json] ) .
> {code:java}
> // org.apache.nifi.serialization.record.util.IllegalTypeConversionException: 
> Cannot convert value 
> [MapRecord[{geoKoordinate=MapRecord[{breitengrad=MapRecord[{rawValue=53.523275}],
>  laengengrad=MapRecord[{rawValue=9.914175}]}], 
> gueltigkeit=MapRecord[{von=2018-12-03T00:00Z}], 
> planungsknoten=MapRecord[{geoKoordinate=MapRecord[{breitengrad=MapRecord[{rawValue=53.523275}],
>  laengengrad=MapRecord[{rawValue=9.914175}]}], 
> ortsangabeReferenz=MapRecord[{objektSchluessel=MapRecord[{sequence=1, 
> alpha=HAMBURG-WALTERSH DRA}], 
> techKey=MapRecord[{rawValue=800000000008925481}]}], 
> gueltigkeit=MapRecord[{von=2018-06-27T00:00Z}], 
> objektSchluessel=MapRecord[{sequence=1, alpha=HAMBURG-WALTERSHOF}], 
> techKey=MapRecord[{rawValue=800000000007210910}], 
> produktionsCode=MapRecord[{bahnverwaltungsnummer=80, 
> netzbahnstellennummer=010819}], bsReferenzen=[Ljava.lang.Object;@bdd9995, 
> name=MapRecord[{rawValue=Hamburg-Waltershof}], 
> rlCode=MapRecord[{rawValue=AWHOD}], 
> version=MapRecord[{gespeicherteInterneVersion=-1, externeVersion=1530090460, 
> interneVersion=0, gespeicherteExterneVersion=-1}]}], 
> mitbedienteGwps=[Ljava.lang.Object;@1b29f43b, 
> objektSchluessel=MapRecord[{sequence=2, alpha=AWHO CTB ohne Zoll}], 
> techKey=MapRecord[{rawValue=800000000007703732}], 
> produktionsCode=MapRecord[{bahnverwaltungsnummer=80, gwpNummer=1010, 
> netzbahnstellennummer=010819}], name=MapRecord[{rawValue=AWHO CTB 
> Container}], rlCode=MapRecord[{rawValue=AWHOD}], 
> version=MapRecord[{gespeicherteInterneVersion=-1, externeVersion=1543829665, 
> interneVersion=0, gespeicherteExterneVersion=-1}]}]] of type CHOICE[RECORD, 
> RECORD] to Map for field meldungsOrt because the type is not supported
>       at 
> org.apache.nifi.serialization.record.util.DataTypeUtils.convertRecordFieldtoObject(DataTypeUtils.java:821)
>       at 
> org.apache.nifi.serialization.record.util.DataTypeUtils.convertRecordArrayToJavaArray(DataTypeUtils.java:860)
>       at 
> org.apache.nifi.serialization.record.util.DataTypeUtils.convertRecordFieldtoObject(DataTypeUtils.java:819)
>       at 
> org.apache.nifi.serialization.record.util.DataTypeUtils.convertRecordFieldtoObject(DataTypeUtils.java:814)
>       at 
> org.apache.nifi.processors.mongodb.PutMongoRecord.onTrigger(PutMongoRecord.java:133)
>       at 
> org.apache.nifi.processor.AbstractProcessor.onTrigger(AbstractProcessor.java:27)
>       at 
> org.apache.nifi.controller.StandardProcessorNode.onTrigger(StandardProcessorNode.java:1174)
>       at 
> org.apache.nifi.controller.tasks.ConnectableTask.invoke(ConnectableTask.java:213)
>       at 
> org.apache.nifi.controller.scheduling.TimerDrivenSchedulingAgent$1.run(TimerDrivenSchedulingAgent.java:117)
>       at org.apache.nifi.engine.FlowEngine$2.run(FlowEngine.java:110)
>       at 
> java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511)
>       at java.util.concurrent.FutureTask.runAndReset(FutureTask.java:308)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.access$301(ScheduledThreadPoolExecutor.java:180)
>       at 
> java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:294)
>       at 
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
>       at 
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
>       at java.lang.Thread.run(Thread.java:748)
> {code}



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to