Skip to content

Commit 733c52b

Browse files
committed
warn less (just once for all clients) about missing providers
Signed-off-by: jansupol <[email protected]>
1 parent a0c0421 commit 733c52b

File tree

1 file changed

+28
-16
lines changed

1 file changed

+28
-16
lines changed

core-common/src/main/java/org/glassfish/jersey/message/internal/MessagingBinders.java

Lines changed: 28 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
/*
2-
* Copyright (c) 2012, 2021 Oracle and/or its affiliates. All rights reserved.
2+
* Copyright (c) 2012, 2022 Oracle and/or its affiliates. All rights reserved.
33
*
44
* This program and the accompanying materials are made available under the
55
* terms of the Eclipse Public License v. 2.0, which is available at
@@ -17,11 +17,13 @@
1717
package org.glassfish.jersey.message.internal;
1818

1919
import java.security.AccessController;
20+
import java.util.HashMap;
2021
import java.util.HashSet;
2122
import java.util.Iterator;
2223
import java.util.Locale;
2324
import java.util.Map;
2425
import java.util.Set;
26+
import java.util.concurrent.atomic.AtomicBoolean;
2527
import java.util.logging.Logger;
2628

2729
import javax.ws.rs.RuntimeType;
@@ -48,6 +50,14 @@
4850
public final class MessagingBinders {
4951

5052
private static final Logger LOGGER = Logger.getLogger(MessagingBinders.class.getName());
53+
private static final Map<EnabledProvidersBinder.Provider, AtomicBoolean> warningMap;
54+
55+
static {
56+
warningMap = new HashMap<>();
57+
for (EnabledProvidersBinder.Provider provider : EnabledProvidersBinder.Provider.values()) {
58+
warningMap.put(provider, new AtomicBoolean(false));
59+
}
60+
}
5161

5262
/**
5363
* Prevents instantiation.
@@ -223,21 +233,23 @@ private void bindToBinder(AbstractBinder binder) {
223233
}
224234
providerBinder.bind(binder, provider);
225235
} else {
226-
switch (provider) {
227-
case DOMSOURCE:
228-
case SAXSOURCE:
229-
case STREAMSOURCE:
230-
LOGGER.warning(LocalizationMessages.DEPENDENT_CLASS_OF_DEFAULT_PROVIDER_NOT_FOUND(provider.className,
231-
"MessageBodyReader<" + provider.className + ">")
232-
);
233-
break;
234-
case DATASOURCE:
235-
case RENDEREDIMAGE:
236-
case SOURCE:
237-
LOGGER.warning(LocalizationMessages.DEPENDENT_CLASS_OF_DEFAULT_PROVIDER_NOT_FOUND(provider.className,
238-
"MessageBodyWriter<" + provider.className + ">")
239-
);
240-
break;
236+
if (warningMap.get(provider).compareAndSet(false, true)) {
237+
switch (provider) {
238+
case DOMSOURCE:
239+
case SAXSOURCE:
240+
case STREAMSOURCE:
241+
LOGGER.warning(LocalizationMessages.DEPENDENT_CLASS_OF_DEFAULT_PROVIDER_NOT_FOUND(
242+
provider.className, "MessageBodyReader<" + provider.className + ">")
243+
);
244+
break;
245+
case DATASOURCE:
246+
case RENDEREDIMAGE:
247+
case SOURCE:
248+
LOGGER.warning(LocalizationMessages.DEPENDENT_CLASS_OF_DEFAULT_PROVIDER_NOT_FOUND(
249+
provider.className, "MessageBodyWriter<" + provider.className + ">")
250+
);
251+
break;
252+
}
241253
}
242254
}
243255
}

0 commit comments

Comments
 (0)