It's all about the answers!

Ask a question

CQ connector - got an error


Gary Dang (59328855) | asked Mar 19 '08, 5:37 p.m.
Just installed 0.6M5a and trying to use the connector. When I create a CQ record, I am seeing this error in the gateway. I think I probably missed a step in the config. Any idea? By the way, the mapping seems to indicate it is talking to CQ because it displays the CQ fields, etc.

INFO: Server startup in 6509 ms
Got an InteropException: No CQRepository created for null

14 answers



permanent link
Lorelei Ngooi (1.5k22) | answered Apr 14 '08, 1:48 p.m.
JAZZ DEVELOPER
Gary,

Just wondering if the NullPointerException on outgoing issue has been resolved for you by modifying your sync rules?

Lorelei

permanent link
Lorelei Ngooi (1.5k22) | answered Mar 25 '08, 2:42 p.m.
JAZZ DEVELOPER
Our sample sync rules support a schema where a CQ defect has a reference to a CQ project. We have CQ defects mapped to Jazz work items and CQ projects mapped to Jazz categories.

It sounds like your schema is similar to ours in that the ADT_Issue has a reference to a ADT_Project_Properties. ADT_Issue is mapped to a Jazz work item and ADT_Project_Properties is mapped to Jazz categories. So your sync rules should be similar to our sample sync rules. Look at the project external property to Jazz category property mapping in the work item sample sync rule to see an example of referencing a sync rule from another sync rule.

Lorelei

permanent link
Gary Dang (59328855) | answered Mar 25 '08, 12:08 p.m.
There is a field in ADT_Issue called project. The value of project comes from the ADT_Project_Properties record. But the project field in ADT_Issue is populated when the user creates or updates the ADT_Issue record.

Regarding "Also, you wouldn't need to use the category value transformer, just reference your ADT_Project_Properties sync rule.", do you mean I need to link the ADT_Issue sync rule to the ADT_Project_Properties sync rule?

permanent link
Lorelei Ngooi (1.5k22) | answered Mar 21 '08, 6:21 p.m.
JAZZ DEVELOPER
Looking at your sync rules, I see that you have a CQ ADT_Project_Properties record type that is mapped to a Jazz category. Then there is an ADT_Issue record type that is mapped to a Jazz work item. What is the relationship between ADT_Issue and ADT_Project? Does ADT_Issue reference an ADT_
Project? If that's the case, then I would have expected the reference field as the external property not what appears to be a simple string field, Adt_Project_Name. Also, you wouldn't need to use the category value transformer, just reference your ADT_Project_Properties sync rule. This is similar to what we have setup in our sample sync rules.

Lorelei

permanent link
Gary Dang (59328855) | answered Mar 21 '08, 3:34 p.m.
What do I need to do to resolve the outgoing sync error? It seems no outgoing sync is working.



Here is the rule for the custom record type (ADT_Issue)

<?xml version="1.0" encoding="UTF-8"?>
<syncRule>
<name>com.accenture.clearquest.IDC70.ADT_Issue</name>
<externalTypeName>com.ibm.rational.clearquest.IDC70.ADT_Issue</externalTypeName>
<syncItemTypeName>WorkItem</syncItemTypeName>
<syncItemTypeNsURI>com.ibm.team.workitem</syncItemTypeNsURI>
<itemManager>com.ibm.team.interop.service.managers.workitem.WorkItemManager</itemManager>
<externalManager>com.ibm.team.interop.service.managers.clearquest.CQExternalManager</externalManager>
<maxCycleCount>10</maxCycleCount>
<syncAllItemStates>true</syncAllItemStates>
<propertyMappings>
<propertyMapping>
<externalPropertyName>Adt_Project_Name</externalPropertyName>
<itemPropertyName>Category</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
<transformExtension>com.ibm.team.interop.service.managers.workitem.CategoryValueTransformer</transformExtension>
<valueMappings>
<valueMapping>
<externalValue>adtarch_test</externalValue>
<itemValue>adtarch_test</itemValue>
<defaultExternalValue>false</defaultExternalValue>
<defaultItemValue>false</defaultItemValue>
</valueMapping>
</valueMappings>
</propertyMapping>
<propertyMapping>
<externalPropertyName>Adt_Description</externalPropertyName>
<itemPropertyName>Description</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
</propertyMapping>
<propertyMapping>
<externalPropertyName>Adt_Owners</externalPropertyName>
<itemPropertyName>Owner</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
<referenceSyncRule>com.accenture.clearquest.IDC70.users</referenceSyncRule>
</propertyMapping>
<propertyMapping>
<externalPropertyName>Adt_Priority</externalPropertyName>
<itemPropertyName>Priority</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
<valueMappings>
<valueMapping>
<externalValue>High</externalValue>
<itemValue>High</itemValue>
<defaultExternalValue>false</defaultExternalValue>
<defaultItemValue>false</defaultItemValue>
</valueMapping>
<valueMapping>
<externalValue>Medium</externalValue>
<itemValue>Medium</itemValue>
<defaultExternalValue>false</defaultExternalValue>
<defaultItemValue>false</defaultItemValue>
</valueMapping>
<valueMapping>
<externalValue>Low</externalValue>
<itemValue>Low</itemValue>
<defaultExternalValue>false</defaultExternalValue>
<defaultItemValue>false</defaultItemValue>
</valueMapping>
</valueMappings>
</propertyMapping>
<propertyMapping>
<externalPropertyName>Adt_Short_Description</externalPropertyName>
<itemPropertyName>Summary</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
</propertyMapping>
<propertyMapping>
<externalPropertyName>id</externalPropertyName>
<itemPropertyName>Tags</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>true</itemIdentifier>
<externalIdentifier>true</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
</propertyMapping>
<propertyMapping>
<externalPropertyName/>
<itemPropertyName>Type</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
<valueMappings>
<valueMapping>
<externalValue/>
<itemValue>ADT_Issue</itemValue>
<defaultExternalValue>false</defaultExternalValue>
<defaultItemValue>false</defaultItemValue>
</valueMapping>
</valueMappings>
</propertyMapping>
</propertyMappings>
</syncRule>


