History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: QB-53
Type: Bug Bug
Status: Resolved Resolved
Resolution: Fixed
Priority: Critical Critical
Assignee: Robin Shen
Reporter: Robin Shen
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
QuickBuild

Login mapping fails to handle some non-english login names

Created: 14/Mar/06 05:03 PM   Updated: 16/Mar/06 05:51 AM
Component/s: None
Affects Version/s: None
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown


 Description  « Hide
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.


 All   Comments   Work Log   Change History      Sort Order:
No work has yet been logged on this issue.