{
  "id": "java/socket-timeout-exception-read-timed-out",
  "signature": "java.net.SocketTimeoutException: Read timed out",
  "signature_zh": "java.net.SocketTimeoutException: 读取超时",
  "regex": "java\\.net\\.SocketTimeoutException: Read timed out",
  "domain": "java",
  "category": "network_error",
  "subcategory": null,
  "root_cause": "A socket read operation did not receive data within the configured timeout period, typically due to network latency, server overload, or firewall blocking.",
  "root_cause_type": "generic",
  "root_cause_zh": "套接字读取操作在配置的超时时间内未收到数据，通常由网络延迟、服务器过载或防火墙拦截引起。",
  "versions": [
    {
      "version": "Java 8",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Java 11",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Java 17",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    },
    {
      "version": "Java 21",
      "introduced": null,
      "deprecated": null,
      "removed": null,
      "behavior_change": null,
      "status": "active"
    }
  ],
  "os_specific": {},
  "dead_ends": [
    {
      "action": "",
      "why_fails": "This only delays the failure; if the server is unresponsive, the connection will eventually time out, and it may block threads unnecessarily.",
      "fail_rate": 0.6,
      "condition": "",
      "sources": []
    },
    {
      "action": "",
      "why_fails": "This can cause infinite loops or resource exhaustion if the server never responds, and may overwhelm the network.",
      "fail_rate": 0.75,
      "condition": "",
      "sources": []
    }
  ],
  "workarounds": [
    {
      "action": "Increase the read timeout to a reasonable value (e.g., 30 seconds) using socket.setSoTimeout(30000), and implement a retry mechanism with exponential backoff.",
      "success_rate": 0.8,
      "how": "Increase the read timeout to a reasonable value (e.g., 30 seconds) using socket.setSoTimeout(30000), and implement a retry mechanism with exponential backoff.",
      "condition": "",
      "sources": []
    },
    {
      "action": "Check network connectivity with 'ping server-host' and verify server logs for latency or errors; use a connection pool with timeout settings.",
      "success_rate": 0.7,
      "how": "Check network connectivity with 'ping server-host' and verify server logs for latency or errors; use a connection pool with timeout settings.",
      "condition": "",
      "sources": []
    }
  ],
  "workarounds_zh": [
    "Increase the read timeout to a reasonable value (e.g., 30 seconds) using socket.setSoTimeout(30000), and implement a retry mechanism with exponential backoff.",
    "Check network connectivity with 'ping server-host' and verify server logs for latency or errors; use a connection pool with timeout settings."
  ],
  "transition_graph": {
    "leads_to": [],
    "preceded_by": [],
    "frequently_confused_with": []
  },
  "official_doc_url": "https://docs.oracle.com/en/java/javase/17/docs/api/java.base/java/net/SocketTimeoutException.html",
  "official_doc_section": null,
  "error_code": null,
  "verification_tier": "ai_generated",
  "confidence": 0.86,
  "fix_success_rate": 0.75,
  "resolvable": "partial",
  "first_seen": "2024-03-12",
  "last_confirmed": "2024-06-01",
  "last_updated": "2024-06-01",
  "evidence_count": 1,
  "tags": [],
  "locale": "en",
  "aliases": []
}