Fixes a couple of test related issues for debezium-core
* fixes a java.sql.Date conversion test to take into account zone offsets * makes sure the ZK DB is closed during testing, otherwise file handles may leak and cause test failures
This commit is contained in:
parent
a8efb99b7d
commit
a6dddaed92
@ -5,10 +5,12 @@
|
||||
*/
|
||||
package io.debezium.jdbc;
|
||||
|
||||
import java.time.Instant;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalTime;
|
||||
import java.time.Month;
|
||||
import java.time.ZonedDateTime;
|
||||
import java.time.temporal.ChronoField;
|
||||
import java.util.Calendar;
|
||||
|
||||
import org.junit.Before;
|
||||
@ -38,12 +40,13 @@ public void beforeEach() {
|
||||
public void shouldAdaptSqlDate() {
|
||||
// '2014-09-08', '17:51:04.777', '2014-09-08 17:51:04.777', '2014-09-08 17:51:04.777'
|
||||
java.sql.Date sqlDate = createSqlDate(2014, Month.SEPTEMBER, 8);
|
||||
ZonedDateTime expectedDateInTargetTZ = ZonedDateTime.ofInstant(Instant.ofEpochMilli(sqlDate.getTime()), adapter.targetZoneId());
|
||||
ZonedDateTime zdt = adapter.toZonedDateTime(sqlDate);
|
||||
// The date should match ...
|
||||
LocalDate date = zdt.toLocalDate();
|
||||
assertThat(date.getYear()).isEqualTo(2014);
|
||||
assertThat(date.getMonth()).isEqualTo(Month.SEPTEMBER);
|
||||
assertThat(date.getDayOfMonth()).isEqualTo(8);
|
||||
assertThat(date.getDayOfMonth()).isEqualTo(expectedDateInTargetTZ.get(ChronoField.DAY_OF_MONTH));
|
||||
// There should be no time component ...
|
||||
LocalTime time = zdt.toLocalTime();
|
||||
assertThat(time.getHour()).isEqualTo(0);
|
||||
|
@ -41,6 +41,7 @@ public class ZookeeperServer {
|
||||
private volatile File dataDir;
|
||||
private volatile File snapshotDir;
|
||||
private volatile File logDir;
|
||||
private volatile ZooKeeperServer server;
|
||||
|
||||
/**
|
||||
* Create a new server instance.
|
||||
@ -75,7 +76,8 @@ public synchronized ZookeeperServer startup() throws IOException {
|
||||
this.logDir.mkdirs();
|
||||
|
||||
try {
|
||||
factory.startup(new ZooKeeperServer(snapshotDir, logDir, tickTime));
|
||||
server = new ZooKeeperServer(snapshotDir, logDir, tickTime);
|
||||
factory.startup(server);
|
||||
return this;
|
||||
} catch (InterruptedException e) {
|
||||
factory = null;
|
||||
@ -100,6 +102,12 @@ public synchronized void shutdown(boolean deleteData) {
|
||||
if (factory != null) {
|
||||
try {
|
||||
factory.shutdown();
|
||||
try {
|
||||
// Zookeeper 3.4.6 does not close the ZK DB during shutdown, so we must do this here to avoid file locks and open handles...
|
||||
server.getZKDatabase().close();
|
||||
} catch (IOException e) {
|
||||
LOGGER.error("Unable to close zookeeper DB", e);
|
||||
}
|
||||
} finally {
|
||||
factory = null;
|
||||
if (deleteData) {
|
||||
|
Loading…
Reference in New Issue
Block a user