You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@ignite.apache.org by "Aleksey Plekhanov (JIRA)" <ji...@apache.org> on 2019/02/27 15:18:00 UTC
[jira] [Created] (IGNITE-11437) Start grid in remote JVM in test
framework fails if TDE is enabled
Aleksey Plekhanov created IGNITE-11437:
------------------------------------------
Summary: Start grid in remote JVM in test framework fails if TDE is enabled
Key: IGNITE-11437
URL: https://issues.apache.org/jira/browse/IGNITE-11437
Project: Ignite
Issue Type: Bug
Reporter: Aleksey Plekhanov
When we start grid in remote JVM with enabled TDE, it fails with exception:
{noformat}
java.lang.NullPointerException
at java.lang.ThreadLocal$SuppliedThreadLocal.initialValue(ThreadLocal.java:284)
at java.lang.ThreadLocal.setInitialValue(ThreadLocal.java:180)
at java.lang.ThreadLocal.get(ThreadLocal.java:170)
at org.apache.ignite.spi.encryption.keystore.KeystoreEncryptionSpi.encrypt(KeystoreEncryptionSpi.java:211){noformat}
Test framework uses {{XStream}} to pass Ignite configuration to remote JVM. {{XStream}} cannot serialize lamda expression and replace lambda with {{null}}. So, after deserialization {{ThreadLocal}} object has {{supplier == null}}.
Reproducer:
{code:java}
public class TdeTest extends GridCommonAbstractTest {
/** {@inheritDoc} */
@Override protected IgniteConfiguration getConfiguration(String gridName) throws Exception {
IgniteConfiguration cfg = super.getConfiguration(gridName);
cfg.setDataStorageConfiguration(new DataStorageConfiguration()
.setDefaultDataRegionConfiguration(new DataRegionConfiguration().setPersistenceEnabled(true)));
KeystoreEncryptionSpi encSpi = new KeystoreEncryptionSpi();
encSpi.setKeyStorePath(AbstractEncryptionTest.KEYSTORE_PATH);
encSpi.setKeyStorePassword(AbstractEncryptionTest.KEYSTORE_PASSWORD.toCharArray());
cfg.setEncryptionSpi(encSpi);
cfg.setCacheConfiguration(new CacheConfiguration().setName("cache").setEncryptionEnabled(true));
return cfg;
}
/** {@inheritDoc} */
@Override protected boolean isMultiJvm() {
return true;
}
@Test
public void testTdeMultiJvm() throws Exception {
startGrids(2);
}
}
{code}
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)