Giter Club home page Giter Club logo

wsc's Introduction

Force.com Web Service Connector (WSC)

The Force.com Web Service Connector (WSC) is a high performing web service client stack implemented using a streaming parser. WSC also makes it much easier to use the Force.com API (Web Services/SOAP or Asynchronous/BULK API).

Building WSC

git clone https://github.com/forcedotcom/wsc.git
mvn clean package

To skip the gpg signing, run the following command

mvn clean package -Dgpg.skip

Generating Stubs From WSDLs

java -jar target/force-wsc-61.1.0-uber.jar <inputwsdlfile> <outputjarfile>
  • inputwsdlfile is the name of the WSDL to generate stubs for.
  • outputjarfile is the name of the jar file to create from the WSDL.

Write Application Code

The following sample illustrates creating a connection and creating a new Account SObject. Login is automatically handled by the Connector.

    import com.sforce.soap.partner.*;
    import com.sforce.soap.partner.sobject.*;
    import com.sforce.ws.*;

    public static void main(String[] args) {
        ConnectorConfig config = new ConnectorConfig();
        config.setUsername("username");
        config.setPassword("password");

        PartnerConnection connection = Connector.newConnection(config);
        SObject account = new SObject();
        account.setType("Account");
        account.setField("Name", "My Account");
        connection.create(new SObject[]{account});
    }

wsc's People

Contributors

abhinavchadda avatar ahalevy avatar amallemadugula1 avatar arjun-mehrotra avatar ashitsalesforce avatar btajuddin-sfdc avatar diracz avatar djchen avatar donr7n avatar emil-sv-mule avatar fancywriter avatar fpardo avatar fpardosf avatar gnguyen-sfdc avatar hellblazer avatar jake-xie-sfdc avatar jatintaneja90 avatar josecardenassf avatar lzemskov avatar mgrumbach avatar obivol-sfdc avatar omega359 avatar reubencornel avatar riyasurisalesforce avatar rpolk-sfdc avatar sfdc-hhildebrand avatar shireennagdive avatar shosahalli avatar toalina avatar wgray-sfdc avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

wsc's Issues

destJar.getParentFile() throwing NullPointerException

in wsdlc.java I get an exception running the standard command from the README.md

You'll notice that getParentFile can return null:

http://docs.oracle.com/javase/6/docs/api/java/io/File.html#getParentFile%28%29

I ended up putting a try block around the statement
try {
if (!destJar.getParentFile().exists()) {
if (!destJar.getParentFile().mkdirs()) { throw new ToolsException(String.format(
"Cannot create jar file directory: %s", destJar.getParentFile().getAbsolutePath())); }
}
} catch (Exception e) {
System.out.println("oh f*ck :" + e.toString());
}

Marshalling/Unmarshalling of null lists

Hi,

For salesforce custom services, it appears that marshalling/unmarshalling of null lists is not working - the client will unmarshall a null list as an array with a single null element.

Cheers.

PartnerConnection.describeSObjects fails since 29.0.0 release

While trying out the new 29.0.0 release i observed that calls to PartnerConnection.describeSObjects are failing now with the follow Exception:

Caused by: com.sforce.ws.ConnectionException: Unexpected element. Parser was expecting element 'urn:partner.soap.sforce.com:compactLayoutable' but found 'urn:partner.soap.sforce.com:createable'
        at com.sforce.ws.bind.TypeMapper.verifyTag(TypeMapper.java:387)
        at com.sforce.ws.bind.TypeMapper.verifyElement(TypeMapper.java:416)
        at com.sforce.soap.partner.DescribeSObjectResult.loadFields(DescribeSObjectResult.java:758)
        at com.sforce.soap.partner.DescribeSObjectResult.load(DescribeSObjectResult.java:743)
        at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:629)
        at com.sforce.ws.bind.TypeMapper.readArray(TypeMapper.java:529)
        at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:507)
        at com.sforce.soap.partner.DescribeSObjectsResponse_element.loadFields(DescribeSObjectsResponse_element.java:62)
        at com.sforce.soap.partner.DescribeSObjectsResponse_element.load(DescribeSObjectsResponse_element.java:54)
        at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:629)
        at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:505)
        at com.sforce.ws.transport.SoapConnection.bind(SoapConnection.java:174)
        at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:148)
        at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:99)
        at com.sforce.soap.partner.PartnerConnection.describeSObjects(PartnerConnection.java:1158)
        at connector.sfdc.SfdcConnection.getFieldsFor(SfdcConnection.java:760)
        ... 68 more

ConnectionCodeGeneratorTest failing

mvn clean package is failing due to a Test failure.


T E S T S

Running com.sforce.async.CSVReaderTest
Tests run: 8, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 1.222 sec
Running com.sforce.ws.bind.XmlObjectTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.062 sec
Running com.sforce.ws.codegen.AggregateCodeGeneratorTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.146 sec
Running com.sforce.ws.codegen.ComplexTypeCodeGeneratorTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.174 sec
Running com.sforce.ws.codegen.ConnectionCodeGeneratorTest
Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.191 sec <<< FAILURE!
Running com.sforce.ws.codegen.ConnectorCodeGeneratorTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.185 sec
Running com.sforce.ws.codegen.SimpleTypeCodeGeneratorTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.157 sec
Running com.sforce.ws.codegen.SObjectCodeGeneratorTest
Tests run: 1, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.15 sec

Results :

Failed tests:

Tests run: 15, Failures: 1, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 12.759 s
[INFO] Finished at: 2014-07-01T13:03:35-05:00
[INFO] Final Memory: 19M/240M
[INFO] ------------------------------------------------------------------------

Unexpected element... again!

This error is essentially the same error as #35 that was closed a few weeks ago, it appears a new release (change?) has been applied and now we're getting this on DescribeLayout again. can someone verify this? we're calling DescribeObject on an Opportunity with a certain record type:

14:49:53.643 [DEBUG][EventProxy]: calling DescribeLayout
Exception in thread "main" com.sforce.ws.ConnectionException: Unexpected element. Parser was expecting element 'urn:enterprise.soap.sforce.com:height' but found 'urn:enterprise.soap.sforce.com:theme'
at com.sforce.ws.bind.TypeMapper.verifyTag(TypeMapper.java:387)
at com.sforce.ws.bind.TypeMapper.verifyElement(TypeMapper.java:416)
at com.sforce.soap.enterprise.DescribeIcon.loadFields(DescribeIcon.java:149)
at com.sforce.soap.enterprise.DescribeIcon.load(DescribeIcon.java:138)
at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:629)
...

