String propVal = (String)AccessController.doPrivileged(new GetPropertyAction("impl.prefix")); if (factory != null) {  impl = factory.createDatagramSocketImpl(); } else if (propVal == null || propVal.equals("")) impl = new PlainDatagramSocketImpl(); else try { impl = (DatagramSocketImpl) Class.forName("java.net." + propVal + "DatagramSocketImpl") .newInstance(); } catch (Exception e) { System.err.println("Could not instantiate class: java.net." + propVal + "DatagramSocketImpl"); impl = new PlainDatagramSocketImpl(); }
if (impl == null) throw new NullPointerException("impl may not be null");
  public DatagramSocket(SocketAddress address) throws SocketException  {      // @classpath-bugfix Security    String propVal = (String)AccessController.doPrivileged(new GetPropertyAction("impl.prefix"));    if (factory != null) {        // @classpath-bugfix Use factory        impl = factory.createDatagramSocketImpl();    } else if (propVal == null || propVal.equals(""))      impl = new PlainDatagramSocketImpl();    else      try        {	  impl =	    (DatagramSocketImpl) Class.forName("java.net." + propVal	                                       + "DatagramSocketImpl")	                              .newInstance();        }      catch (Exception e)        {	  System.err.println("Could not instantiate class: java.net."	                     + propVal + "DatagramSocketImpl");	  impl = new PlainDatagramSocketImpl();        }    if (address != null)      bind(address);  }