So, I am trying to use Model Use Reflection with Audit Trail. Like, I added a Log attribute(Boolean) inside MxObjectMember and if user select this attribute only then audit trail will create for that particular attribute inside that Object else no need to create log. I am using below code for same. Here, I am retrieving MxObjectType->Then Its MxObject Members and after this I am trying to create a list of Members who has having "log =True " and then audit trail will work as its. Error:- I am not able to add members inside new list.(Highlighted as Bold below) Below code:- try { String a =inputObject.getType().toString(); List<IMendixObject> mxobj1list1= Core.retrieveXPathQueryEscaped(sudoContext,"//%s[%s='%s']","MxModelReflection.MxObjectType","CompleteName",a); IMendixObject mxobj = mxobj1list1.get(0); //List<IMendixObject> mxobj1list12= Core.retrieveXPathQueryEscaped(sudoContext,"//%s[%s=%s]","MxModelReflection.MxObjectMember","MxModelReflection.MxObjectMember_MxObjectType",String.valueOf(mxobj.getId().toLong())); List<IMendixObject> mxobj1list12= Core.retrieveXPathQueryEscaped(sudoContext,"//%s[%s=%s][%s='%s']","MxModelReflection.MxObjectMember","MxModelReflection.MxObjectMember_MxObjectType",String.valueOf(mxobj.getId().toLong()),"Log","True"); //System.out.println("mxobj1list1---"+mxobj1list12); //System.out.println("mxobj1list1---"+mxobj1list1); Collection<? extends IMendixObjectMember<?>> members2 =inputObject.getMembers(sudoContext).values(); //List<IMendixObjectMember> logLineList1= new ArrayList<IMendixObjectMember> (inputObject.getMembers(sudoContext).values()); Collection<? extends IMendixObjectMember<?>> members = inputObject.getMembers(sudoContext).values(); List<IMendixObject> logLineList = new ArrayList<IMendixObject>(members2.size()); IMendixObject line; for (IMendixObjectMember<?> member : members) { String abc = member.getName(); for (int i = 0; i <=mxobj1list12.size(); i++) { IMendixObject mxobj1 = mxobj1list12.get(i); String abc1=mxobj1.getValue(sudoContext,"AttributeName"); //mxobj1list12.get(i); //IMendixObject obj1 = (IMendixObject) mxobj1list12.get(i); if (abc1.toString().equalsIgnoreCase(member.getName())) { members2.add((IMendixObjectMember)member.getValue(sudoContext)); members2.add(member.getValue(sudoContext)); } }