[
https://issues.apache.org/jira/browse/GEODE-6640?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
xiaojian zhou updated GEODE-6640:
---------------------------------
Description:
{noformat}
PdxInstance pdxEmployee1 =
ClusterStartupRule.getCache().createPdxInstanceFactory(Employee.class.getName())
.writeString("id", "id1").writeString("name",
"Emp1").writeInt("age", 55).create();
String pdxkey1 = "pdxkey1";
Region<Object, Object> region =
ClusterStartupRule.getCache().getRegion(REGION_NAME);
region.put(pdxkey1, pdxEmployee1);
region.put("key1", new Employee("key1", "name1", 30));
region.invalidate(pdxkey1);
region.invalidate("key1");
await().untilAsserted(() -> {
assertThat(region.get(pdxkey1)).isNotNull();
assertThat(region.get("key1")).isNotNull();
});
{noformat}
was:
{noformat}
If run following test,
@Test
public void serverStartupSucceedsForPartitionedRegionAfterMappingIsCreated()
throws Exception {
createTable();
// createPartitionRegionUsingGfsh();
createRegionUsingGfsh();
createJdbcDataSource();
createMapping(REGION_NAME, DATA_SOURCE_NAME, true); // could be false
server.invoke(() -> {
final String key = "emp1";
final java.sql.Date sqlDate = java.sql.Date.valueOf("1982-09-11");
final Date jdkDate = new Date(sqlDate.getTime());
PdxInstance testDateInput =
ClusterStartupRule.getCache().createPdxInstanceFactory(TestDate.class.getName())
.writeString("id", "key1").writeDate(TestDate.DATE_FIELD_NAME,
jdkDate).create();
Region<Object, Object> region =
ClusterStartupRule.getCache().getRegion(REGION_NAME);
region.put(key, testDateInput);
region.invalidate(key);
Object entry = region.get(key);
assertThat(entry).isNotNull();
});
It will fail with
at
org.apache.geode.test.dunit.rules.ClusterStartupRule$1.evaluate(ClusterStartupRule.java:146)
at org.junit.rules.TestWatcher$1.evaluate(TestWatcher.java:55)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:325)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:78)
at
org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:57)
at org.junit.runners.ParentRunner$3.run(ParentRunner.java:290)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:71)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:288)
at org.junit.runners.ParentRunner.access$000(ParentRunner.java:58)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:268)
at org.junit.rules.ExternalResource$1.evaluate(ExternalResource.java:48)
at org.junit.rules.RunRules.evaluate(RunRules.java:20)
at org.junit.runners.ParentRunner.run(ParentRunner.java:363)
at org.junit.runner.JUnitCore.run(JUnitCore.java:137)
at
com.intellij.junit4.JUnit4IdeaTestRunner.startRunnerWithArgs(JUnit4IdeaTestRunner.java:68)
at
com.intellij.rt.execution.junit.IdeaTestRunner$Repeater.startRunnerWithArgs(IdeaTestRunner.java:47)
at
com.intellij.rt.execution.junit.JUnitStarter.prepareStreamsAndStart(JUnitStarter.java:242)
at
com.intellij.rt.execution.junit.JUnitStarter.main(JUnitStarter.java:70)
Caused by: org.apache.geode.connectors.jdbc.JdbcConnectorException: You have an
error in your SQL syntax; check the manual that corresponds to your MySQL
server version for the right syntax to use near 'WHERE `id` = 'emp1'' at line 1
com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: You have an error in
your SQL syntax; check the manual that corresponds to your MySQL server version
for the right syntax to use near 'WHERE `id` = 'emp1'' at line 1
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)
at com.mysql.jdbc.Util.getInstance(Util.java:408)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2486)
at
com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:1858)
at
com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2079)
at
com.mysql.jdbc.PreparedStatement.executeUpdateInternal(PreparedStatement.java:2013)
at
com.mysql.jdbc.PreparedStatement.executeLargeUpdate(PreparedStatement.java:5104)
at
com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:1998)
at
com.zaxxer.hikari.pool.ProxyPreparedStatement.executeUpdate(ProxyPreparedStatement.java:61)
at
com.zaxxer.hikari.pool.HikariProxyPreparedStatement.executeUpdate(HikariProxyPreparedStatement.java)
at
org.apache.geode.connectors.jdbc.internal.SqlHandler.executeWriteStatement(SqlHandler.java:251)
at
org.apache.geode.connectors.jdbc.internal.SqlHandler.write(SqlHandler.java:235)
at
org.apache.geode.connectors.jdbc.JdbcWriter.writeEvent(JdbcWriter.java:85)
at
org.apache.geode.connectors.jdbc.JdbcWriter.beforeCreate(JdbcWriter.java:60)
at
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.doLocalWrite(SearchLoadAndWriteProcessor.java:878)
at
org.apache.geode.internal.cache.SearchLoadAndWriteProcessor.doNetWrite(SearchLoadAndWriteProcessor.java:209)
at
org.apache.geode.internal.cache.DistributedRegion.cacheWriteBeforePut(DistributedRegion.java:2638)
at
org.apache.geode.internal.cache.map.RegionMapPut.invokeCacheWriter(RegionMapPut.java:230)
{noformat}
Summary: Need to add a integration test case to do put then get to
region with Jdbc mapping (was: put an entry to region with Jdbc mapping and
get back fail with JdbcConnectorException)
> Need to add a integration test case to do put then get to region with Jdbc
> mapping
> ----------------------------------------------------------------------------------
>
> Key: GEODE-6640
> URL: https://issues.apache.org/jira/browse/GEODE-6640
> Project: Geode
> Issue Type: Bug
> Reporter: xiaojian zhou
> Priority: Major
>
> {noformat}
> PdxInstance pdxEmployee1 =
>
> ClusterStartupRule.getCache().createPdxInstanceFactory(Employee.class.getName())
> .writeString("id", "id1").writeString("name",
> "Emp1").writeInt("age", 55).create();
> String pdxkey1 = "pdxkey1";
> Region<Object, Object> region =
> ClusterStartupRule.getCache().getRegion(REGION_NAME);
> region.put(pdxkey1, pdxEmployee1);
> region.put("key1", new Employee("key1", "name1", 30));
> region.invalidate(pdxkey1);
> region.invalidate("key1");
> await().untilAsserted(() -> {
> assertThat(region.get(pdxkey1)).isNotNull();
> assertThat(region.get("key1")).isNotNull();
> });
> {noformat}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)