oh yeah - just created the enterprise.jar using wsc-29 and a wsdl downloaded from our org about 2:30p (central); and we're hitting URI 29 (https://test.salesforce.com/services/Soap/c/29.0)

thanks!
dwf

NullPointerException in wsdlc.java if <outputjarfile> is not absolute

The problem is at line 80. (version 29)

destJar.getParentFile() is null if the destination jar passed in is not as an absolute path - i.e. if the dest jar parameter given is "partner.jar" then this will trigger the exception:

Exception in thread "main" java.lang.NullPointerException
at com.sforce.ws.tools.wsdlc.run(wsdlc.java:80)
at com.sforce.ws.tools.wsdlc.run(wsdlc.java:140)
at com.sforce.ws.tools.wsdlc.main(wsdlc.java:64)

As a work-around, the parameter can be given as an absolute path. I.e.
"C:\wsc29\target\out\partner29.jar".

I guess I was expecting it to build the partner.jar in the local directory if none was provided.

sobject.standardFields()

There used to be a method on classes generated using wsc to get the list of standardFields on an object. Did it get renamed? Doesn't appear to be there when I build. Older version of wsc also had SalesForceUtil which seems to be gone?

Failure to unmarshal standard objects

I'm getting this error while unmarshaling metadata from my developer org:
Unexpected element. Parser was expecting element 'http://soap.sforce.com/2006/04/metadata:sorted' but found 'http://soap.sforce.com/2006/04/metadata:restrictedPicklist'

The specific object in question is Contract. I'm using the metadata WSDL generated from the same dev org using the same version of Force WSC. I've also been encountering this with older versions (at least as far back as 29.0) and with other orgs. The files haven't been modified in any way.

Unable to build WSC

Hi,

On my Mac Air I have installed java version "1.8.0_25" and Apache Maven 3.2.3

When I build my WSC all tests pass but I get a build failure. Please see below. What am I missing?

