function readOnly(count){ }
Starting November 20, the site will be set to read-only. On December 4, 2023,
forum discussions will move to the Trailblazer Community.
+ Start a Discussion
ty_rennerty_renner 

INVALID_QUERY_LOCATOR

I see the following exception when one of our queries was modified. When does this occur and what is the workaround for it?

AxisFault

faultCode: {urn:fault.enterprise.soap.sforce.com}INVALID_QUERY_LOCATOR

faultSubcode:

faultString: INVALID_QUERY_LOCATOR: invalid query locator

faultActor:

faultNode:

faultDetail:

{urn:fault.enterprise.soap.sforce.com}fault:<ns1:exceptionCode>INVALID_QUERY_LOCATOR</ns1:exceptionCode><ns1:exceptionMessage>invalid query locator</ns1:exceptionMessage>

INVALID_QUERY_LOCATOR: invalid query locator

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: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:104)

at org.apache.axis.encoding.ser.BeanDeserializer.<init>(BeanDeserializer.java:90)

at com.sforce.soap.enterprise.fault.InvalidQueryLocatorFault.getDeserializer(InvalidQueryLocatorFault.java:84)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)

at java.lang.reflect.Method.invoke(Method.java:324)

at org.apache.axis.encoding.ser.BaseDeserializerFactory.getSpecialized(BaseDeserializerFactory.java:154)

at org.apache.axis.encoding.ser.BaseDeserializerFactory.getDeserializerAs(BaseDeserializerFactory.java:84)

at org.apache.axis.encoding.DeserializationContext.getDeserializer(DeserializationContext.java:464)

at org.apache.axis.encoding.DeserializationContext.getDeserializerForType(DeserializationContext.java:547)

at org.apache.axis.message.SOAPFaultDetailsBuilder.onStartChild(SOAPFaultDetailsBuilder.java:157)

at org.apache.axis.encoding.DeserializationContext.startElement(DeserializationContext.java:1035)

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.DeserializationContext.parse(DeserializationContext.java:227)

at org.apache.axis.SOAPPart.getAsSOAPEnvelope(SOAPPart.java:696)

at org.apache.axis.Message.getSOAPEnvelope(Message.java:424)

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:2765)

at org.apache.axis.client.Call.invoke(Call.java:2748)

at org.apache.axis.client.Call.invoke(Call.java:2424)

at org.apache.axis.client.Call.invoke(Call.java:2347)

at org.apache.axis.client.Call.invoke(Call.java:1804)

at com.sforce.soap.enterprise.SoapBindingStub.queryMore(SoapBindingStub.java:2237)

Fernando Sifuentes 9Fernando Sifuentes 9
You are having problems with the governor limits of salesforce. Too many records are being pulled with your query. You can use a list to store the query example:
 
List<Account> accountsAndCases= [SELECT id, name, (SELECT id, subject, description FROM Cases) FROM Account];
 
Then work with the list and at the end update your database. Or maybe you can also use the limit call at the end of your query to limit the amount of records you’ll get. Example: SELECT id, name FROM Account limit 100;
 
 
This link might be helpful:
https://help.salesforce.com/apex/HTViewSolution?id=000004410&language=en_US
 
CRM Engineer
Levementum
www.Levementum.com