On 29 February 2016 at 22:13, Justi Kd <[email protected]> wrote: >> What we could do is replace @Immutable, @ThreadSafe and @NonThreadSafe >> with a single annotation, say, @Threading with three values Safe, >> NonSafe and Immutable and drop @GuardedBy altogether. > > > > That looks like a good alternative though it makes me wonder > how is this better for you then plain comments? Do you run the package under a > tool that can detected synchronization issues at run-time? Static code > analysis > would be quite limited in finding races.. especially in this project. >
The idea was to use the annotations for two purposes: - code documentation, so maintainers know what the design constraints are; - potential use by FindBugs; there were some suggestions that it would be able to make use of the annotations. I'm not sure that ever happened. Originally we used the JCIP jar. However we found that it would then be necessary to bundle the jar as the annotations were created with Retention Runtime rather than Classfile. There seemed to be no advantage to using Runtime, so I contacted one of the authors and asked about them releasing a version to fix that. However the request was not accepted. So we ended up creating our own. We credited the JCIP team in our N&L files. Before we make any changes, I think we should file a LEGAL JIRA and ask whether or not it's necessary to do so. This will also help others who may wish to use the annotations. > > Anyway I think there is definitely room for group discussion, maybe Unsafe > instead of NonSafe > or @Threading.Synchronized / > Unsynchronized > > > But I would remove the annotations and CC license anomaly > first and use simple comments instead. > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
