Hi Alan, while perhaps not fixing the real problem, I have fixed a nullpointer vulnerability in that method now in trunk.
Lars On Fri, Jun 19, 2015 at 8:36 AM, Alan Hill <ah...@2paths.com> wrote: > OK...will do. > > Thanks > > Alan > > On Thu, Jun 18, 2015 at 11:34 PM, Morten Olav Hansen <morte...@gmail.com> > wrote: > >> 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 <morte...@gmail.com> >> 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 <ah...@2paths.com> 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 <morte...@gmail.com >>>> > 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 <ah...@2paths.com> 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 < >>>>>> morte...@gmail.com> 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 <ah...@2paths.com> 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@lists.launchpad.net >>>>>>>> Unsubscribe : https://launchpad.net/~dhis2-devs >>>>>>>> More help : https://help.launchpad.net/ListHelp >>>>>>>> >>>>>>>> >>>>>>> >>>>>> >>>>> >>>> >>> >> > > _______________________________________________ > 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 > > -- Lars Helge Øverland Lead developer, DHIS 2 University of Oslo Skype: larshelgeoverland http://www.dhis2.org <https://www.dhis2.org>
_______________________________________________ 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