-
-
Notifications
You must be signed in to change notification settings - Fork 1k
Expand file tree
/
Copy pathsonar-project.properties
More file actions
31 lines (29 loc) · 1.72 KB
/
Copy pathsonar-project.properties
File metadata and controls
31 lines (29 loc) · 1.72 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# SonarCloud project configuration
sonar.projectKey=Red5_red5-server
sonar.organization=red5
# --- Analysis scope ---------------------------------------------------------
# mediabunny.mjs is a vendored, minified third-party bundle (MPL-2.0,
# (c) Vanilagy and contributors); it is not our source and is replaced wholesale
# on dependency updates, so it is excluded from analysis.
sonar.exclusions=**/webapps/**/mediabunny.mjs
# --- Issue exclusions -------------------------------------------------------
# e1: java:S6906 "Virtual threads should not run tasks that include synchronized code"
# on RTMPConnection's per-connection received-packet loop.
#
# The loop runs on a virtual thread (Executors.newVirtualThreadPerTaskExecutor)
# so idle connections unmount from their carrier and hold no platform thread.
# The only synchronized code reachable from the handler path is hit off the
# per-frame hot path and never blocks on IO:
# - ProviderService.getLiveProviderInput synchronized(scope): once per NEW
# stream publish; in-memory scope creation only (microseconds).
# - SharedObject.sendUpdates(): SharedObject apps only, and the actual send
# is offloaded to SharedObjectService's own pool, not the receiver thread.
# Steady-state audio/video dispatch is lock-free (LinkedTransferQueue + CAS),
# so carrier pinning is negligible in practice.
#
# Carrier pinning on synchronized blocks is moreover eliminated entirely by
# JEP 491 (Synchronize Virtual Threads without Pinning, JDK 24+), which makes
# this rule moot on the target runtime once deployed on JDK 24+.
sonar.issue.ignore.multicriteria=e1
sonar.issue.ignore.multicriteria.e1.ruleKey=java:S6906
sonar.issue.ignore.multicriteria.e1.resourceKey=**/net/rtmp/RTMPConnection.java