void
JVMGetThreadParent::HandleSuccess
	(
	const JString& origData
	)
{
	JVMLink* link = dynamic_cast<JVMLink*>(CMGetLink());
	const JVMSocket::MessageReady* msg;
	if (!link->GetLatestMessageFromJVM(&msg))
		{
		return;
		}

	if (itsNode != NULL && !itsCheckOnlyFlag)
		{
		const unsigned char* data = msg->GetData();

		const JUInt64 id = JVMSocket::Unpack(link->GetObjectIDSize(), data);

		itsNode->FindParent(id);
		}
}
void
JVMGetThreadParent::Starting()
{
	CMCommand::Starting();

	if (itsNode != NULL)
		{
		JVMLink* link = dynamic_cast<JVMLink*>(CMGetLink());

		const JSize length  = link->GetObjectIDSize();
		unsigned char* data = (unsigned char*) calloc(length, 1);
		assert( data != NULL );

		JVMSocket::Pack(length, itsNode->GetID(), data);

		const JBoolean isGroup = JI2B(itsNode->GetType() == JVMThreadNode::kGroupType);
		link->Send(this,
			isGroup ? JVMLink::kThreadGroupReferenceCmdSet : JVMLink::kThreadReferenceCmdSet,
			isGroup ? JVMLink::kTGParentCmd : JVMLink::kTThreadGroupCmd,
			data, length);

		free(data);
		}
}