[CURATOR-663] ZooKeeperServerEmbeddedAdapter.configure might fail with ClassCastException
There might be a ClassCastException happening when starting the TestingZooKeeper instance. The following test reproduces the issue:
@Test public void testTestingZooKeeperServer() throws Exception { final MapString, 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
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
- status: Open
- priority: Major
- resolution: Unresolved
- imported: 2025-01-21