Thanks

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 25.340 s
[INFO] Finished at: 2014-12-10T16:45:39+11:00
[INFO] Final Memory: 28M/285M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-javadoc-plugin:2.7:jar (attach-javadoc) on project force-wsc: MavenReportException: Error while creating archive:
[ERROR] Exit code: 1 - javadoc: warning - Multiple sources of package comments found for package "com.sforce.ws.bind"
[ERROR] javadoc: warning - Multiple sources of package comments found for package "com.sforce.ws"
[ERROR] javadoc: warning - Multiple sources of package comments found for package "com.sforce.ws.parser"
[ERROR] javadoc: warning - Multiple sources of package comments found for package "com.sforce.ws.tools"
[ERROR] javadoc: warning - Multiple sources of package comments found for package "com.sforce.ws.transport"
[ERROR] javadoc: warning - Multiple sources of package comments found for package "com.sforce.ws.util"
[ERROR] javadoc: warning - Multiple sources of package comments found for package "com.sforce.ws.wsdl"
[ERROR] /Development/wsc/src/main/java/com/sforce/async/BulkConnection.java:235: warning: no @throws for com.sforce.async.AsyncApiException
[ERROR] public BatchInfo createBatchWithInputStreamAttachments(JobInfo jobInfo, InputStream batchContent,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:68: error: malformed HTML
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:68: error: bad use of '>'
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:69: error: unknown tag: sObjects
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:70: error: unknown tag: sObject
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:71: error: unknown tag: Name
[ERROR] * XYZ
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:71: error: unknown tag: Name
[ERROR] * XYZ
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:72: error: unknown tag: Description
[ERROR] * BLAH
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:72: error: unknown tag: Description
[ERROR] * BLAH
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:73: error: unknown tag: AccountNumber
[ERROR] * 123456
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:73: error: unknown tag: AccountNumber
[ERROR] * 123456
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:74: error: unknown tag: ReportTo
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:75: error: unknown tag: sObject
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:77: error: unknown tag: type
[ERROR] * ParentEntityType
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:77: error: unknown tag: type
[ERROR] * ParentEntityType
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:78: error: unknown tag: email
[ERROR] * [email protected]
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:78: error: unknown tag: email
[ERROR] * [email protected]
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:80: error: unknown tag: sObject
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:81: error: unknown tag: ReportTo
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:82: error: unknown tag: sObject
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:83: error: unknown tag: sObjects
[ERROR] *
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:85: warning: no description for @param
[ERROR] * @param out
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/SObject.java:86: warning: no description for @throws
[ERROR] * @throws IOException
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/async/TransformationSpecRequest.java:68: warning: no description for @throws
[ERROR] * @throws AsyncApiException
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/bulk/CsvWriter.java:35: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/bulk/LoginHelper.java:40: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/bulk/StreamException.java:32: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/bulk/StreamHandler.java:36: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/bulk/UpdateResult.java:31: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/bulk/UpdateResultStream.java:37: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/bulk/UpdateStream.java:36: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/bind/DateCodec.java:52: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/bind/XmlObject.java:110: warning: no description for @param
[ERROR] * @param xpath
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/bind/XmlObject.java:111: warning: no description for @return
[ERROR] * @return
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/codegen/Generator.java:172: warning: no @param for source
[ERROR] protected Writer newSourceWriter(File source) throws IOException {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/codegen/Generator.java:172: warning: no @return
[ERROR] protected Writer newSourceWriter(File source) throws IOException {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/codegen/Generator.java:172: warning: no @throws for java.io.IOException
[ERROR] protected Writer newSourceWriter(File source) throws IOException {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/codegen/Generator.java:202: warning: no @param for types
[ERROR] protected TypeMetadataConstructor newTypeMetadataConstructor(Types types, Schema schema, ComplexType complexType,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/codegen/Generator.java:202: warning: no @param for schema
[ERROR] protected TypeMetadataConstructor newTypeMetadataConstructor(Types types, Schema schema, ComplexType complexType,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/codegen/Generator.java:202: warning: no @param for complexType
[ERROR] protected TypeMetadataConstructor newTypeMetadataConstructor(Types types, Schema schema, ComplexType complexType,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/codegen/Generator.java:202: warning: no @param for dir
[ERROR] protected TypeMetadataConstructor newTypeMetadataConstructor(Types types, Schema schema, ComplexType complexType,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/codegen/Generator.java:202: warning: no @return
[ERROR] protected TypeMetadataConstructor newTypeMetadataConstructor(Types types, Schema schema, ComplexType complexType,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/SessionRenewer.java:43: warning: no @param for config
[ERROR] SessionRenewalHeader renewSession(ConnectorConfig config) throws ConnectionException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/SessionRenewer.java:43: warning: no @return
[ERROR] SessionRenewalHeader renewSession(ConnectorConfig config) throws ConnectionException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/SessionRenewer.java:43: warning: no @throws for com.sforce.ws.ConnectionException
[ERROR] SessionRenewalHeader renewSession(ConnectorConfig config) throws ConnectionException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:212: warning: no @param for size
[ERROR] protected void ensureAttributesCapacity(int size) {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:293: warning: no @param for ch
[ERROR] protected static int fastHash(char ch[], int off, int len) {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:293: warning: no @param for off
[ERROR] protected static int fastHash(char ch[], int off, int len) {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:293: warning: no @param for len
[ERROR] protected static int fastHash(char ch[], int off, int len) {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:293: warning: no @return
[ERROR] protected static int fastHash(char ch[], int off, int len) {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:455: warning: no description for @throws
[ERROR] * @throws XmlPullParserException
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:493: error: unknown tag: string
[ERROR] * Unknown properties are always returned as false
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:493: error: unexpected end tag:
[ERROR] * Unknown properties are always returned as false
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:1028: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] public void skipSubTree()
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/MXParser.java:1028: warning: no @throws for java.io.IOException
[ERROR] public void skipSubTree()
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:448: warning: no @param for name
[ERROR] void setFeature(String name,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:448: warning: no @param for state
[ERROR] void setFeature(String name,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:465: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:471: warning: no @param for name
[ERROR] void setProperty(String name,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:471: warning: no @param for value
[ERROR] void setProperty(String name,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:476: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:496: warning: no @param for in
[ERROR] void setInput(Reader in) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:496: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] void setInput(Reader in) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:503: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:503: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:516: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] void setInput(InputStream inputStream, String inputEncoding)
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:531: warning: no @return
[ERROR] String getInputEncoding();
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:540: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:540: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:545: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:545: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:550: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:550: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:554: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:554: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:564: warning: no @param for entityName
[ERROR] void defineEntityReplacementText(String entityName,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:564: warning: no @param for replacementText
[ERROR] void defineEntityReplacementText(String entityName,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:564: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] void defineEntityReplacementText(String entityName,
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:571: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:571: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:579: error: malformed HTML
[ERROR] * for (int i = nsStart; i < nsEnd; i++) {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:591: warning: no @param for depth
[ERROR] int getNamespaceCount(int depth) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:591: warning: no @return
[ERROR] int getNamespaceCount(int depth) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:591: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] int getNamespaceCount(int depth) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:603: warning: no @param for pos
[ERROR] String getNamespacePrefix(int pos) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:603: warning: no @return
[ERROR] String getNamespacePrefix(int pos) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:603: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] String getNamespacePrefix(int pos) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:612: warning: no @param for pos
[ERROR] String getNamespaceUri(int pos) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:612: warning: no @return
[ERROR] String getNamespaceUri(int pos) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:612: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] String getNamespaceUri(int pos) throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:617: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:617: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:622: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:622: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:624: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:624: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:626: error: bad use of '>'
[ERROR] * for (int i = getNamespaceCount(getDepth ())-1; i >= 0; i--) {
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:633: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:633: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:646: warning: no @param for prefix
[ERROR] String getNamespace(String prefix);
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:646: warning: no @return
[ERROR] String getNamespace(String prefix);
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:657: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:657: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:660: error: bad use of '>'
[ERROR] * <root> 1
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:668: warning: no @return
[ERROR] int getDepth();
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:677: warning: no @return
[ERROR] String getPositionDescription();
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:708: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:708: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:715: warning: no @return
[ERROR] boolean isWhitespace() throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:715: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] boolean isWhitespace() throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:722: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:725: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:725: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:735: warning: no @return
[ERROR] String getText();
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:742: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:742: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:775: warning: no @return
[ERROR] String getNamespace();
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:788: warning: no @return
[ERROR] String getName();
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:797: warning: no @return
[ERROR] String getPrefix();
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:806: warning: no @return
[ERROR] boolean isEmptyElementTag() throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:806: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] boolean isEmptyElementTag() throws XmlPullParserException;
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:820: warning: no @return
[ERROR] int getAttributeCount();
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:829: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:829: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:840: error: @param name not found
[ERROR] * @param zero based index of attribute
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:845: warning: no @param for index
[ERROR] String getAttributeNamespace(int index);
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:853: error: @param name not found
[ERROR] * @param zero based index of attribute
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:856: warning: no @param for index
[ERROR] String getAttributeName(int index);
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:865: error: @param name not found
[ERROR] * @param zero based index of attribute
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:868: warning: no @param for index
[ERROR] String getAttributePrefix(int index);
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:874: error: @param name not found
[ERROR] * @param zero based index of attribute
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:877: warning: no @param for index
[ERROR] String getAttributeType(int index);
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:884: error: @param name not found
[ERROR] * @param zero based index of attribute
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:887: warning: no @param for index
[ERROR] boolean isAttributeDefault(int index);
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:893: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:893: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:899: error: @param name not found
[ERROR] * @param zero based index of attribute
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:903: warning: no @param for index
[ERROR] String getAttributeValue(int index);
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:909: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:909: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:932: warning: no @return
[ERROR] int getEventType()
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:932: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] int getEventType()
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:941: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:941: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:942: error: bad use of '>'
[ERROR] *

NOTE: empty element (such as <tag/>) will be reported
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:944: error: bad use of '>'
[ERROR] * parsing equivalency of empty element to <tag></tag>.
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:944: error: bad use of '>'
[ERROR] * parsing equivalency of empty element to <tag></tag>.
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:954: warning: no @return
[ERROR] int next()
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:954: warning: no @throws for com.sforce.ws.parser.XmlPullParserException
[ERROR] int next()
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:954: warning: no @throws for java.io.IOException
[ERROR] int next()
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:962: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:962: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:973: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:973: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:979: error: bad use of '>'
[ERROR] * enabled and then returns XML tag, ex: <tag attr='val'>
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:981: error: bad use of '>'
[ERROR] * id enabled and then returns XML tag, ex: </tag>
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:990: error: bad use of '>'
[ERROR] * (ex. 'fo<o' from <!CDATA[fo<o]]>)
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:993: error: bad use of '>'
[ERROR] * return exact PI content ex: 'pi foo' from <?pi foo?>
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:996: error: bad use of '>'
[ERROR] * <?target data?> string "target data" may
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:998: error: bad use of '>'
[ERROR] *

COMMENT
return comment content ex. 'foo bar' from <!--foo bar-->
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1016: error: bad use of '>'
[ERROR] * [<!ENTITY % active.links "INCLUDE">]"
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1019: error: bad use of '>'
[ERROR] * [<!ENTITY % active.links "INCLUDE">]>
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1019: error: bad use of '>'
[ERROR] * [<!ENTITY % active.links "INCLUDE">]>
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1024: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1024: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1028: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1028: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1031: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1031: warning: empty

tag
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1046: warning: no @return
[ERROR] int nextToken()
[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1059: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1075: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1089: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1090: error: self-closing element not allowed
[ERROR] *


[ERROR] ^
[ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1077: error: element not closed: ol
[ERROR] * empty elements and elements that has non empty content, for example for input:


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:1120: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:40: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:54: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:55: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:59: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:65: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:70: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:79: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:96: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:101: error: tag not allowed here:


    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:105: error: tag not allowed here:


    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:108: error: tag not allowed here:


    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:115: error: tag not allowed here:


    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:116: error: bad use of '>'
    [ERROR] * xpp.setInput( new StringReader ( "<foo>Hello World!</foo>" ) );
    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:116: error: bad use of '>'
    [ERROR] * xpp.setInput( new StringReader ( "<foo>Hello World!</foo>" ) );
    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:135: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:143: error: self-closing element not allowed
    [ERROR] *


    [ERROR] ^
    [ERROR] /Development/wsc/src/main/java/com/sforce/ws/parser/XmlPullParser.java:149: error: reference not found
    [ERROR] * @see XmlPullParserFactory
    [ERROR] ^
    [ERROR]
    [ERROR] Command line was: /Library/Java/JavaVirtualMachines/jdk1.8.0_25.jdk/Contents/Home/bin/javadoc @options @packages
    [ERROR]
    [ERROR] Refer to the generated Javadoc files in '/Development/wsc/target/apidocs' dir.
    [ERROR] -> [Help 1]
    [ERROR]
    [ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
    [ERROR] Re-run Maven using the -X switch to enable full debug logging.
    [ERROR]
    [ERROR] For more information about the errors and possible solutions, please read the following articles:
    [ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoExecutionException

Windows -- tools trying to use wrong path for Java

All of my user and system paths are pointed to JDK7. JAVA_HOME is pointed to JDK7.

Java -version shows JDK7

When I attempt to compile a wsdl, an exception occurs:
FileNotFoundException: ....jre7\lib\tools.jar (clearly the wrong directory)

Login Issue.

I am getting the below error when execute the test file. Please help me.


Classpath:

export CLASSPATH=force-wsc-27.0.0.jar:force-partner-api-27.0.0.jar:force-metadata-api-27.0.0.jar:.


Error:

[LoginFault [ApiFault exceptionCode='INVALID_LOGIN'
exceptionMessage='Invalid username, password, security token; or user locked out.'
]
]

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
    at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
    at java.lang.Class.newInstance0(Class.java:355)
    at java.lang.Class.newInstance(Class.java:308)
    at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:627)
    at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:504)
    at com.sforce.ws.transport.SoapConnection.parseDetail(SoapConnection.java:229)
    at com.sforce.ws.transport.SoapConnection.createException(SoapConnection.java:203)
    at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:149)
    at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:98)
    at com.sforce.soap.partner.PartnerConnection.login(PartnerConnection.java:1031)
    at com.sforce.soap.partner.PartnerConnection.<init>(PartnerConnection.java:422)
    at com.sforce.soap.partner.Connector.newConnection(Connector.java:27)
    at test.login(test.java:83)
    at test.run(test.java:38)
    at test.main(test.java:33)

Java Code:

import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.InputStreamReader;
import java.io.IOException;
import com.sforce.soap.partner.DescribeGlobalResult;
import com.sforce.soap.partner.DescribeGlobalSObjectResult;
import com.sforce.soap.partner.DescribeSObjectResult;
import com.sforce.soap.partner.PartnerConnection;
import com.sforce.soap.partner.Error;
import com.sforce.soap.partner.Field;
import com.sforce.soap.partner.FieldType;
import com.sforce.soap.partner.GetUserInfoResult;
import com.sforce.soap.partner.LoginResult;
import com.sforce.soap.partner.PicklistEntry;
import com.sforce.soap.partner.QueryResult;
import com.sforce.soap.partner.SaveResult;
import com.sforce.ws.ConnectorConfig;
import com.sforce.ws.ConnectionException;
import com.sforce.soap.partner.sobject.SObject;

public class test {

PartnerConnection connection;

public static void main(String[] args) {

  test sample = new test();
  sample.run();

}

public void run() {
// Make a login call
if (login()) {
// Do a describe global

     // Log out
     logout();
  }

}

private boolean login() {
boolean success = false;

  try {
     ConnectorConfig config = new ConnectorConfig();
     config.setUsername("[email protected]");
     config.setPassword("Sforce1239XFYt0lLuMom7OWg70neGLZn");

     connection = com.sforce.soap.partner.Connector
                .newConnection(config);
     printUserInfo(config);

     success = true;
  } catch (ConnectionException ce) {
     ce.printStackTrace();
  } 

  return success;

}

private void printUserInfo(ConnectorConfig config) {
try {
GetUserInfoResult userInfo = connection.getUserInfo();

     System.out.println("\nLogging in ...\n");
     System.out.println("UserID: " + userInfo.getUserId());
     System.out.println("User Full Name: " + userInfo.getUserFullName());
     System.out.println("User Email: " + userInfo.getUserEmail());
     System.out.println();
     System.out.println("SessionID: " + config.getSessionId());
     System.out.println("Auth End Point: " + config.getAuthEndpoint());
     System.out
           .println("Service End Point: " + config.getServiceEndpoint());
     System.out.println();
  } catch (ConnectionException ce) {
     ce.printStackTrace();
  }

}

private void logout() {
try {
connection.logout();
System.out.println("Logged out.");
} catch (ConnectionException ce) {
ce.printStackTrace();
}
}

}


Username: [email protected]
Password: Sforce123

Illegal session faults not triggering session renewal

Hi all!

My sfdc instance was upgraded this weekend. As expected during the upgrade all sessions were expired, and calls to the soap api started to return an ApiFault:

ApiFault exceptionCode='INVALID_SESSION_ID' 
    exceptionMessage='Invalid Session ID found in SessionHeader: Illegal Session' 

I think this error code should be caught and trigger the SessionRenewer interface. Looking at the code in SoapConnection.java it's only doing this for a very specific exception message.

Metadata marshalling

Marshalling metadata objects to XML files with the WSC includes namespace identifiers ("n1:") in every tag. This is inconsistent with the files the Metadata API retrieves - is there a way to have it write without these?

Proxy returns "HTTP/1.1 407 Proxy Auth Required"

Hi, we use following code to connect to Salesforce using Partner API Java library (com.force.api.force-partner-api), and we tested tunneling through local proxy with proxy authentication (username and password).

I am using Fiddler Web Debugger to emulate proxy, having the proxy authentication credentials set to 1:1 (username: 1, password: 1).

When the following code runs it throws exception you can see below when trying to create Connection.

ConnectorConfig partnerConfig = new ConnectorConfig();
partnerConfig.setUsername(userName);
partnerConfig.setPassword(password);
partnerConfig.setAuthEndpoint("https://login.salesforce.com/services/Soap/u/32.0");
partnerConfig.setProxy("localhost", 8888);
partnerConfig.setProxyUsername("1");
partnerConfig.setProxyPassword("1");

partner = new PartnerConnection(partnerConfig);

Exception:

 com.sforce.ws.ConnectionException: Failed to send request to https://login.salesforce.com/services/Soap/u/32.0
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:121)
at com.sforce.soap.partner.PartnerConnection.login(PartnerConnection.java:1349)
at com.sforce.soap.partner.PartnerConnection.<init>(PartnerConnection.java:405)
...
 Caused by: java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Auth Required"
at sun.net.www.protocol.http.HttpURLConnection.doTunneling(HttpURLConnection.java:2083)
at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(AbstractDelegateHttpsURLConnection.java:183)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream0(HttpURLConnection.java:1281)
at sun.net.www.protocol.http.HttpURLConnection.getOutputStream(HttpURLConnection.java:1256)
at sun.net.www.protocol.https.HttpsURLConnectionImpl.getOutputStream(HttpsURLConnectionImpl.java:250)
at com.sforce.ws.transport.JdkHttpTransport.connectRaw(JdkHttpTransport.java:136)
at com.sforce.ws.transport.JdkHttpTransport.connectLocal(JdkHttpTransport.java:100)
at com.sforce.ws.transport.JdkHttpTransport.connectLocal(JdkHttpTransport.java:95)
at com.sforce.ws.transport.JdkHttpTransport.connect(JdkHttpTransport.java:91)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:95)
... 6 more

Note that the proxy authentication works otherwise, ie. when browsing the web it asks for credentials. Also when using just the proxy without authentication it works too. Only the proxy authentication doesn't work.

When I inspect the request using Fiddler I can see that the request doesn't have any auth headers as it should:

CONNECT login.salesforce.com:443 HTTP/1.1
User-Agent: Java/1.8.0_25
Host: login.salesforce.com
Accept: text/html, image/gif, image/jpeg, *; q=.2, */*; q=.2
Proxy-Connection: keep-alive

When I debug through the Partner API code I can see that it correctly sets the headers including the authentication headers (with value: Basic MTox, which is Base64 for "1:1"), in the class JdkHttpTransport, line 171:

    if (config.getProxyUsername() != null) {
        String token = config.getProxyUsername() + ":" + config.getProxyPassword();
        String auth = "Basic " + new String(Base64.encode(token.getBytes()));
        connection.addRequestProperty("Proxy-Authorization", auth);
        connection.addRequestProperty("Https-Proxy-Authorization", auth);
    }

However, magically the headers get lost and the request is send without them..

Does anyone know a solution to this? Thank you.

Marshalling ends after 16 KB

When marshalling a metadata object either to standard out or to a file, the output ceases after 16,384 bytes.

Missing import packages com.sforce.soap.*

Hi
When I build the package I see that the above are missing. As a result my code fails to compile.
Here is the code header that is causing the failure. Any help would be appreciated.

Exception in thread "main" java.lang.Error: Unresolved compilation problems:
EnterpriseConnection cannot be resolved to a type
Connector cannot be resolved

at Main.main(Main.java:30)

import com.sforce.soap.enterprise.Connector;
import com.sforce.soap.enterprise.DeleteResult;
import com.sforce.soap.enterprise.EnterpriseConnection;
import com.sforce.soap.enterprise.Error;
import com.sforce.soap.enterprise.QueryResult;
import com.sforce.soap.enterprise.SaveResult;
import com.sforce.soap.enterprise.sobject.Account;
import com.sforce.soap.enterprise.sobject.Contact;

fault error

I am getting the below exception :
com.sforce.ws.ConnectionException: Unexpected element. Parser was expecting element 'urn:enterprise.soap.sforce.com:upsertResponse' but found 'http://schemas.xmlsoap.org/soap/envelope/:Fault'
at com.sforce.ws.bind.TypeMapper.verifyTag(TypeMapper.java:386)
at com.sforce.ws.transport.SoapConnection.bind(SoapConnection.java:166)
at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:147)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:98)
at com.sforce.soap.enterprise.EnterpriseConnection.upsert(EnterpriseConnection.java:856)
at ...

this happen when the salesforce returns fault with session timeout.
the fix was applied @ver 23 but not appear @ver 28.0.0

the fix https://code.google.com/p/sfdc-wsc/issues/detail?id=64&can=1&q=Unexpected%20element.%20Parser%20was

InvalidSessionId despite a valid token.

[AsyncApiException exceptionCode='InvalidSessionId'
exceptionMessage='Invalid session id'
]

I keep getting the above error for all bulk queries I make.
I tested it with Postman extension and if I use the token for a query with header
"X-SFDC-Session" or for any rest api queries
then it works fine. So the error is not with the token being invalid.

The way im using the config connector is:

ConnectorConfig bulkConfig = new ConnectorConfig();
bulkConfig.setSessionId(oauthToken);
// The endpoint for the Bulk API service is the same as for the normal
// SOAP uri until the /Soap/ part. From here it's '/async/versionNumber'
String restEndpoint = partnerUrl.substring(0, partnerUrl.indexOf("Soap/")) + "async/29.0";
bulkConfig.setRestEndpoint(restEndpoint);
bulkConfig.setCompression(true);
bulkConnector = new BulkConnection(bulkConfig);

and then the bulk connector as:

job = new JobInfo();
job.setObject(objName);
job.setOperation(OperationEnum.query);
job.setConcurrencyMode(ConcurrencyMode.Parallel);
job.setContentType(ContentType.CSV);
job = bulkConnector.createJob(job);

But it gives me an InvalidSessionToken at the last line.

Ive checked the permissions and they seem to be fine.
I've tried everything I can think of but I cannot find a solution.

force-wsc is missing jar-with-dependencies for version 31.1.0

Is there a published jar-with-dependencies for 31.1.1 like there is for older versions (Maven central)? I'd like to get the official jar rather then building locally. I did build locally but noticed the size of the regular jar is slightly different than the published/released version. I'm having some trouble in production with the current version and want to be sure I used the exact right jar to build the code from the enterprise WSDL.

About com.sforce.ws.SessionRenewer

Hi,

Could you direct me to a resource on how to use the SessionRenewer interface to avoid INVALID_SESSION_ID exceptions when the session times out?

I am using a partner WSDL based SOAP integration.

Thanks,
Anand S

Build Issue

I followed the instructions in the Read Me. I pulled the main branch down using Subversion. Used Maven to do the build. A number of test cases failed.

Here is the summary
Tests run: 15, Failures: 6, Errors: 0, Skipped: 0

Here is an example of three of the six that failed....Any ideas? Thanks!

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.148 sec <<< FAILURE!
testGenerateSObjectSource(com.sforce.ws.codegen.AggregateCodeGeneratorTest) Time elapsed: 0.148 sec <<< FAILURE!
junit.framework.ComparisonFailure: null expected:</*[

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.02 sec <<< FAILURE!
testGenerateComplexTypeSource(com.sforce.ws.codegen.ComplexTypeCodeGeneratorTest) Time elapsed: 0.016 sec <<< FAILURE!
junit.framework.ComparisonFailure: null expected:<...ce.soap.partner.wsc;[

Tests run: 1, Failures: 1, Errors: 0, Skipped: 0, Time elapsed: 0.032 sec <<< FAILURE!
testGenerateConnectionSource(com.sforce.ws.codegen.ConnectionCodeGeneratorTest) Time elapsed: 0.032 sec <<< FAILURE!
junit.framework.ComparisonFailure: null expected:<...soap.partner.wsc130;[

When building WSC one unit test fails

I tried to build WSC from scratch and when I tried to build it using Maven,
one unit test fails. The name of the Unit Test class is 'ConnectionCodeGeneratorTest'

PartnerConnection.java generated by the API is different from what's inside \wsc\src\test\java\com\sforce\ws\codegen directory. They differ by some new lines.

Please look into this.

Thanks
Sanjay Wijeratne

getUsers_with_opportunity__r() is already defined

Getting the following error message when I try to generate enterprise.jar:
/tmp/wsc-scratch8115219967653003368tmp/com/sforce/soap/enterprise/sobject/User.java:4624: getUsers_with_opportunity__r() is already defined in com.sforce.soap.enterprise.sobject.User
public com.sforce.soap.enterprise.QueryResult getUsers_with_opportunity__r() {

Here's the command line I'm using:
java -classpath force-wsc-29.0.0.jar:/usr/local/lib/ST-4.0.8.jar:/usr/local/lib/antlr-4.2-complete.jar com.sforce.ws.tools.wsdlc wsdl.jsp.xml enterprise.jar

Here's my java version:
oliver@ubuntu:~/sfdc$ java -version
openjdk version "1.6.0-internal"
OpenJDK Runtime Environment (build 1.6.0-internal-fredrick_22_oct_2012_10_28-b00)
OpenJDK 64-Bit Server VM (build 20.0-b12, mixed mode)

Creating metadata.jar works fine.

No BigDecimal support in sforce jar libray

The TypeMapper class (com.sforce.ws.bind.TypeMapper.class) doesn't support the BigDecimal to Decimal conversion.
Although SF doesn't handle numeric fields larger than 18 digits, there is a loss of precision for large numbers when handling them as doubles that is affecting imports and exports to SF when using this library. We have seen this issue around a numeric field that represents currency where a loss of precision is not acceptable.

Is there any other way to support BigDecimals?

mvn test exception

when Run "mvn clean package -Dgpg.skip" in windows command.

error following :

Failed tests:
testGenerateSObjectSource(com.sforce.ws.codegen.SObjectCodeGeneratorTest)

Tests run: 15, Failures: 6, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 14.316 s
[INFO] Finished at: 2014-10-11T17:01:06+08:00
[INFO] Final Memory: 24M/299M
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal org.apache.maven.plugins:maven-surefire-plugin:2.7.1:test (default-test) on project force-wsc: There are test failures.
[ERROR]
[ERROR] Please refer to D:\wsc\wsc\target\surefire-reports for the individual test results.
[ERROR] -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException

Error generating the jar file

I was able to build the force-wsc-32.1.1-uber.jar file from wsc source just fine, but when I am trying to generate the client jar file for my salesforce enterprise wsdl with the below command

java -classpath target/force-wsc-32.1.1-uber.jar com.sforce.ws.tools.wsdlc mywsdlfile sf-ws-client.jar

I am running in to an issue with the below error message:

[WSC][wsdlc.main:71]Generating Java files from schema ...
[WSC][wsdlc.main:71]Generated 548 java files.
[WSC][wsdlc.main:71]Compiling to target 1.6...
warning: [options] bootstrap class path not set in conjunction with -source 1.6
1 warning
[WSC][wsdlc.main:71]Compiled 551 java files.
[WSC][wsdlc.main:71]Generating jar file ... sf-ws-client.jar
Exception in thread "main" java.lang.StringIndexOutOfBoundsException: String ind
ex out of range: -9

at java.lang.String.substring(String.java:1875)
at com.sforce.ws.codegen.Generator.generateJarFile(Generator.java:235)
at com.sforce.ws.tools.wsdlc.run(wsdlc.java:118)
at com.sforce.ws.tools.wsdlc.run(wsdlc.java:149)
at com.sforce.ws.tools.wsdlc.main(wsdlc.java:71)

Tried running with both Java 6 and Java 7 and in both the cases, it fails while creating the jar

Cannot Create .jar Files

I have been trying to generate .jar files for the last 3 days, and have been unsuccessful.

Here are the data files I have, in this folder:
C:\Robert_Data\SF.com Development\

  • enterprise.wsdl
  • metadata.wsdl
  • partner.wsdl
  • force-wsc-33.0.3.jar

I have been trying to run this: "java -classpath ./wsc-33.0.3.jar com.sforce.ws.tools.wsdlc enterprise.wsdl enterprise.jar"

and have consistently gotten this error:

Error: Could not find or load main class com.sforce.ws.tools.wsdlc

Can anyone help, please?

Suggestion: Make the case comparison in XmlObject.findField(String) case insensitive.

Changing:

if (child.getName().getLocalPart().equals(name)) {

to

if (child.getName().getLocalPart().equalsIgnoreCase(name)) {

in XmlObject.findField(String) would add almost no overhead and make the fetch of XmlObjects a lot less error prone. In my case a user is entering something "SOQL like SELECT accoiunt.owner.profile.name FROM Contact" and my code has to be smart enough to know that account.owner.profile.name should be treated as Account.Owner.Profile.Name to use XmlObject.findField easily.

when running command I get error

When running command follwing to generate Jar file I am getting error

java -classpath wsc-34.jar c:\Users\hitesh.patel\Documents\wsc-master\wsc\src\main\java\com\sforce\ws\tools.wsdlc ewsdl.wsdl ejar.jar

also

who do i execute following

git clone https://github.com/forcedotcom/wsc.git
mvn clean package

To skip the gpg signing, run the following command
mvn clean package -Dgpg.skip

SObject - MAX_DEPTH exceeded

We have a case from a Customer in where the MAX_DEPTH registered in the class src/main/java/com/sforce/async/SObject.java has been exceeded.

  • There is some reason in particular why this value is 5?
  • It can have a greater value?

If the answer is yes to the last one, we need to be able to change this value to another one. A constructor-arg or setter would be sufficient.

WSDL to JAR Compiler Complaint and Exit with Java 1.7

I have Java 1.7 installed. It would not build the partner.jar from WSDL without a code tweak. the -target was 1.6, but the -source was defaulting to 1.7 due to the fact that my javac is version 1.7. the compiler complained and exited and no code was generated.

Here is the patch:
diff --git a/src/main/java/com/sforce/ws/codegen/Compiler.java b/src/main/java/com/sforce/ws/codegen/Compiler.java
index 86be0ab..16a28cc 100644
--- a/src/main/java/com/sforce/ws/codegen/Compiler.java
+++ b/src/main/java/com/sforce/ws/codegen/Compiler.java
@@ -81,7 +81,7 @@ class Compiler {
Verbose.log("Compiling to target " + target + "... ");

     String[] args = { "-g", "-d", dir.getAbsolutePath(), "-sourcepath", dir.getAbsolutePath(),
  •            "-target", target };
    
  •            "-target", target, "-source", target };
    
     String[] call = new String[args.length + files.length];
    

@@ -102,4 +102,4 @@ class Compiler {

     Verbose.log("Compiled " + files.length + " java files.");
 }

-}
\ No newline at end of file
+}

ClassCastException making Transaction__c query

I'm getting the following error using the latest force-wsc v 31.1.0. Not sure if this is related to that upgrade.

I don't understand what would cause this as Transaction__c does implement XMLizable. What could be the cause?

Note also issue #69 might be related.

java.lang.ClassCastException: com.sforce.soap.enterprise.sobject.Transaction__c cannot be cast to com.sforce.ws.bind.XMLizable
at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:650)
at com.sforce.ws.bind.TypeMapper.readArray(TypeMapper.java:551)
at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:529)
at com.sforce.soap.enterprise.QueryResult.loadFields(QueryResult.java:137)
at com.sforce.soap.enterprise.QueryResult.load(QueryResult.java:121)
at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:651)
at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:527)
at com.sforce.soap.enterprise.QueryResponse_element.loadFields(QueryResponse_element.java:62)
at com.sforce.soap.enterprise.QueryResponse_element.load(QueryResponse_element.java:54)
at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:651)
at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:527)
at com.sforce.ws.transport.SoapConnection.bind(SoapConnection.java:174)
at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:148)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:99)
at com.sforce.soap.enterprise.EnterpriseConnection.query(EnterpriseConnection.java:674)

enable SOAP XML logging when invoke web service

Hi,

I need to see what actually is send and received when something is failing, I review the code and see like that is no logging for this.

the code is pretty simple to implements:

make a decorator Writer:

private class EchoWriter extends Writer
{
    Writer out;

    StringBuilder buf = new StringBuilder();

    public EchoWriter(Writer out)
    {
        this.out = out;
    }

    public void write(String b) throws IOException
    {
        buf.append(b);
        out.write(b);
    }

    public void write(int b) throws IOException 
    {           
        buf.append((char)b);
        out.write(b);
    }

    public void write(char[] b) throws IOException 
    {           
        //System.out.print(b);
        out.write(b);           
    }

    public void write(String b, int offset, int len) throws IOException 
    {       
        //System.out.print(b);
        out.write(b, offset, len);          
    }

    public void write(char[] b, int offset, int len) throws IOException 
    {           
        //System.out.print(b);
        out.write(b, offset, len);          
    }

    public void close() throws IOException
    {
        out.close();
    }

    public void flush() throws IOException
    {
        System.out.println(buf.toString());  //logging start here
        System.out.println("-----------------");            
        buf = new StringBuilder();

        out.flush();
    }
}

add it to

MXSerializer.java

out = new EchoWriter(new OutputStreamWriter(os));

and that it !

Java Generics #information

Libraries generated by wsc does not use List, but rather old style arrays.

Can we configure it to use Generics, lists, maps, etc? Is there an example available for this?

internal network error is not exposed

I met an error "input stream can not be null" when running dataloader with Bulk API.

It finally turned out that it was caused by the following exception due to proxy authentication error.

java.io.IOException: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 407 Proxy Authentication Required"
        at sun.net.www.protocol.http.HttpURLConnection.doTunneling(Unknown Source)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getInputStream(Unknown Source)
        at com.sforce.async.BulkConnection.doHttpGet(BulkConnection.java:466)
        at com.sforce.async.BulkConnection.getJobStatus(BulkConnection.java:530)
        at com.salesforce.dataloader.action.visitor.BulkApiVisitorUtil.periodicCheckStatus(BulkApiVisitorUtil.java:148)
        at com.salesforce.dataloader.action.visitor.BulkLoadVisitor.doOneBatch(BulkLoadVisitor.java:190)
        at com.salesforce.dataloader.action.visitor.BulkLoadVisitor.createBatches(BulkLoadVisitor.java:167)
        at com.salesforce.dataloader.action.visitor.BulkLoadVisitor.loadBatch(BulkLoadVisitor.java:134)
        at com.salesforce.dataloader.action.visitor.DAOLoadVisitor.flushRemaining(DAOLoadVisitor.java:125)
        at com.salesforce.dataloader.action.visitor.BulkLoadVisitor.flushRemaining(BulkLoadVisitor.java:281)
        at com.salesforce.dataloader.action.AbstractLoadAction.flush(AbstractLoadAction.java:92)
        at com.salesforce.dataloader.action.AbstractAction.execute(AbstractAction.java:131)
        at com.salesforce.dataloader.controller.Controller.executeAction(Controller.java:121)
        at com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:149)
        at com.salesforce.dataloader.process.ProcessRunner.run(ProcessRunner.java:100)
        at com.salesforce.dataloader.process.ProcessRunner.main(ProcessRunner.java:253)

Here is the place where the exception occured.
https://github.com/forcedotcom/wsc/blob/29.0.0/src/main/java/com/sforce/async/BulkConnection.java#L466

It was very difficult to know the root cause because the exception is hidden.
It would be better if wsc exposes it in any way.

Date serialization issue

There appears to be a fairly significant date serialization issue in the codebase:

Date fields are currently getting generated as a field of type Calendar. When the field is serialized, the schema type information is ignored and the CalendarCodec is simply used to produce the date value is yyyy-MM-dd'T'HH:mm:ss blah format. As the calendar is being adjusted for GMT, the day portion of the calendar may be reduced by a day. As Salesforce ignores the time portion for date fields, we end up with a date that is reduced by a day.
The offending code is at com.sforce.ws.bind.TypeMapper.writeSingleObject (line 357):

else if (value instanceof Calendar || value instanceof Date) {
String s = calendarCodec.getValueAsString(value);
writeSimpleType(out, info, s, true, Calendar.class.getName());
}

Force TLS on FetchOptions

Please call FetchOptions.validateCertificate() on every HTTPS connection.
src/main/java/com/sforce/ws/transport/GaeHttpTransport.java:149
By default the certificate validation is not performed which may lead to MitM attacks.

Using setField() in setType() (SObject) prevents insert/update of Account.Type

Since SObject.setType() uses setField() I do not believe it is possible to update/insert Account.type. An attempt to do so throws an "unknown sobject -- try adding __c to the object name" type error (if setType is called before setField("type", ...). If setType is called after setField("type",..." the the update to Account.type is ignored.

XmlObject.findField(name) should break out of the cycle as soon as the child with requested name is found

Current version of XmlObject.findField(name) looks like this

private XmlObject findField(String name) {
    XmlObject item = null;

    for (XmlObject child : children) {
        if (child.getName().getLocalPart().equals(name)) {
            item = child;
         }
    }

    return item;
}

Is there any reason why there is no break; right after item = child; like so:

private XmlObject findField(String name) {
    XmlObject item = null;

    for (XmlObject child : children) {
        if (child.getName().getLocalPart().equals(name)) {
            item = child;
            break;
         }
    }

    return item;
}

Existing version works very slow when query returns lots of fields and records.

com.sforce.ws.ConnectionException: Unexpected element

Using the WSC#29, we receive the following error when trying to call the DescribeSObjectResult ds = ecn.describeSObject(sfObject); and a similar error when trying to call DescribeLayoutResult layout = ecn.describeLayout(sfObject, recTypeIds); depending on whether we use the v25 or v29 endpoint. We were able to work around this issue using the lax-minoccurs-checking JVM switch. It appears that elements that are not required (not being sent in responses from salesforce) are mistakenly being marked as minOccurs = 1, either through it not being specified or being directly marked as minOccurs = 1.

Exception details:
com.sforce.ws.ConnectionException: Unexpected element. Parser was expecting element 'urn:enterprise.soap.sforce.com:compactLayoutable' but found 'urn:enterprise.soap.sforce.com:createable'
at com.sforce.ws.bind.TypeMapper.verifyTag(TypeMapper.java:387)
at com.sforce.ws.bind.TypeMapper.verifyElement(TypeMapper.java:416)
at com.sforce.soap.enterprise.DescribeSObjectResult.loadFields(DescribeSObjectResult.java:803)
at com.sforce.soap.enterprise.DescribeSObjectResult.load(DescribeSObjectResult.java:787)
at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:629)
at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:505)
at com.sforce.soap.enterprise.DescribeSObjectResponse_element.loadFields(DescribeSObjectResponse_element.java:67)
at com.sforce.soap.enterprise.DescribeSObjectResponse_element.load(DescribeSObjectResponse_element.java:58)
at com.sforce.ws.bind.TypeMapper.readSingle(TypeMapper.java:629)
at com.sforce.ws.bind.TypeMapper.readObject(TypeMapper.java:505)
at com.sforce.ws.transport.SoapConnection.bind(SoapConnection.java:172)
at com.sforce.ws.transport.SoapConnection.receive(SoapConnection.java:146)
at com.sforce.ws.transport.SoapConnection.send(SoapConnection.java:110)
at com.sforce.soap.enterprise.EnterpriseConnection.describeSObject(EnterpriseConnection.java:547)
at org.stjude.crm.EventProxy.listSFPickListItems(EventProxy.java:982)
at org.stjude.crm.EventProxy.listSuffixes(EventProxy.java:3686)
at org.stjude.events.ui.controllers.AbstractControllerBase.getSuffixes(AbstractControllerBase.java:257)

Is there any problem using wsc library in open source project?

Hi,

We are working on our open source project which used the code from force-wsc and force-partner-api. Is there any problems including force-wsc/partner-api source code or library in open source project ( besides the standard refer to wsc license file)?

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.