[
https://issues.apache.org/jira/browse/GEODE-2145?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15955527#comment-15955527
]
Avinash Dongre commented on GEODE-2145:
---------------------------------------
I tried to reproduce this issue with following test, But I could not reproduce .
{code}
public class BugGeode2145DUnitTest extends LocatorTestBase {
public BugGeode2145DUnitTest() {
super();
}
@Override
public final void postSetUp() throws Exception {
disconnectAllFromDS();
}
@Override
protected final void postTearDownLocatorTestBase() throws Exception {
disconnectAllFromDS();
}
@Test
public void testOqlWithEntrySet() {
Host host = Host.getHost(0);
VM locator = host.getVM(0);
VM server1 = host.getVM(1);
VM client = host.getVM(3);
final int locatorPort =
AvailablePort.getRandomAvailablePort(AvailablePort.SOCKET);
final String locatorHost = NetworkUtils.getServerHostName(host);
locator.invoke("Start Locator", () -> startLocator(locatorHost,
locatorPort, ""));
String locString = getLocatorString(host, locatorPort);
server1.invoke("Start BridgeServer",
() -> startBridgeServer(locString));
client.invoke("create region and insert, query with entrySet", () -> {
ClientCacheFactory ccf = new ClientCacheFactory();
ccf.addPoolLocator(locatorHost, locatorPort);
ClientCache cache = ccf.create();
Region region =
cache.createClientRegionFactory(ClientRegionShortcut.CACHING_PROXY).create(REGION_NAME);
for (int i = 0; i < 10; i++) {
region.put(i, i * 100);
}
SelectResults results = (SelectResults) cache.getQueryService()
.newQuery("select * from /" + REGION_NAME + ".entrySet").execute();
assertEquals(10, results.asList().size());
ClientCacheFactory.getAnyInstance().close();
});
server1.invoke("Stopping BridgeServer", () -> stopBridgeServer());
}
private void startBridgeServer(final String locString) throws IOException {
Properties props = new Properties();
props.setProperty(MCAST_PORT, "0");
props.setProperty(LOCATORS, locString);
DistributedSystem ds = getSystem(props);
Cache cache = CacheFactory.create(ds);
CacheServer server = cache.addCacheServer();
server.setPort(0);
server.start();
cache.createRegionFactory(RegionShortcut.PARTITION).create(REGION_NAME);
}
private void stopBridgeServer() {
CacheFactory.getAnyInstance().close();
}
}
{code}
> A valid query in GFSH appears not to work from Java
> ---------------------------------------------------
>
> Key: GEODE-2145
> URL: https://issues.apache.org/jira/browse/GEODE-2145
> Project: Geode
> Issue Type: Bug
> Reporter: Jared Stewart
>
> The following query works from gfsh:
> {code}
> gfsh> query --query="select * from /RegionA.entrySet"
> {code}
> but appears not work from a Java client:
> {code}
> Object result = queryService.newQuery("select * from
> /RegionA.entrySet").execute();
> {code}
> resulting in this error:
> {code}
> Exception in thread "main"
> org.apache.geode.cache.client.ServerOperationException: remote server on
> pdx2-office-dhcp4(48651:loner):60244:8a112bad:
> org.apache.geode.SerializationException: failed serializing object
> at
> org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:675)
> at
> org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:772)
> at
> org.apache.geode.cache.client.internal.OpExecutorImpl.handleException(OpExecutorImpl.java:603)
> at
> org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:165)
> at
> org.apache.geode.cache.client.internal.OpExecutorImpl.execute(OpExecutorImpl.java:110)
> at
> org.apache.geode.cache.client.internal.PoolImpl.execute(PoolImpl.java:697)
> at
> org.apache.geode.cache.client.internal.QueryOp.execute(QueryOp.java:59)
> at
> org.apache.geode.cache.client.internal.ServerProxy.query(ServerProxy.java:65)
> at
> org.apache.geode.cache.query.internal.DefaultQuery.executeOnServer(DefaultQuery.java:440)
> at
> org.apache.geode.cache.query.internal.DefaultQuery.execute(DefaultQuery.java:316)
> at
> org.apache.geode.cache.query.internal.DefaultQuery.execute(DefaultQuery.java:298)
> at com.jaredjstewart.ReadOnlyClient.main(ReadOnlyClient.java:58)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
> at
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
> at java.lang.reflect.Method.invoke(Method.java:498)
> at com.intellij.rt.execution.application.AppMain.main(AppMain.java:147)
> Caused by: org.apache.geode.SerializationException: failed serializing object
> at
> org.apache.geode.internal.cache.tier.sockets.Message.serializeAndAddPart(Message.java:399)
> at
> org.apache.geode.internal.cache.tier.sockets.Message.addObjPart(Message.java:344)
> at
> org.apache.geode.internal.cache.tier.sockets.BaseCommand.writeQueryResponseChunk(BaseCommand.java:720)
> at
> org.apache.geode.internal.cache.tier.sockets.BaseCommandQuery.sendResultsAsObjectPartList(BaseCommandQuery.java:507)
> at
> org.apache.geode.internal.cache.tier.sockets.BaseCommandQuery.processQueryUsingParams(BaseCommandQuery.java:228)
> at
> org.apache.geode.internal.cache.tier.sockets.BaseCommandQuery.processQuery(BaseCommandQuery.java:65)
> at
> org.apache.geode.internal.cache.tier.sockets.command.Query.cmdExecute(Query.java:96)
> at
> org.apache.geode.internal.cache.tier.sockets.BaseCommand.execute(BaseCommand.java:141)
> at
> org.apache.geode.internal.cache.tier.sockets.ServerConnection.doNormalMsg(ServerConnection.java:776)
> at
> org.apache.geode.internal.cache.tier.sockets.ServerConnection.doOneMessage(ServerConnection.java:904)
> at
> org.apache.geode.internal.cache.tier.sockets.ServerConnection.run(ServerConnection.java:1160)
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
> at
> org.apache.geode.internal.cache.tier.sockets.AcceptorImpl$1$1.run(AcceptorImpl.java:519)
> at java.lang.Thread.run(Thread.java:745)
> {code}
--
This message was sent by Atlassian JIRA
(v6.3.15#6346)