When new is used to allocate global variables in the program, the new data are created on the current active process group. In HPJava, there is an optional on clause, which can be used after new operator to specify the data owner group.
on(p) { int # s = new int # on q; ... }
will create a global scalar similar but different to the one created in the following,
on (p) { int # s = new int #; ... }
In the first fragment, the data descriptor is duplicated on all process in Group p, but for those not in Group q, the data reference field of the descriptor is undefined.
We also have accessibility problem here. One can not define,
on (q) int # s = new int # on p;