You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by "Robert Stupp (JIRA)" <ji...@apache.org> on 2014/07/24 14:23:39 UTC

[jira] [Updated] (CASSANDRA-7597) Remove static initializer in DatabaseDescriptor

     [ https://issues.apache.org/jira/browse/CASSANDRA-7597?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Robert Stupp updated CASSANDRA-7597:
------------------------------------

    Description: 
As discussed below, it's difficult to properly react on invalid configuration values in a client tool that uses cassandra code (here: an sstable loader).

Reason is that the static initializer in DatabaseDescriptor calls System.exit in case of configuration failures.

Recommend to implement some "loadAndApplyConfig" method on DatabaseDescriptor and remove the static initializer and let the calling code react accordingly (print error, exit VM).

All direct and indirect uses of DatabaseDescriptor must be catched to solve this ticket - so this is not a 2.1 ticket.

--------------------------

Old Description:


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


  was:
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


     Issue Type: Improvement  (was: Bug)
        Summary: Remove static initializer in DatabaseDescriptor  (was: System.exit() calls should be removed from DatabaseDescriptor)

> Remove static initializer in DatabaseDescriptor
> -----------------------------------------------
>
>                 Key: CASSANDRA-7597
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-7597
>             Project: Cassandra
>          Issue Type: Improvement
>         Environment: Cassandra 2.0.9 (earlier version should be affected as well)
>            Reporter: Pavel Sakun
>            Assignee: Robert Stupp
>         Attachments: 7597.txt
>
>
> As discussed below, it's difficult to properly react on invalid configuration values in a client tool that uses cassandra code (here: an sstable loader).
> Reason is that the static initializer in DatabaseDescriptor calls System.exit in case of configuration failures.
> Recommend to implement some "loadAndApplyConfig" method on DatabaseDescriptor and remove the static initializer and let the calling code react accordingly (print error, exit VM).
> All direct and indirect uses of DatabaseDescriptor must be catched to solve this ticket - so this is not a 2.1 ticket.
> --------------------------
> Old Description:
> 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)