{"payload":{"feedbackUrl":"https://github.com/orgs/community/discussions/53140","repo":{"id":781082865,"defaultBranch":"2.x","name":"jersey","ownerLogin":"snazy","currentUserCanPush":false,"isFork":true,"isEmpty":false,"createdAt":"2024-04-02T18:02:58.000Z","ownerAvatar":"https://avatars.githubusercontent.com/u/957468?v=4","public":true,"private":false,"isOrgOwned":false},"refInfo":{"name":"","listCacheKey":"v0:1712236399.0","currentOid":""},"activityList":{"items":[{"before":"e57b52805160d7e9f11bd8acdb40b8161f0bf978","after":null,"ref":"refs/heads/4.0","pushedAt":"2024-04-04T13:13:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"eac5ce9417629603d5e6db67ea5f846ee3676b20","after":null,"ref":"refs/heads/3.1.JPMS","pushedAt":"2024-04-04T13:13:19.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"fc78757d0b2ece3f03e2c35f709fe070c350fc96","after":null,"ref":"refs/heads/3.0","pushedAt":"2024-04-04T13:13:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"077b0d1162529411c9105a8fd198ca7a0c7e19fb","after":null,"ref":"refs/heads/2.30.1-BRANCH","pushedAt":"2024-04-04T13:13:02.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"1e82b13d72b085ecf48e7c94ea10588813c6b7a0","after":null,"ref":"refs/heads/gh-pages","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"060a21e56889424f7c5c7dee70e94e13d7d31929","after":null,"ref":"refs/heads/JAXRS_2_2","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"3c0925bd6cbb1f535605a59d85e46e3a97ed65de","after":null,"ref":"refs/heads/EE4J_8","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"b7268c83b9608d56f3c470bd218405d1fcd1ee35","after":null,"ref":"refs/heads/4.0-M1-prepare","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"9727e9acfb84a96921f0d2c90ccbe9d0f704c718","after":null,"ref":"refs/heads/4.0-M1-GF1-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"bf68236d27fe76bc01aa780baab0fa1b95b1b1b4","after":null,"ref":"refs/heads/3.1.0-M8-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"e6a0493a1421343c2a10b457b90bffbe14b41bad","after":null,"ref":"refs/heads/3.1.0-M7-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"58344c66d0ad13f2fb350097521c6a6b734cb0a4","after":null,"ref":"refs/heads/3.1.0-M6-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"4973fe39c989b448f7f46f0ee5014d212dd8e7e4","after":null,"ref":"refs/heads/3.1.0-M5-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"91a6066f50ef02eaf1035c760ca8f266ecd5ca8c","after":null,"ref":"refs/heads/3.1.0-M4-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"42294c0af58d29d8f460b26a72439743ef65b370","after":null,"ref":"refs/heads/3.1.0-M3-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"61048718537dd99fa7a00d11f477107f641ebdee","after":null,"ref":"refs/heads/3.1.0-M2-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"22dc6f3b985797212ee828d41d2556d88a44457b","after":null,"ref":"refs/heads/3.1.0-M1-BRANCH","pushedAt":"2024-04-04T13:12:45.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"2f201057e18f16e3cb77ef657952ad3bb91b2ccf","after":null,"ref":"refs/heads/fix-timer-thread-invasion","pushedAt":"2024-04-04T13:10:42.000Z","pushType":"branch_deletion","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"}},{"before":"4eac685c588950f1378d499d2b28ec566f0626b6","after":"2f201057e18f16e3cb77ef657952ad3bb91b2ccf","ref":"refs/heads/fix-timer-thread-invasion","pushedAt":"2024-04-02T19:04:15.000Z","pushType":"force_push","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"},"commit":{"message":"Fix thread leak/invasion\n\nJersey/Jetty, at least in the 3.1 version line, creates one thread for each HTTP request. This behavior was introduced with #5372 and seems not present in the 2.x or 3.x versions of Jersey.\n\nFrom the javadoc of `java.util.Timer`:\n```\nImplementation note: All constructors start a timer thread.\n...\nAfter the last live reference to a Timer object goes away and all outstanding tasks have completed execution, the timer's task execution thread terminates gracefully (and becomes subject to garbage collection). However, this can take arbitrarily long to occur.\n```\nIt is fair to assume that \"arbitrarily long\" may also mean _never_, in case GC never runs.\n\nThis change replaces the timer & thread per request with a `ScheduledExecutorService` instance per `JettyHttpContainer`.\n\nAlso changed the set-timeout mechanism to use `System.nanoTime()` instead of `System.currentTimeMillis()`, because the latter is prone to wall-clock drift and can result into wrong timeout values.\n\nFixes #5588\n\nSigned-off-by: Robert Stupp ","shortMessageHtmlLink":"Fix thread leak/invasion"}},{"before":null,"after":"4eac685c588950f1378d499d2b28ec566f0626b6","ref":"refs/heads/fix-timer-thread-invasion","pushedAt":"2024-04-02T18:42:48.000Z","pushType":"branch_creation","commitsCount":0,"pusher":{"login":"snazy","name":"Robert Stupp","path":"/snazy","primaryAvatarUrl":"https://avatars.githubusercontent.com/u/957468?s=80&v=4"},"commit":{"message":"Fix thread leak/invasion\n\nJersey/Jetty, at least in the 3.1 version line, creates one thread for each HTTP request. This behavior was introduced with #5372 and seems not present in the 2.x or 3.x versions of Jersey.\n\nFrom the javadoc of `java.util.Timer`:\n```\nImplementation note: All constructors start a timer thread.\n...\nAfter the last live reference to a Timer object goes away and all outstanding tasks have completed execution, the timer's task execution thread terminates gracefully (and becomes subject to garbage collection). However, this can take arbitrarily long to occur.\n```\nIt is fair to assume that \"arbitrarily long\" may also mean _never_, in case GC never runs.\n\nThis change replaces the timer & thread per request with a `ScheduledExecutorService` instance per `JettyHttpContainer`.\n\nAlso changed the set-timeout mechanism to use `System.nanoTime()` instead of `System.currentTimeMillis()`, because the latter is prone to wall-clock drift and can result into wrong timeout values.\n\nFixes #5588\n\nSigned-off-by: Robert Stupp ","shortMessageHtmlLink":"Fix thread leak/invasion"}}],"hasNextPage":false,"hasPreviousPage":false,"activityType":"all","actor":null,"timePeriod":"all","sort":"DESC","perPage":30,"startCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0wNFQxMzoxMzoxOS4wMDAwMDBazwAAAAQn0MBp","endCursor":"Y3Vyc29yOnYyOpK7MjAyNC0wNC0wMlQxODo0Mjo0OC4wMDAwMDBazwAAAAQl3oIj"}},"title":"Activity ยท snazy/jersey"}