Gregory Shimansky wrote: > I've applied your patch in HARMONY-2112 but I have a question to you. There > is > a new condition in jvmti_capability.cpp with the following comment: > > // if the global capability can_tag_objects has already been enabled, > // requested by this environment, but not yet posessed by this > environment, > // reject the request > if (ti->get_global_capability(DebugUtilsTI::TI_GC_ENABLE_TAG_OBJECTS) > && !posessed.can_tag_objects && capabilities_ptr->can_tag_objects) > return JVMTI_ERROR_NOT_AVAILABLE; > > Does it mean that only one environment at a time can hold and use tag objects > functionality? Is it a temporary limitation or inherent design restriction?
Yes, your understanding is correct. The design to store tag pointer into each object implies that object cannot be tagged by more than one environment. Thus the restriction of only one environment possessing can_tag_objects capability. I've added a note to KnownNonBugIssuesAndLimitations wiki page.
