Hi I was not able to reproduce this locally. I created a simple TE with two TEAs (name, gender), and I was able to both create and update these without any issues. If I changed the gender to be an invalid gender, it would complain back with invalid option for optionset.
I think this is still related to your optionSet, could you please try and create a new one through the UI, and a few options, and see if that works? -- Morten On Fri, Jun 19, 2015 at 12:24 PM, Morten Olav Hansen <[email protected]> wrote: > Hm, ok. I will need to look more into this then, from the stack trace is > seems related to invalid code. I will try it out here locally and see if I > an reproduce. > > -- > Morten > > On Fri, Jun 19, 2015 at 11:59 AM, Alan Hill <[email protected]> wrote: > >> Hi again and thanks so much for getting back to me so quickly. >> >> I'm pretty confident that all of my options have codes as per the option >> set JSON: >> >> >> - 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" >> } >> ] >> >> >> The value I'm setting is "3" which there is definitely an option for. >> >> Cheers >> >> Alan >> >> >> On Thu, Jun 18, 2015 at 9:44 PM, Morten Olav Hansen <[email protected]> >> wrote: >> >>> 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 <[email protected]> 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 <[email protected] >>>> > 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 <[email protected]> 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 : [email protected] >>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>>> More help : https://help.launchpad.net/ListHelp >>>>>> >>>>>> >>>>> >>>> >>> >> >
_______________________________________________ Mailing list: https://launchpad.net/~dhis2-devs Post to : [email protected] Unsubscribe : https://launchpad.net/~dhis2-devs More help : https://help.launchpad.net/ListHelp