Here is the users sync rule:
<?xml version="1.0" encoding="UTF-8"?>
<syncRule>
<name>com.accenture.clearquest.IDC70.users</name>
<externalTypeName>com.ibm.rational.clearquest.IDC70.users</externalTypeName>
<syncItemTypeName>Contributor</syncItemTypeName>
<syncItemTypeNsURI>com.ibm.team.repository</syncItemTypeNsURI>
<itemManager>com.ibm.team.interop.service.managers.kernel.ContributorManager</itemManager>
<externalManager>com.ibm.team.interop.service.managers.clearquest.CQExternalManagerForUser</externalManager>
<maxCycleCount>0</maxCycleCount>
<syncAllItemStates>false</syncAllItemStates>
<propertyMappings>
<propertyMapping>
<externalPropertyName>fullname</externalPropertyName>
<itemPropertyName>Name</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>false</itemIdentifier>
<externalIdentifier>false</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
</propertyMapping>
<propertyMapping>
<externalPropertyName>login_name</externalPropertyName>
<itemPropertyName>UserId</itemPropertyName>
<incoming>true</incoming>
<outgoing>false</outgoing>
<itemIdentifier>true</itemIdentifier>
<externalIdentifier>true</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
</propertyMapping>
</propertyMappings>
</syncRule>

Here is the project property sync rule

<?xml version="1.0" encoding="UTF-8"?>
<syncRule>
<name>com.ibm.rational.clearquest.IDC70.ADT_Project_Properties</name>
<externalTypeName>com.ibm.rational.clearquest.IDC70.ADT_Project_Properties</externalTypeName>
<syncItemTypeName>Category</syncItemTypeName>
<syncItemTypeNsURI>com.ibm.team.workitem</syncItemTypeNsURI>
<itemManager>com.ibm.team.interop.service.managers.workitem.CategoryManager</itemManager>
<externalManager>com.ibm.team.interop.service.managers.clearquest.CQExternalManager</externalManager>
<maxCycleCount>10</maxCycleCount>
<syncAllItemStates>false</syncAllItemStates>
<propertyMappings>
<propertyMapping>
<externalPropertyName>Adt_Project_Name</externalPropertyName>
<itemPropertyName>Name</itemPropertyName>
<incoming>true</incoming>
<outgoing>true</outgoing>
<itemIdentifier>true</itemIdentifier>
<externalIdentifier>true</externalIdentifier>
<externalModifier>false</externalModifier>
<requiredItemProperties/>
<requiredExternalProperties/>
</propertyMapping>
</propertyMappings>
</syncRule>

permanent link
Lorelei Ngooi (1.5k22) | answered Mar 21 '08, 10:53 a.m.
JAZZ DEVELOPER
Regarding the CQ ID property, are you referring to the property mapping in the sample work item sync rule? If so, then this is mapped to a Jazz custom string attribute. If you are not referring to the sample sync rule, then you could map it to any Jazz work item string-valued property or to a string custom attribute.

Lorelei

permanent link
Lorelei Ngooi (1.5k22) | answered Mar 21 '08, 9:32 a.m.
JAZZ DEVELOPER
Gary,

I agree with your assessment of the outgoing error message. I filed the work item 47977 - NullPointerException during outgoing sync. Can you attach your sync rules so we can investigate this?

Lorelei

permanent link
Lorelei Ngooi (1.5k22) | answered Mar 21 '08, 9:20 a.m.
JAZZ DEVELOPER
Gary,

Since the work item owner field has a single reference value, it can't be mapped to a CQ field that is a reference list.

Lorelei
Jazz CQ Connector Team

permanent link
Gary Dang (59328855) | answered Mar 20 '08, 7:14 p.m.
John, I have a record type in CQ that has owner as a reference list. The data in this field doesn't seem to come over to the workitem owner field.

Also, if the user exists in CQ but not in RTC, shouldn't the user get created automatically in RTC after the sync or vice versa?

permanent link
Gary Dang (59328855) | answered Mar 20 '08, 6:56 p.m.
John, I am having following not meaningful outgoing error:

Outgoing at 3/20/08 5:54:58 PM CDT
Error occurred:
java.lang.RuntimeException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: com.ibm.team.interop.service.managers.clearquest.common.InteropException: java.lang.NullPointerException

Your answer


Register or 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.