Ok, great. We like to turn off some of this Jackson magic as most of the
time you don't really want to expose all fields/getter (unless you have a
very strict DTO)

-- 
Morten Olav Hansen
Senior Engineer, DHIS 2
University of Oslo
http://www.dhis2.org

On Thu, Jun 16, 2016 at 7:31 PM, Anilkumar Kodi <anilk...@thoughtworks.com>
wrote:

> Hi Morten,
>
> We identified the problem and found solution as below.
>
> *Solution :*
> As you implemented disabling GETTERS and SETTERS in <JacksonEventService>
> for deserializing, the same way we need to disable while serializing as
> well.
>
> Thank you so much for your help
>
>
> Regards,
> Anil
>
> On Thu, Jun 16, 2016 at 5:24 PM, Anilkumar Kodi <anilk...@thoughtworks.com
> > wrote:
>
>> Sorry Morten,  executeAnonymousEventPush which we build for pushing
>> anonymous event data, When we are getting events(which does not have valid
>> and coordinateString field ) and when we are passing that to <ObjectMapper>
>> to write to request, at the time this payload was building.
>>
>>
>> Any idea why are we getting those field when we  writeValue using
>> ObjectMapper
>>
>>
>> Here is the code:
>>
>> Events result = eventService.getEventValuesLastUpdatedAfter( lastSuccessTime 
>> );
>> ObjectMapper mapper = new ObjectMapper();
>> mapper.writeValue( request.getBody(), result );
>>
>>
>> OutPut
>>
>> result = Events{program='null', programInstance='null', 
>> events=[Event{event='p6lrkXRw14W', status=ACTIVE, program='YJ4AHPlFTrf', 
>> programStage='UpHRvs3KcyL', orgUnit='y2mjbcN29en', 
>> trackedEntityInstance='null', eventDate='2016-06-15T18:30:00.000+0000', 
>> dueDate='null', storedBy='null', 
>> coordinate=Coordinate{latitude=14.093957177836236, 
>> longitude=46.175537109375}, dataValues=[DataValue{value='12345', 
>> dataElement='YKz99vMMKpg', providedElsewhere=false, storedBy='Srikanth'}], 
>> attributeCategoryOptions=xYerKDKCefk, completedBy=null, completedDate=null}]}
>>
>> After we are mapping we are getting previous payload
>>
>>
>>
>>
>> On Thu, Jun 16, 2016 at 4:32 PM, Anilkumar Kodi <
>> anilk...@thoughtworks.com> wrote:
>>
>>> It got added when we are serializing and sending request in the
>>> executeAnonymousEventPush.
>>>
>>> On Thu, Jun 16, 2016 at 3:34 PM, Morten Olav Hansen <mor...@dhis2.org>
>>> wrote:
>>>
>>>> Right, but I don't see why you have valid in the payload to start with?
>>>> normal event export will not include this
>>>>
>>>> --
>>>> Morten Olav Hansen
>>>> Senior Engineer, DHIS 2
>>>> University of Oslo
>>>> http://www.dhis2.org
>>>>
>>>> On Thu, Jun 16, 2016 at 4:52 PM, Anilkumar Kodi <
>>>> anilk...@thoughtworks.com> wrote:
>>>>
>>>>> Hi Morten
>>>>>
>>>>> This is related to the coordinate value itself.
>>>>> Please see this event payload thats getting posted to /api/events
>>>>> (POST).
>>>>>
>>>>>
>>>>> {"program":null,"programInstance":null,"events":[{"event":"tiqYSyQER6a","status":"ACTIVE","program":"MR7cTxF25lM","programStage":"f8hc3X0zYQ7","enrollment":null,"enrollmentStatus":null,"orgUnit":"y2mjbcN29en","orgUnitName":null,"trackedEntityInstance":null,"eventDate":"2016-06-15T18:30:00.000+0000","dueDate":null,"storedBy":null,"coordinate":{"latitude":16.867633616803847,"longitude":50.28167724609375,"valid":true,"coordinateString":"[50.28167724609375,16.867633616803847]"},"dataValues":[{"created":"2016-06-16T06:11:29.707+0000","lastUpdated":"2016-06-16T06:11:29.707+0000","value":"123456789","dataElement":"YKz99vMMKpg","providedElsewhere":false,"storedBy":"admin"}],"notes":[],"followup":null,"created":null,"lastUpdated":null,"attributeCategoryOptions":"xYerKDKCefk","completedBy":null,"completedDate":null,"href":null}],"metaData":null,"pager":null}
>>>>>
>>>>> *And the underlying exception is this:*
>>>>>
>>>>> com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
>>>>> Unrecognized field "valid" (class
>>>>> org.hisp.dhis.dxf2.events.event.Coordinate), not marked as ignorable (2
>>>>> known properties: "latitude", "longitude"])
>>>>>  at [Source:
>>>>> {"program":null,"programInstance":null,"events":[{"event":"tiqYSyQER6a","status":"ACTIVE","program":"MR7cTxF25lM","programStage":"f8hc3X0zYQ7","enrollment":null,"enrollmentStatus":null,"orgUnit":"y2mjbcN29en","orgUnitName":null,"trackedEntityInstance":null,"eventDate":"2016-06-15T18:30:00.000+0000","dueDate":null,"storedBy":null,"coordinate":{"latitude":16.867633616803847,"longitude":50.28167724609375,"valid":true,"coordinateString":"[50.28167724609375,16.867633616803847]"},"dataValues":[{"created":"2016-06-16T06:11:29.707+0000","lastUpdated":"2016-06-16T06:11:29.707+0000","value":"123456789","dataElement":"YKz99vMMKpg","providedElsewhere":false,"storedBy":"admin"}],"notes":[],"followup":null,"created":null,"lastUpdated":null,"attributeCategoryOptions":"xYerKDKCefk","completedBy":null,"completedDate":null,"href":null}],"metaData":null,"pager":null}
>>>>> ; line: 1, column: 418] (through reference chain:
>>>>> org.hisp.dhis.dxf2.events.event.Events["events"]->java.util.ArrayList[0]->org.hisp.dhis.dxf2.events.event.Event["coordinate"]->org.hisp.dhis.dxf2.events.event.Coordinate["valid"])
>>>>>
>>>>> Please let us know what you think.
>>>>>
>>>>> Regards
>>>>> Anil
>>>>>
>>>>> On Thu, Jun 16, 2016 at 7:30 AM, Morten Olav Hansen <mor...@dhis2.org>
>>>>> wrote:
>>>>>
>>>>>> Hi
>>>>>>
>>>>>> Could you show me the payload you are sending? this API is in use by
>>>>>> several clients without any issues.
>>>>>>
>>>>>> Also, it says `Unrecognized field "programInstance"` are you sure
>>>>>> this is really related to `@JsonIgnore` on the `Coordinate` class?
>>>>>>
>>>>>> It would be easier to debug if you can share the event you are
>>>>>> sending.
>>>>>>
>>>>>> --
>>>>>> Morten Olav Hansen
>>>>>> Senior Engineer, DHIS 2
>>>>>> University of Oslo
>>>>>> http://www.dhis2.org
>>>>>>
>>>>>> On Wed, Jun 15, 2016 at 7:46 PM, Anilkumar Kodi <
>>>>>> anilk...@thoughtworks.com> wrote:
>>>>>>
>>>>>>> Hi Morten,
>>>>>>>
>>>>>>> This is still looking for other 2 properties to map while
>>>>>>> deserializing, we are getting exception like
>>>>>>>
>>>>>>> com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException:
>>>>>>> Unrecognized field "programInstance" (class
>>>>>>> org.hisp.dhis.dxf2.events.event.Event), not marked as ignorable (22 
>>>>>>> known
>>>>>>> properties: "notes", "trackedEntityInstance", "program", "lastUpdated",
>>>>>>> "orgUnit", "href", "dataValues", "status", "orgUnitName",
>>>>>>> "enrollmentStatus", "coordinate", "completedDate", "event", "dueDate",
>>>>>>> "enrollment", "eventDate", "followup", "programStage", "storedBy",
>>>>>>> "created", "attributeCategoryOptions", "completedBy"])
>>>>>>>  at [Source:
>>>>>>> {"program":null,"programInstance":null,"events":[{"event":"EcHeh9roBlf","status":"ACTIVE","program":"KKZTIFe5sf5","programStage":"lQgBMyAgzae","enrollment":null,"enrollmentStatus":null,"orgUnit":"fxXno3Zm20F","orgUnitName":null,"trackedEntityInstance":null,"eventDate":"2016-06-06T18:30:00.000+0000","dueDate":null,"storedBy":null,"coordinate":{"latitude":11.587669416896203,"longitude":41.66839599609375,"valid":true,"coordinateString":"[41.66839599609375,11.587669416896203]"},"dataValues":[{"created":"2016-06-14T07:21:30.781+0000","lastUpdated":"2016-06-14T07:21:30.782+0000","value":"7","dataElement":"gKGoK7Vb2yK","providedElsewhere":false,"storedBy":"Anil"}],"notes":[],"followup":null,"created":null,"lastUpdated":null,"attributeCategoryOptions":"xYerKDKCefk","completedBy":null,"completedDate":null,"href":null}],"metaData":null,"pager":null};
>>>>>>> line: 1, column: 39] (through reference chain:
>>>>>>> org.hisp.dhis.dxf2.events.event.Event["programInstance"])
>>>>>>> at
>>>>>>> com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException.from(UnrecognizedPropertyException.java:51)
>>>>>>>
>>>>>>>
>>>>>>> Although, we see this working when we add  @JsonIgnore on getters.
>>>>>>>
>>>>>>> @JsonIgnore
>>>>>>> public boolean isValid()
>>>>>>>
>>>>>>> @JsonIgnore
>>>>>>>
>>>>>>> public String getCoordinateString()
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> Thanks,
>>>>>>>
>>>>>>> Anil
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Wed, Jun 15, 2016 at 10:48 AM, Morten Olav Hansen <
>>>>>>> mor...@dhis2.org> wrote:
>>>>>>>
>>>>>>>> Already done :)
>>>>>>>>
>>>>>>>> --
>>>>>>>> Morten Olav Hansen
>>>>>>>> Senior Engineer, DHIS 2
>>>>>>>> University of Oslo
>>>>>>>> http://www.dhis2.org
>>>>>>>>
>>>>>>>> On Wed, Jun 15, 2016 at 11:50 AM, Vanya Seth <
>>>>>>>> van...@thoughtworks.com> wrote:
>>>>>>>>
>>>>>>>>> Hi Morten
>>>>>>>>>
>>>>>>>>> That would be great. Please let us know when you commit the
>>>>>>>>> changes. We ll take a merge from the trunk.
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>> Vanya
>>>>>>>>>
>>>>>>>>> On Wed, Jun 15, 2016 at 9:01 AM, Morten Olav Hansen <
>>>>>>>>> mor...@dhis2.org> wrote:
>>>>>>>>>
>>>>>>>>>> Hi
>>>>>>>>>>
>>>>>>>>>> We usually turn off most of that Jackson auto discovery magic, I
>>>>>>>>>> see we haven't done that properly in Jackson*<tracker object 
>>>>>>>>>> classes>, I
>>>>>>>>>> will add that now (so it follows JacksonUtils, RenderService etc)
>>>>>>>>>>
>>>>>>>>>> --
>>>>>>>>>> Morten Olav Hansen
>>>>>>>>>> Senior Engineer, DHIS 2
>>>>>>>>>> University of Oslo
>>>>>>>>>> http://www.dhis2.org
>>>>>>>>>>
>>>>>>>>>> On Tue, Jun 14, 2016 at 8:41 PM, Anilkumar Kodi <
>>>>>>>>>> anilk...@thoughtworks.com> wrote:
>>>>>>>>>>
>>>>>>>>>>> Hi Morten,
>>>>>>>>>>>
>>>>>>>>>>> We are doing Anonymous Event data push. As part of that we are
>>>>>>>>>>> also sending coordinates.
>>>>>>>>>>>
>>>>>>>>>>> Coordinate object has 4 public properties which are listed below
>>>>>>>>>>>
>>>>>>>>>>> @JsonProperty( required = true )
>>>>>>>>>>> @JacksonXmlProperty( isAttribute = true )
>>>>>>>>>>> public Double getLatitude()
>>>>>>>>>>>
>>>>>>>>>>> @JsonProperty( required = true )
>>>>>>>>>>> @JacksonXmlProperty( isAttribute = true )
>>>>>>>>>>> public Double getLongitude()
>>>>>>>>>>>
>>>>>>>>>>> public boolean isValid()
>>>>>>>>>>>
>>>>>>>>>>> public String getCoordinateString()
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> We don't have @JsonIgnore/@JsonProperty on the Other 2 properties.
>>>>>>>>>>>
>>>>>>>>>>> Because of this we are getting Error while Deserializing.
>>>>>>>>>>>
>>>>>>>>>>> Moreover, the JSON Mapper for the class <JacksonEventService>  has 
>>>>>>>>>>> configuration FAIL_ON_UNKNOWN_PROPERTIES  set to *true*
>>>>>>>>>>>
>>>>>>>>>>> We have fixed this by adding @JsonIgnore on those properties.
>>>>>>>>>>>
>>>>>>>>>>> We Would like to know if you see any downstream issues with this 
>>>>>>>>>>> minor change.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>>
>>>>>>>>>>> Anil Kumar & Srikanth
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> _______________________________________________
>>>>>>>>>> Mailing list: https://launchpad.net/~dhis2-devs
>>>>>>>>>> Post to     : dhis2-devs@lists.launchpad.net
>>>>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs
>>>>>>>>>> More help   : https://help.launchpad.net/ListHelp
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> --
>>>>>>>>> With Regards
>>>>>>>>> ThoughtWorks Technologies
>>>>>>>>> Hyderabad
>>>>>>>>>
>>>>>>>>> --Stay Hungry Stay Foolish!!
>>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>
>>>>>>
>>>>>
>>>>
>>>
>>
>
_______________________________________________
Mailing list: https://launchpad.net/~dhis2-devs
Post to     : dhis2-devs@lists.launchpad.net
Unsubscribe : https://launchpad.net/~dhis2-devs
More help   : https://help.launchpad.net/ListHelp

Reply via email to