title: Difference between System.setProperty and Security.setProperty
body: <p>Found below line of code in a java application designed to run on a custom chip.</p>
  
  <pre><code>System.setProperty("ssl.SocketFactory.provider", "some.custom.socketFactory");
  </code></pre>
  
  <p>I infer from the internet that "ssl.SocketFactory.provider" is a property to be set on java.security.Security class.</p>
  
  <p>I am confused if setting "ssl.SocketFactory.provider" as System property instead of Security property makes any difference(positive or negative) and is it right, I mean are System and Security sub sets or super sets of each other, so it  does not matter on whom the "ssl.SocketFactory.provider" property is set.</p>
  
  <p>P.S: 
  1) The java application on chip successfully managed to communicate with server with Server authentication, but when Client authentication is requested from updated server, the SSlSocketFactory(created from SSLContext initialized with verified Trust and Key Manager factories) is unable to create a socket at servers IP and port.The thread blocks forever at .createSocket(IP,port);</p>
  
  <p>2) I did lot of searching on the internet, but unable to connect the dots between these classes and if I am missing or doing something wrong.</p>