
Key: |
QB-53
|
Type: |
Bug
|
Status: |
Resolved
|
Resolution: |
Fixed
|
Priority: |
Critical
|
Assignee: |
Robin Shen
|
Reporter: |
Robin Shen
|
Votes: |
0
|
Watchers: |
0
|
If you were logged in you would be able to see more operations.
|
|
|
QuickBuild
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
|
|
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.
|
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.
|
Show » |
No work has yet been logged on this issue.
|
|