You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
There might be a ClassCastException happening when starting the TestingZooKeeper instance. The following test reproduces the issue:
@Test
public void testTestingZooKeeperServer() throws Exception
{
final Map<String, Object> customProperties = new HashMap<>();
customProperties.put("maxSessionTimeout", 60_000);
final Path tmpDirPath = Files.createTempDirectory("tmp-"); final InstanceSpec instanceSpec = new InstanceSpec(tmpDirPath.toFile(), 0, 0, 0, true, 0, 10, 1, customProperties, "host-name"); final QuorumConfigBuilder quorumConfigBuilder = new QuorumConfigBuilder(instanceSpec); final TestingZooKeeperServer zkServer = new TestingZooKeeperServer(quorumConfigBuilder);
zkServer.start();
}
The test above will fail with a ClassCastException because InstantSpec allows a Map for custom properties, i.e. a non-String value like Integer can be used.
This Map is then passed over into a Properties instance in QuorumConfigBuilder:163. These Properties are then written to a temporary file in ZooKeeper's ZooKeeperServerEmbeddedImpl:58 which expects only to have String values. The previously set Integer value isn't converted to a String anywhere, though.
There might be a ClassCastException happening when starting the TestingZooKeeper instance. The following test reproduces the issue:
The test above will fail with a ClassCastException because InstantSpec allows a Map for custom properties, i.e. a non-String value like Integer can be used.
This Map is then passed over into a Properties instance in QuorumConfigBuilder:163. These Properties are then written to a temporary file in ZooKeeper's ZooKeeperServerEmbeddedImpl:58 which expects only to have String values. The previously set Integer value isn't converted to a String anywhere, though.
Originally reported by mapohl, imported from: ZooKeeperServerEmbeddedAdapter.configure might fail with ClassCastException
The text was updated successfully, but these errors were encountered: