← Back to team overview

dhis2-devs team mailing list archive

Re: TrackedEntityInstance update

 

I was looking at the stack trace, and the code it points to, is checking
the option.code against the value you are sending in.. but it seems maybe
some of your options don't have code? which is required

--
Morten

On Fri, Jun 19, 2015 at 11:28 AM, Alan Hill <ahill@xxxxxxxxxx> wrote:

> Hi again Morten...sorry, can you clarify, where do you see that?
>
> Thanks
>
> Alan
>
>
>
> On Thu, Jun 18, 2015 at 6:56 PM, Morten Olav Hansen <mortenoh@xxxxxxxxx>
> wrote:
>
>> Hi Alan
>>
>> Seems like you have an invalid optionset, i..e an optionset without code?
>>
>> --
>> Morten
>>
>> On Fri, Jun 19, 2015 at 7:47 AM, Alan Hill <ahill@xxxxxxxxxx> wrote:
>>
>>> Hi there
>>>
>>> *Version 2.20-SNAPSHOT, Build #19453*
>>>
>>> Trying to update a TrackedEntityInstance but this is failing for
>>> attributes that have an optionSet assigned.
>>>
>>> I've stripped my JSON update down to a single attribute.
>>>
>>>
>>> *API call:*
>>>
>>> PUT http://localhost:8000/api/trackedEntityInstances/gGCuCUO5Iu0
>>>
>>>
>>> *JSON: Here's the json I'm sending for the update:*
>>>
>>> {
>>>   "trackedEntity":"An3UR3eaTTa",
>>>   "orgUnit":"FEGZA6BEAjj",
>>>   "attributes":[
>>> {"attribute":"kxvbQMX8Yss","value":"3"}
>>>   ]
>>> }
>>>
>>>
>>> *Here's the TrackedEntityAttribute:*
>>>
>>> {
>>>
>>>    - id: "kxvbQMX8Yss",
>>>    - created: "2015-06-18T22:27:51.242+0000",
>>>    - name: "DHS 2010 - sample domain",
>>>    - href: "
>>>    http://localhost:8000/api/trackedEntityAttributes/kxvbQMX8Yss";,
>>>    - lastUpdated: "2015-06-18T22:27:51.286+0000",
>>>    - code: "DHS 2010 - v023",
>>>    - shortName: "DHS 2010 - sample domain",
>>>    - displayDescription: "sample domain",
>>>    - unique: false,
>>>    - programScope: false,
>>>    - displayInListNoProgram: false,
>>>    - orgunitScope: false,
>>>    - displayOnVisitSchedule: false,
>>>    - dataDimension: true,
>>>    - description: "sample domain",
>>>    - externalAccess: false,
>>>    - valueType: "optionSet",
>>>    - confidential: false,
>>>    - publicAccess: "rw------",
>>>    - allItems: false,
>>>    - inherit: false,
>>>    - dimension: "kxvbQMX8Yss",
>>>    - optionSetValue: true,
>>>    - displayName: "DHS 2010 - sample domain",
>>>    - displayShortName: "DHS 2010 - sample domain",
>>>    - optionSet:
>>>    {
>>>       - id: "CnFzpGPWbJg",
>>>       - name: "DHS 2010 - sample domain",
>>>       - code: "DHS 2010 - v023",
>>>       - created: "2015-06-18T22:27:51.101+0000",
>>>       - lastUpdated: "2015-06-18T23:51:10.981+0000",
>>>       - href: "http://localhost:8000/api/optionSets/CnFzpGPWbJg";
>>>       },
>>>    - access:
>>>    {
>>>       - update: true,
>>>       - externalize: false,
>>>       - write: true,
>>>       - delete: true,
>>>       - read: true,
>>>       - manage: true
>>>       },
>>>    - user:
>>>    {
>>>       - id: "M4XhsWJlIhk",
>>>       - name: "admin admin",
>>>       - created: "2015-06-18T15:26:06.062+0000",
>>>       - lastUpdated: "2015-06-18T16:07:29.473+0000",
>>>       - href: "http://localhost:8000/api/users/M4XhsWJlIhk";
>>>       },
>>>    - attributeValues: [ ],
>>>    - items: [ ],
>>>    - userGroupAccesses: [ ]
>>>
>>> }
>>>
>>> *Here's the OptionSet:*
>>>
>>> {
>>>
>>>    - lastUpdated: "2015-06-18T23:51:10.981+0000",
>>>    - code: "DHS 2010 - v023",
>>>    - id: "CnFzpGPWbJg",
>>>    - created: "2015-06-18T22:27:51.101+0000",
>>>    - name: "DHS 2010 - sample domain",
>>>    - href: "http://localhost:8000/api/optionSets/CnFzpGPWbJg";,
>>>    - publicAccess: "rw------",
>>>    - version: 0,
>>>    - externalAccess: false,
>>>    - displayName: "DHS 2010 - sample domain",
>>>    - access:
>>>    {
>>>       - update: true,
>>>       - externalize: false,
>>>       - write: true,
>>>       - delete: true,
>>>       - read: true,
>>>       - manage: true
>>>       },
>>>    - user:
>>>    {
>>>       - id: "M4XhsWJlIhk",
>>>       - name: "admin admin",
>>>       - created: "2015-06-18T15:26:06.062+0000",
>>>       - lastUpdated: "2015-06-18T16:07:29.473+0000",
>>>       - href: "http://localhost:8000/api/users/M4XhsWJlIhk";
>>>       },
>>>    - userGroupAccesses: [ ],
>>>    - options:
>>>    [
>>>       -
>>>       {
>>>          - id: "Fnkf3CXYjtU",
>>>          - name: "northern",
>>>          - code: "1",
>>>          - created: "2015-06-18T22:27:50.583+0000",
>>>          - lastUpdated: "2015-06-18T23:51:10.554+0000",
>>>          - href: "http://localhost:8000/api/options/Fnkf3CXYjtU";
>>>          },
>>>       -
>>>       {
>>>          - id: "p6xLuMAZ6Kx",
>>>          - name: "central",
>>>          - code: "2",
>>>          - created: "2015-06-18T22:27:50.720+0000",
>>>          - lastUpdated: "2015-06-18T23:51:10.675+0000",
>>>          - href: "http://localhost:8000/api/options/p6xLuMAZ6Kx";
>>>          },
>>>       -
>>>       {
>>>          - id: "XJa5QiUzKgb",
>>>          - name: "southern",
>>>          - code: "3",
>>>          - created: "2015-06-18T22:27:50.910+0000",
>>>          - lastUpdated: "2015-06-18T23:51:10.803+0000",
>>>          - href: "http://localhost:8000/api/options/XJa5QiUzKgb";
>>>          }
>>>       ]
>>>
>>> }
>>>
>>> However, this fails and I see an exception in tomcat logs:
>>>
>>> SEVERE: Servlet.service() for servlet [webapi] in context with path []
>>> threw exception [Request processing failed; nested exception is
>>> java.lang.NullPointerException] with root cause
>>> java.lang.NullPointerException
>>>         at
>>> org.hisp.dhis.trackedentity.TrackedEntityAttribute.isValidOptionValue(TrackedEntityAttribute.java:162)
>>>         at
>>> org.hisp.dhis.dxf2.events.trackedentity.AbstractTrackedEntityInstanceService.validateAttributeType(AbstractTrackedEntityInstanceService.java:582)
>>>         at
>>> org.hisp.dhis.dxf2.events.trackedentity.AbstractTrackedEntityInstanceService.checkAttributes(AbstractTrackedEntityInstanceService.java:404)
>>>         at
>>> org.hisp.dhis.dxf2.events.trackedentity.AbstractTrackedEntityInstanceService.updateTrackedEntityInstance(AbstractTrackedEntityInstanceService.java:293)
>>>         at
>>> org.hisp.dhis.dxf2.events.trackedentity.JacksonTrackedEntityInstanceService.updateTrackedEntityInstanceJson(JacksonTrackedEntityInstanceService.java:198)
>>>         at sun.reflect.GeneratedMethodAccessor895.invoke(Unknown Source)
>>>         at
>>> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
>>>         at java.lang.reflect.Method.invoke(Method.java:606)
>>>         at
>>> org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:317)
>>>         ...
>>>
>>>
>>> Any advice greatly appreciated.
>>>
>>> Thanks
>>>
>>> Alan
>>>
>>>
>>> _______________________________________________
>>> Mailing list: https://launchpad.net/~dhis2-devs
>>> Post to     : dhis2-devs@xxxxxxxxxxxxxxxxxxx
>>> Unsubscribe : https://launchpad.net/~dhis2-devs
>>> More help   : https://help.launchpad.net/ListHelp
>>>
>>>
>>
>

Follow ups

References