DatabaseDescriptor static initialization circular reference when initialized 
through call to StorageService.instance.initClient 
--------------------------------------------------------------------------------------------------------------------------------

                 Key: CASSANDRA-1756
                 URL: https://issues.apache.org/jira/browse/CASSANDRA-1756
             Project: Cassandra
          Issue Type: Bug
          Components: Core
    Affects Versions: 0.7.0
            Reporter: Erik Onnen
             Fix For: 0.7.0


In trunk, attempting to invoke StorageService.instance.initClient results in an 
NPE due to static definition field ordering in StorageService and a circular 
reference from DatabaseDescriptor back into an uninitialized field 
(scheduledTasks). Changing the ordering of the static fields such that 
scheduledTasks is defined before the static partitioner fixes the issue.

I've also marked the scheduledTasks executor as final as it doesn't seem to 
make sense changing it.

All tests pass with this change locally.

I suspect this hasn't surfaced in tests as calling initServer first in the same 
JVM will allow later calls to initClient to see the correctly defined 
scheduledTasks fields.

I'm following the recommended way to do this from ClientOnlyExample, if this 
isn't the right way to initialize things let me know.


-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to