Drop unused IOperationContext parameter in QueriesGenerated
Reduce time spent trying to obtain object lock: (a) UnregisteredNode.contains obtains a lock while doesn't track unregistered nodes; (b) blocked rules in fact areblocked per-root (and hence per-thread) and do not need synch (complete rework pending); (c) SNode.getReference implies extra SNode.assertCanRead which blocks all other node reads.
SNode.REPO_LOCK doesn't guard anything but variable value change, which we don't care too much about when whe check if current thread can read or modify the node. Presence of the lock doesn't prevent other thread from attaching/detaching this node to another repository, and the lock only ensures that this change doesn't occur during modelAccess check (but doesn't prevent attach/detach right after/before the check)
Optimization: do not walk reference target unless we know parent is the one we're interested in
There seems to be no reason to return modifiable collections (it's misguiding, at least - what is supposed to happen if one adds anything in there?)
SNode.USER_OBJECT_LOCK guards myUserObjects modification. The array is copy-on-write, hence there's no need to lock on read, we just need to make sure we read through same array instance.
There are chances there's no javadoc node at required position, e.g. mpsjava/.../testDir2/.../Cl.java has two javadoc comments.
None are reported to ASTConverter (perhaps, a defect in eclipse parser?) and no doccomment node is created, and attempt to attach text fails
Verbose error log when incremental dependencies are in unexpected state to better understand otherwise cryptic failures
Merge remote-tracking branch 'origin/master' into 3.1/artem/default