forcedotcom / wsc

Other
270 stars 223 forks source link

Compile error v44 of Partner WSDL: 'cannot find symbol' AdditionalInformationMap #226

Open rmccu opened 5 years ago

rmccu commented 5 years ago

When attempting to compile version 44.0 of the Partner WSDL, I am getting several 'cannot find symbol' errors regarding 'AdditionalInformationMap'.

Here is what the compile looks like:

$ java -jar target/force-wsc-44.0.0-uber.jar ~/Downloads/partner-44.0.xml ../MetadataIO/lib/force-partner-44.0.0.jar
[WSC][wsdlc.main:71]Generating Java files from schema ...
[WSC][wsdlc.main:71]Generated 664 java files.
[WSC][wsdlc.main:71]Compiling to target 1.6... 
warning: [options] bootstrap class path not set in conjunction with -source 6
warning: [options] source value 6 is obsolete and will be removed in a future release
warning: [options] target value 1.6 is obsolete and will be removed in a future release
warning: [options] To suppress warnings about obsolete options, use -Xlint:-options.
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/MergeRequest.java:31: error: cannot find symbol
    private com.sforce.soap.partner.AdditionalInformationMap[] additionalInformationMap = new com.sforce.soap.partner.AdditionalInformationMap[0];
                                   ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/MergeRequest.java:34: error: cannot find symbol
    public com.sforce.soap.partner.AdditionalInformationMap[] getAdditionalInformationMap() {
                                  ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/MergeRequest.java:39: error: cannot find symbol
    public void setAdditionalInformationMap(com.sforce.soap.partner.AdditionalInformationMap[] additionalInformationMap) {
                                                                   ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/IMergeRequest.java:14: error: cannot find symbol
      public com.sforce.soap.partner.AdditionalInformationMap[] getAdditionalInformationMap();
                                    ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/IMergeRequest.java:16: error: cannot find symbol
      public void setAdditionalInformationMap(com.sforce.soap.partner.AdditionalInformationMap[] additionalInformationMap);
                                                                     ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/MergeRequest.java:31: error: cannot find symbol
    private com.sforce.soap.partner.AdditionalInformationMap[] additionalInformationMap = new com.sforce.soap.partner.AdditionalInformationMap[0];
                                                                                                                     ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/MergeRequest.java:40: error: cannot find symbol
      this.additionalInformationMap = castArray(com.sforce.soap.partner.AdditionalInformationMap.class, additionalInformationMap);
                                                                       ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/MergeRequest.java:48: error: cannot find symbol
        setAdditionalInformationMap((com.sforce.soap.partner.AdditionalInformationMap[])__typeMapper.readObject(__in, _lookupTypeInfo("additionalInformationMap", "urn:partner.soap.sforce.com","additionalInformationMap","urn:partner.soap.sforce.com","AdditionalInformationMap",0,-1,true), com.sforce.soap.partner.AdditionalInformationMap[].class));
                                                            ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
/var/folders/9p/cpfgp4z15nvd2583tfk87lzr0000gn/T/wsc-scratch10651298868956163952tmp/com/sforce/soap/partner/MergeRequest.java:48: error: cannot find symbol
        setAdditionalInformationMap((com.sforce.soap.partner.AdditionalInformationMap[])__typeMapper.readObject(__in, _lookupTypeInfo("additionalInformationMap", "urn:partner.soap.sforce.com","additionalInformationMap","urn:partner.soap.sforce.com","AdditionalInformationMap",0,-1,true), com.sforce.soap.partner.AdditionalInformationMap[].class));
                                                                                                                                                                                                                                                                                                                       ^
  symbol:   class AdditionalInformationMap
  location: package com.sforce.soap.partner
9 errors
4 warnings
Error: Failed to compile

When I look at the Partner WSDL, I see 'AdditionalInformationMap' referenced in the 'MergeRequest' complex type:

<complexType name="MergeRequest">
    <sequence>
        <element name="additionalInformationMap" minOccurs="0" maxOccurs="unbounded" type="tns:AdditionalInformationMap"/>
        <element name="masterRecord" type="ens:sObject"/>
        <element name="recordToMergeIds" type="tns:ID" minOccurs="1" maxOccurs="unbounded"/>
    </sequence>
</complexType>

However, 'AdditionalInformationMap' is not defined anywhere in the 'tns' namespace. I think the Partner WSDL generated from my org is incorrect. This looks like a Salesforce bug correct?

I am also attaching my WSDL. partner-44.0.txt

rmccu commented 5 years ago

For the time being I am going to comment out the parts of the WSDL related to merge().

Also, FWIW, I can't find 'MergeRequest' defined in the documentation. This leads me to believe that this functionality has not been fully developed in Salesforce yet. Still, no excuse for Salesforce generating an invalid WSDL file.

rmccu commented 5 years ago

Here is an updated partner WSDL with the "merge" functionality commented out and that compiles. partner-44.0.txt