Jazz Forum Welcome to the Jazz Community Forum Connect and collaborate with IBM Engineering experts and users

AssertionFailedException problem with getting the values of attributes

I have a problem with getting the values of attributes ​​(built in and custom).

I use this code to get the built-in attributes and their values.

List<IAttributeHandle> builtInAttributeHandles = service.findBuiltInAttributes(projectArea, monitor);
IFetchResult builtIn = repository.itemManager().fetchCompleteItemsPermissionAware(builtInAttributeHandles,IItemManager.REFRESH, monitor);
for (Iterator it = builtIn.getRetrievedItems().iterator(); it.hasNext();) {
com.ibm.team.workitem.common.model.IAttributeHandle handle = (IAttributeHandle) it.next();
com.ibm.team.workitem.common.model.IAttribute attribute = (IAttribute) repository.itemManager().fetchCompleteItem(handle, IItemManager.DEFAULT,new NullProgressMonitor());
System.out.println("  Built In Attribute: "+ attribute.getDisplayName());
System.out.println(" Type: " + attribute.getAttributeType());
try {
     System.out.println("  Value "+ resolved.getItem().getValue(attribute));
    } catch (AssertionFailedException e) {
     System.out.println(e.toString());
     }
 }

But i always get AssertionFailedException ( i know that i need use different method for enumeration but even for other atributtes i get this exception)



This code I use for enumeration (borrowed from this forum)
 System.out.println(" type"+"="+attribute.getAttributeType());
 System.out.println(" value"+"="+item.getValue(attribute));
 IEnumeration<ILiteral> enumeration = (IEnumeration<ILiteral>)workItemClient.resolveEnumeration(attribute, null);
 IAuditableClient iac = (IAuditableClient) repository.getClientLibrary(IAuditableClient.class);
 if(enumeration!=null){
 IAuditableClient auditableClient = (IAuditableClient )repository.getClientLibrary(IAuditableClient.class);
 String[] iaval = attribute.getValue(auditableClient, item, null).toString().split(":");
 if(iaval.length>1 && iaval[1]!=null){                                                       
 List<ILiteral> enumerationLiterals = enumeration.getEnumerationLiterals();
 for (ILiteral literal : enumerationLiterals){
 if(literal.getIdentifier2().getStringIdentifier().equalsIgnoreCase(iaval[1])){
 System.out.println("attribute name="+attribute.getIdentifier() +", type"+"="+attribute.getAttributeType()+" literal="+literal.getIdentifier2().getStringIdentifier()+" literal name="+literal.getName());                                       
  break;
 }
 }
 }
 }

I will be very grateful for help

edit:
Also i have problem with format code in this post, I do not know that anyone will want to read it :/

1

0 votes


Accepted answer


14 other answers

Permanent link

 Perhaps we can get values to built in and custom attributes using RPT. The workitems can fetched faster. It supports selection and filtering fields and values. It's supports pagination as well so we can use threads to get data in bunches concurrently.

0 votes


Permanent link
 What are the jars and libraries required to be included into the build path (in eclipse) to execute this code?

0 votes

Comments

i execute this from Eclipse and have set up user 'libraries' for the PlainJava jar files

if you then build an executable jar, you can include the needed jars inside, or you can point to the folder where all the plainjava jars reside

there are so many, I don't know exactly which ones you can leave out.


Permanent link
 Very useful for me. Thanks @sam

0 votes


Permanent link

It is still showing an error like Invalid reference

can you help me with an alternative solution.

0 votes


Permanent link

Still it is showing an error as an Invalid reference when I am using workItem.getValue.

Can you please give me an alternate solution?

0 votes


Permanent link
should be workItem.getValue("id")

0 votes


Permanent link

When I am making changes to the custom attributes it is giving me an error like this:

Changes made in the template body:

Actual Start Date:         ${workItem.get("com.acn.adt2.workitem.attribute.actualstartdate")}

where id of the custom attributes is com.acn.adt2.workitem.attribute.actualstartdate.

Error:

Method Invocation Exception:

Method get() threw AssertionFailedException: assertion failed:

0 votes


Permanent link
you're right. Thank You very much

0 votes


Permanent link
I use Your function only for custom atributtes , therefore, this condition does not help.
Please look at my code.

0 votes


Permanent link
thanks for the fix for the deprecated call.

my printAttributes can handle just custom if you add a check for

if (workItem.hasAttribute(ia))  && !ia.isBuiltin())

I have not used the getCustomAttributes() method cause I choose to loop thru all


0 votes

1–15 items
page 1of 1 pagesof 2 pages

Your answer

Register or log in to post your answer.

Dashboards and work items are no longer publicly available, so some links may be invalid. We now provide similar information through other means. Learn more here.

Search context
Follow this question

By Email: 

Once you sign in you will be able to subscribe for any updates here.

By RSS:

Answers
Answers and Comments
Question details
× 11,079

Question asked: Nov 23 '12, 4:34 p.m.

Question was seen: 32,047 times

Last updated: Feb 26 '21, 12:32 a.m.

Confirmation Cancel Confirm