java: understand more initializers

Whne a fiels is assigned a safe type in a constructor,
that field is not exposed.
This commit is contained in:
yoff
2025-11-25 15:46:18 +01:00
parent a65d385297
commit c6240e5a99
3 changed files with 16 additions and 8 deletions

View File

@@ -43,7 +43,4 @@
| examples/Test.java:60:5:60:10 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:60:5:60:10 | this.y | this expression |
| examples/Test.java:74:5:74:10 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:74:5:74:10 | this.y | this expression |
| examples/Test.java:74:14:74:14 | y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/Test.java:74:14:74:14 | y | this expression |
| examples/ThreadSafeInitializers.java:29:9:29:16 | sync_map | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/ThreadSafeInitializers.java:29:9:29:16 | sync_map | this expression |
| examples/ThreadSafeInitializers.java:37:9:37:12 | cmap | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/ThreadSafeInitializers.java:37:9:37:12 | cmap | this expression |
| examples/ThreadSafeInitializers.java:45:9:45:14 | this.y | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/ThreadSafeInitializers.java:45:9:45:14 | this.y | this expression |
| examples/ThreadSafeInitializers.java:49:9:49:11 | set | This field access (publicly accessible via $@) is not protected by any monitor, but the class is annotated as @ThreadSafe. | examples/ThreadSafeInitializers.java:49:9:49:11 | set | this expression |

View File

@@ -26,7 +26,7 @@ public class ThreadSafeInitializers {
}
public void sync_map_put(Integer i, Integer v) {
sync_map.put(i,v); // $ SPURIOUS: Alert
sync_map.put(i,v);
}
public void sync_map_initialised_put(Integer i, Integer v) {
@@ -34,7 +34,7 @@ public class ThreadSafeInitializers {
}
public void cmap_put(String s1, String s2) {
cmap.put(s1, s2); // $ SPURIOUS: Alert
cmap.put(s1, s2);
}
public void cmap_initialised_put(String s1, String s2) {
@@ -46,7 +46,7 @@ public class ThreadSafeInitializers {
}
public void set_add(Integer i) {
set.add(i); // $ SPURIOUS: Alert
set.add(i);
}
public void set_initialised_add(Integer i) {