[ https://issues.apache.org/jira/browse/CASSANDRA-7597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Robert Stupp updated CASSANDRA-7597: ------------------------------------ Attachment: 7597.txt Oops - not that easy. A static initializer in DatabaseDescriptor loads & applies the config and calls System.exit on failure. I implemented a workaround for these usecases and left the default behavior untouched. "Workaround" as implemented in the attached patch: # Call {{org.apache.cassandra.config.Config.setIsExitOnInvalidConfig(false)}} # Check the return value of {{org.apache.cassandra.config.DatabaseDescriptor.getInvalidConfigFailure()}} - it returns {{null}} if the config has been successfully applied - otherwise it returns the failure. Also changed the {{catch (Exception e)}} to {{catch (Throwable e)}} in the static initializer to catch really everything - even runtime exceptions. This is not a good thing and I'm not sure whether to commit this one. [~benedict] ? > System.exit() calls should be removed from DatabaseDescriptor > ------------------------------------------------------------- > > Key: CASSANDRA-7597 > URL: https://issues.apache.org/jira/browse/CASSANDRA-7597 > Project: Cassandra > Issue Type: Bug > Environment: Cassandra 2.0.9 (earlier version should be affected as > well) > Reporter: Pavel Sakun > Attachments: 7597.txt > > > We're using SSTableSimpleUnsortedWriter API to generate SSTable to be loaded > into cassandra. In case of any issue with config DatabaseDescriptor calls > System.exit() which is apparently not the thing you expect while using API. > Test case is simple: > System.setProperty( "cassandra.config", "" ); > new YamlConfigurationLoader().loadConfig(); > Thread.sleep( 5000 ); > System.out.println("We're still alive"); // this will never be called -- This message was sent by Atlassian JIRA (v6.2#6252)