the following code come java.lang.system.console()
method:
private static volatile console cons = null; /** * returns unique {@link java.io.console console} object associated * current java virtual machine, if any. * * @return system console, if any, otherwise <tt>null</tt>. * * @since 1.6 */ public static console console() { if (cons == null) { synchronized (system.class) { cons = sun.misc.sharedsecrets.getjavaioaccess().console(); } } return cons; }
in opinion, these bug in method. should write this:
public static console console() { if (cons == null) { synchronized (system.class) { if (cons == null) cons = sun.misc.sharedsecrets.getjavaioaccess().console(); } } return cons; }
am right? what's opinion?
if implementation of javaioaccess
, find there's null-check inside it:
public console console() { if (istty()) { if (cons == null) cons = new console(); return cons; } return null; }
as method way initialize variable, it's not problem nested null check resides in method. it's still impossible 2 distinct console
objects.
Comments
Post a Comment