<< Back to previous view

[QB-53] Login mapping fails to handle some non-english login names
Created: 14/Mar/06  Updated: 16/Mar/06

Status: Resolved
Project: QuickBuild
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Critical
Reporter: Robin Shen Assigned To: Robin Shen
Resolution: Fixed Votes: 0
Remaining Estimate: Unknown Time Spent: Unknown
Original Estimate: Unknown


 Description   
From Mike Eshva:

well, I've found one problem and have solved it by my self. It's about login mappings and StarTeam.

We use russian names to identify users in StarTeam. For instance my name in cyrillic is ??????? ??????. I'm not sure you can read it but the most important here that first letters are capitalized and in cyrillic. I add a login mapping in QuickBuild something like: "??????? ??????=eshva". After save it I've got "??????? ??????=eshva" (first latters in lower case). after I change something in repository (add some error line in some source file). QuickBuild determines that build is necessary and perform it. everything goes well till calling an e-mail notifer. In the configuration log I see lines:
2006-03-14 13:29:03,044 [Thread-58] ERROR - Failed to trigger configuration.
java.lang.RuntimeException: User "??????? ??????" not found.
at com.pmease.quickbuild.step.NotifyStep.getCheckinUsers(NotifyStep.java:148)
at com.pmease.quickbuild.step.NotifyStep.run(NotifyStep.java:63)
at com.pmease.quickbuild.step.Step.trigger(Step.java:161)
at com.pmease.quickbuild.step.SerialStep.triggerMembers(SerialStep.java:35)
at com.pmease.quickbuild.step.CompositeStep.run(CompositeStep.java:129)
at com.pmease.quickbuild.step.Step.trigger(Step.java:161)
at com.pmease.quickbuild.model.Configuration.performBuild(Configuration.java:1251)
at com.pmease.quickbuild.model.Configuration.trigger(Configuration.java:980)
at com.pmease.quickbuild.triggeringinstance.ManualTriggeringInstance.execute(ManualTriggeringInstance.java:41)
at com.pmease.quickbuild.model.Queue$BuildRunner.run(Queue.java:221)
at java.lang.Thread.run(Thread.java:595)

I understood that something wrong with my name. I changed my StarTeam Name and login mapping to Mike. after that I've recieved an e-mail notification (as last checkedin user) correctly. So I made conclusion that StarTeam cannot find a user with non-English name if QuickBuild sends this name lower-cased.

I decided to check it up in code. I've found to places and modifed them. It has solved the problem. Here they are:

LoginMapping.class:
public void validate(Editable editable)
{
EditableProperty property = editable.getProperty("repositoryLogin2UserName");
property.setTextValue(property.getTextValue().toLowerCase());
...

StarTeamRepository.class:
private void addChangeLogs(File file, String action, Revisions revisions)
{
User user = file.getServer().getUser(file.getModifiedBy());
String userName = "<unknown user>";
if(user != null)
{
revisions.getChangeLogins().add(((Object) (user.getName().toLowerCase())));
...

I replaced calls of toLowerCase with NOPs, changed login mapping and my StarTeam name back to my russian name. After that everything works correctly.

Generated at Thu Jun 26 15:10:32 UTC 2025 using JIRA 189.