I'm not sure what this does for you.
If helpfulContainer.eventHorizon()
always deletes its parameter, then why not just pass a new copy of (the original) A class:
helpfulContainer.eventHorizon(new A(sa1));
Or, if helpfulContainer.eventHorizon()
only sometimes deletes its parameter, then making the call as
helpfulContainer.eventHorizon(new SharedA(sa1));
will leak both the SharedA and the original A (sa1) on those occasions when it chooses not to delete.