A static variable trying to access another static variable
<p>I was wondering, whether the following code are safe.</p>

<pre><code>public class GUIBundle {

    // The technique known as the initialization on demand holder idiom, 
    // is as lazy as possible.
    // http://en.wikipedia.org/wiki/Initialization_on_demand_holder_idiom
    //private static class BundleHolder {
    //    private static final ResourceBundle bundle = ResourceBundle.getBundle("org.yccheok.jstock.data.gui");
    //}
    private static final ResourceBundle bundle = ResourceBundle.getBundle("org.yccheok.jstock.data.gui");

    private GUIBundle() {
    }

    public static String getString(String key) {
        // return BundleHolder.bundle.getString(key);
        return bundle.getString(key);
    }
}
</code></pre>

<hr>

<pre><code>public class SellPortfolioChartJDialog extends javax.swing.JDialog {

    private static final String[] cNames = new String[] {
        GUIBundle.getString("BuyPortfolioTreeTableModel_NetGainValue")
    };
}
</code></pre>

<hr>

<p>Since cNames is within static scope, is it safe for it to access static bundle? Does it make any different whether I am using lazy initialization technique?</p>

<p>I remember I came across an article (I lost the article anyway) talking about nondeterministic of initialization order of static variables. I am not sure whether the nondeterministic of initialization order of static variables, applied to the above case?</p>
