Skip to content

Commit 0f0d347

Browse files
snazySasank Pagolu
authored and
Sasank Pagolu
committed
Prevent deadlock in Jackson (apache#10379)
Following warning is always printed when using Iceberg REST clients: ``` PropertyNamingStrategy.KebabCaseStrategy is used but it has been deprecated due to risk of deadlock. Consider using PropertyNamingStrategies.KebabCaseStrategy instead. See FasterXML/jackson-databind#2715 for more details. ```
1 parent c1f6d26 commit 0f0d347

File tree

2 files changed

+4
-4
lines changed

2 files changed

+4
-4
lines changed

aws/src/main/java/org/apache/iceberg/aws/s3/signer/S3ObjectMapper.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,7 @@
2929
import com.fasterxml.jackson.databind.JsonNode;
3030
import com.fasterxml.jackson.databind.JsonSerializer;
3131
import com.fasterxml.jackson.databind.ObjectMapper;
32-
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
32+
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
3333
import com.fasterxml.jackson.databind.SerializerProvider;
3434
import com.fasterxml.jackson.databind.module.SimpleModule;
3535
import java.io.IOException;
@@ -57,7 +57,7 @@ static ObjectMapper mapper() {
5757
// even though using new PropertyNamingStrategy.KebabCaseStrategy() is deprecated
5858
// and PropertyNamingStrategies.KebabCaseStrategy.INSTANCE (introduced in jackson 2.14) is
5959
// recommended, we can't use it because Spark still relies on jackson 2.13.x stuff
60-
MAPPER.setPropertyNamingStrategy(new PropertyNamingStrategy.KebabCaseStrategy());
60+
MAPPER.setPropertyNamingStrategy(new PropertyNamingStrategies.KebabCaseStrategy());
6161
MAPPER.registerModule(initModule());
6262
isInitialized = true;
6363
}

core/src/main/java/org/apache/iceberg/rest/RESTObjectMapper.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@
2323
import com.fasterxml.jackson.core.JsonFactory;
2424
import com.fasterxml.jackson.databind.DeserializationFeature;
2525
import com.fasterxml.jackson.databind.ObjectMapper;
26-
import com.fasterxml.jackson.databind.PropertyNamingStrategy;
26+
import com.fasterxml.jackson.databind.PropertyNamingStrategies;
2727

2828
class RESTObjectMapper {
2929
private static final JsonFactory FACTORY = new JsonFactory();
@@ -38,7 +38,7 @@ static ObjectMapper mapper() {
3838
if (!isInitialized) {
3939
MAPPER.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY);
4040
MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
41-
MAPPER.setPropertyNamingStrategy(new PropertyNamingStrategy.KebabCaseStrategy());
41+
MAPPER.setPropertyNamingStrategy(new PropertyNamingStrategies.KebabCaseStrategy());
4242
RESTSerializers.registerAll(MAPPER);
4343
isInitialized = true;
4444
}

0 commit comments

Comments
 (0)