change Semaphore to prevent String.intern trap