You need to sign in to do that
Don't have an account?

Exception on Query
I am trying to query the Account object.
QueryResult qr = xbinding.query("select Id,Name from Account");
This throws a null pointer exception everytime. I have logged in, and set the session header for xbinding. What else could be stopping me from running this query? Any help would be greatly appreciated, i've been stuck on this for hours....
faultCode: {urn:fault.partner.soap.sforce.com}INVALID_FIELD
faultSubcode:
faultString: INVALID_FIELD:
select Id,Name,Id from Account
^
ERROR at Row:1:Column:16
duplicate field selected: Id
faultActor:
faultNode:
faultDetail:
{urn:fault.partner.soap.sforce.com}fault:
<sf:exceptionCode>INVALID_FIELD</sf:exceptionCode>
<sf:exceptionMessage>
select Id,Name,Id from Account
^
ERROR at Row:1:Column:16
duplicate field selected: Id</sf:exceptionMessage>
<sf:row>1</sf:row>
<sf:column>16</sf:column>
INVALID_FIELD:
select Id,Name,Id from Account
^
ERROR at Row:1:Column:16
duplicate field selected: Id
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
orAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:308)
at java.lang.Class.newInstance(Class.java:261)
at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer
.java:125)
at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer
.java:111)
at com.sforce.soap.partner.fault.InvalidFieldFault.getDeserializer(Inval
idFieldFault.java:88)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(B
aseDeserializerFactory.java:176)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerA
s(BaseDeserializerFactory.java:117)
at org.apache.axis.encoding.DeserializationContextImpl.getDeserializer(D
eserializationContextImpl.java:466)
at org.apache.axis.encoding.DeserializationContextImpl.getDeserializerFo
rType(DeserializationContextImpl.java:481)
at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaul
tDetailsBuilder.java:172)
at org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1672)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2629)
at org.apache.axis.client.Call.invoke(Call.java:2599)
at org.apache.axis.client.Call.invoke(Call.java:2279)
at org.apache.axis.client.Call.invoke(Call.java:2200)
at org.apache.axis.client.Call.invoke(Call.java:1714)
at com.sforce.soap.partner.SoapBindingStub.query(SoapBindingStub.java:15
42)
at LeadScorer.getData(LeadScorer.java:285)
at LeadScorer.scoreIt(LeadScorer.java:174)
at LeadScorer.main(LeadScorer.java:85)
Hey, thanks a lot Simon. I did not know that i could not select the same column more than once. Now that i have that problem solved, i have a new one. It seems that my queryMore is throwing an exception now. Here is the stack trace:
AxisFault
faultCode: {urn:fault.partner.soap.sforce.com}INVALID_QUERY_LOCATOR
faultSubcode:
faultString: INVALID_QUERY_LOCATOR: invalid query locator
faultActor:
faultNode:
faultDetail:
{urn:fault.partner.soap.sforce.com}fault:
<sf:exceptionCode>INVALID_QUERY_LOCATOR</sf:exceptionCode>
<sf:exceptionMessage>invalid query locator</sf:exceptionMessage>
INVALID_QUERY_LOCATOR: invalid query locator
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstruct
orAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingC
onstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:274)
at java.lang.Class.newInstance0(Class.java:308)
at java.lang.Class.newInstance(Class.java:261)
at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer
.java:125)
at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer
.java:111)
at com.sforce.soap.partner.fault.InvalidQueryLocatorFault.getDeserialize
r(InvalidQueryLocatorFault.java:84)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.
java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAcces
sorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:324)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(B
aseDeserializerFactory.java:176)
at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerA
s(BaseDeserializerFactory.java:117)
at org.apache.axis.encoding.DeserializationContextImpl.getDeserializer(D
eserializationContextImpl.java:466)
at org.apache.axis.encoding.DeserializationContextImpl.getDeserializerFo
rType(DeserializationContextImpl.java:481)
at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaul
tDetailsBuilder.java:172)
at org.apache.axis.encoding.DeserializationContextImpl.startElement(Dese
rializationContextImpl.java:963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1672)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.content(Parser2.java:1963)
at org.apache.crimson.parser.Parser2.maybeElement(Parser2.java:1691)
at org.apache.crimson.parser.Parser2.parseInternal(Parser2.java:667)
at org.apache.crimson.parser.Parser2.parse(Parser2.java:337)
at org.apache.crimson.parser.XMLReaderImpl.parse(XMLReaderImpl.java:448)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:345)
at org.apache.axis.encoding.DeserializationContextImpl.parse(Deserializa
tionContextImpl.java:242)
at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:538)
at org.apache.axis.Message.getSOAPEnvelope(Message.java:376)
at org.apache.axis.client.Call.invokeEngine(Call.java:2629)
at org.apache.axis.client.Call.invoke(Call.java:2599)
at org.apache.axis.client.Call.invoke(Call.java:2279)
at org.apache.axis.client.Call.invoke(Call.java:2200)
at org.apache.axis.client.Call.invoke(Call.java:1714)
at com.sforce.soap.partner.SoapBindingStub.queryMore(SoapBindingStub.jav
a:1573)
at LeadScorer.getData(LeadScorer.java:302)
at LeadScorer.scoreIt(LeadScorer.java:175)
at LeadScorer.main(LeadScorer.java:85)
I am not sure if it returns me a query locator, but im trying to use:
qr = xbinding.queryMore(qr.getQueryLocator());
The timeout should not be a problem, as i am grabbing only 1 row of data per query and queryMore call.
I am also not sure of how many cursors i have. The original query works fine, does what it should. My code fails on the first call to queryMore. Does that explain it well enough? do i need to include more code?