Java's SSLContext.getInstance() method has a counterintuitive and dangerous behavior: specifying a TLS version like "TLSv1.2" does not set a minimum version as the documentation implies — it actually sets a maximum version, silently capping the connection to that version and below. This means developers who follow common advice to specify a version string may unknowingly be implementing a self-inflicted protocol downgrade attack. The behavior is present in both the default SunJSSE provider and Android's Conscrypt/BoringSSL provider. The recommended workaround is to use the generic "TLS" identifier instead, which modern JDK implementations interpret as supporting TLS 1.2 and 1.3. The issue affects client-side connections only; server-side contexts ignore the version parameter entirely.