•  
      request #2396 [SOAP] Constant values depend on Tuleap language
    Infos
    #2396
    Mélanie Bats (mbats)
    2013-02-27 14:24
    2013-01-31 18:09
    1370
    Details
    [SOAP] Constant values depend on Tuleap language
    It seems that the constants used by the SOAP API are not the same if you use Tuleap in English or in French. For example, if I have Tuleap in English, the default "no selection available" value in a select box would be "None" but if I use Tuleap in French it would be "Aucun". Due to this when I try to update with the Java API an artefact which defines no value for a select box, I should send the as value "None" if my Tuleap user use the english version and "Aucun" if the
    user use the french version.
    We will have the same problem with the bind to user multi select box, in english it will define group_members, project_members... and in french membres_projet, admins_projet...

    Is it possible to keep all the time the english constants in order that the mylyn connector works for any Tuleap language configuration?
    API
    Empty
    Empty
    • [ ] enhancement
    • [ ] internal improvement
    Empty
    Stage
    Martin GOYOT (goyotm)
    Closed
    Empty
    Attachments
    Empty
    References
    References list is empty

    Follow-ups

    User avatar
    Hello,

    What is exactly the "bind_value_id" of this constant value?

    If I send to "updateArtifact" a FieldValue with the id of one of the possible choice of the SB/CB/MSB, then it gets selected (normal), I send an empty value (or anything invalid) then the SB/CB/MSB gets cleared and nothing is selected anymore (normal too) but I can't get the "None/Aucun" value to be selected with "updateArtifact". The choice "None/Aucun" is not part of the values returned by "getTrackerFields" and this allows us to make a distinction between regular values and the "default" value but it also prevents us from having the "id" of this constant value in order to select it. One could said that the difference between "nothing is selected" and "the value None is selected" is negligeable but if you have constant value we could easily use it to have the same behavior.

    Regards,

    Stephane

    • Platform set to
    • Is an Enhancement or an internal improvement? set to
    User avatar
    Hello,

    I reproduce your issue. Effectively, the 'none value' depends on user language settings. We will modify this to have a constant value in any language.
    User avatar
    Martin GOYOT (goyotm)2013-02-19 10:09
    Hello,

    Thanks for the sreenshot. The values effectively differs from French to English, but they don't seem to differ on the SOAP API, it's always in english as far as we've been able to test.

    We are currently going through further investigations about your issue.

    Regards,
    User avatar
    Mélanie Bats (mbats)2013-02-04 09:56
    Hello,

    I think the problem does not come from the tracker structure but from the user configuration. In my case, my user account on the Tuleap demo server is set to French and consequently when I manage the different fields of a tracker the default constants will be presented in French :
    https://lh3.googleusercontent.com/-00udFNuXu3c/UQ9zmmVecBI/AAAAAAAAAEo/3XX6vbtENuE/s824/Bug%232396_1.png
    https://lh6.googleusercontent.com/-Ls8c4y0WOpY/UQ9znBcJJOI/AAAAAAAAAEw/phV7MEPJ2yY/s914/Bug%232396_2.png
    My colleague use the same tracker as me but with a user account in English and when he administrates the tracker the default fields values are in English.

    What I am doing with the SOAP API is simple I just call the following code:
    Ugroup[] projectGroupsAndUsers = codendiAPIPort.getProjectGroupsAndUsers(sessionHash,groupId);
    for (Ugroup ugroup : projectGroupsAndUsers) {
    String uGroupName = ugroup.getName();
    System.out.println(uGroupName);
    }

    With my French account I will obtain : "membres_projet", "admins_projet"
    and with the English account : "project_members", "project_admins"

    Consequently, when I try with the SOAP API to set a SB/MSB field to its "Empty" value, with an english account I have to send "None" but with my account "None" is an unrecognized value as the server expects "Aucun" as my account is in French. And I obtained the following error :
    AxisFault
    faultCode: 0
    faultSubcode:
    faultString: Unknown value Object id #219 for field: priority
    faultActor:
    faultNode:
    faultDetail:
    {http://xml.apache.org/axis/}stackTrace:Unknown value Object id #219 for field: priority
    at org.apache.axis.message.SOAPFaultBuilder.createFault(SOAPFaultBuilder.java:222)
    at org.apache.axis.message.SOAPFaultBuilder.endElement(SOAPFaultBuilder.java:129)
    at org.apache.axis.encoding.DeserializationContext.endElement(DeserializationContext.java:1087)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.endElement(AbstractSAXParser.java:604)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanEndElement(XMLDocumentFragmentScannerImpl.java:1759)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl$FragmentContentDriver.next(XMLDocumentFragmentScannerImpl.java:2915)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentScannerImpl.next(XMLDocumentScannerImpl.java:625)
    at com.sun.org.apache.xerces.internal.impl.XMLNSDocumentScannerImpl.next(XMLNSDocumentScannerImpl.java:116)
    at com.sun.org.apache.xerces.internal.impl.XMLDocumentFragmentScannerImpl.scanDocument(XMLDocumentFragmentScannerImpl.java:488)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:819)
    at com.sun.org.apache.xerces.internal.parsers.XML11Configuration.parse(XML11Configuration.java:748)
    at com.sun.org.apache.xerces.internal.parsers.XMLParser.parse(XMLParser.java:123)
    at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1208)
    at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:525)
    at javax.xml.parsers.SAXParser.parse(SAXParser.java:392)
    at org.apache.axis.encoding.DeserializationContext.parse(DeserializationContext.java:227)
    at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)
    at org.apache.axis.Message.getSOAPEnvelope(Message.java:435)
    at org.apache.axis.handlers.soap.MustUnderstandChecker.invoke(MustUnderstandChecker.java:62)
    at org.apache.axis.client.AxisClient.invoke(AxisClient.java:206)
    at org.apache.axis.client.Call.invokeEngine(Call.java:2784)
    at org.apache.axis.client.Call.invoke(Call.java:2767)
    at org.apache.axis.client.Call.invoke(Call.java:2443)
    at org.apache.axis.client.Call.invoke(Call.java:2366)
    at org.apache.axis.client.Call.invoke(Call.java:1812)
    at org.eclipse.mylyn.internal.tuleap.core.wsdl.soap.v2.TuleapTrackerV5APIBindingStub.addArtifact(TuleapTrackerV5APIBindingStub.java:1007)

    Best regards
    User avatar
    Martin GOYOT (goyotm)2013-02-01 17:33
    Hello,

    we ran some tests against the SOAP API and it seems to only returns english names so far. Could you give us your tracker structure and a senario so that we could be able to reproduce your issue?

    Regards
    User avatar
    Martin GOYOT (goyotm)2013-02-01 11:57
    Hello,

    I'm taking a look at it.

    Regards

    • Assigned to changed from None to Martin GOYOT (goyotm)