public void initPrx(final MetaData metaData) {
        while (true) {
            Class<?> prxClass = prxClassCache.get(metaData.getPath());
            try {
                if (Objects.isNull(prxClass)) {
                    // Spin's Attempt to Load
                    tryLockedLoadMetaData(metaData);
                } else {
                    if (Objects.nonNull(metaData.getContextPath()) && Objects.nonNull(refreshUpstreamCache.get(metaData.getContextPath()))) {
                        refreshTarsInvokePrxList(metaData, refreshUpstreamCache.get(metaData.getContextPath()));
                    }
                    break;
                }
            } catch (Exception e) {
                LOG.error("ShenyuTarsPluginInitializeException: init tars ref ex:{}", e.getMessage());
                break;
            }
        }
    }
@Test
    public void testInitPrx() {
        final MetaData metaData = new MetaData("id", "127.0.0.1:8080", "contextPath",
                "path6", RpcTypeEnum.TARS.getName(), "serviceName6", "method1",
                "parameterTypes", "{\"methodInfo\":[{\"methodName\":\"method1\",\"params\":[{\"left\":\"int\",\"right\":\"param1\"},"
                + "{\"left\":\"java.lang.Integer\",\"right\":\"param2\"}],\"returnType\":\"java.lang.String\"}]}", false);
        assertThrows(NullPointerException.class, () -> {
            applicationConfigCacheUnderTest.initPrx(metaData);       
            final TarsInvokePrxList result = applicationConfigCacheUnderTest.get("path6");
            assertEquals("promise_method1", result.getMethod().getName());
        });
    }