Various polishing and optimizations

* Check for `null` package in the `JacksonJsonUtils`.
Also don't call `this.delegate.typeFromId()` the second time
* Increase wait timeout in the `QueueChannelTests`
* Check `ZookeeperMetadataStore.addListener()` for `null`

**Cherry-pick to 4.3.x**
This commit is contained in:
Artem Bilan
2017-07-14 16:31:46 -04:00
parent 748feea0f8
commit 7a67c1f1a3
4 changed files with 24 additions and 10 deletions

View File

@@ -196,9 +196,9 @@ public final class JacksonJsonUtils {
DeserializationConfig config = (DeserializationConfig) context.getConfig();
JavaType result = this.delegate.typeFromId(context, id);
String packageName = result.getRawClass().getPackage().getName();
if (isTrustedPackage(packageName)) {
return this.delegate.typeFromId(context, id);
Package aPackage = result.getRawClass().getPackage();
if (aPackage == null || isTrustedPackage(aPackage.getName())) {
return result;
}
boolean isExplicitMixin = config.findMixInClassFor(result.getRawClass()) != null;

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2002-2015 the original author or authors.
* Copyright 2002-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -58,7 +58,7 @@ public class QueueChannelTests {
}).start();
assertFalse(messageReceived.get());
channel.send(new GenericMessage<String>("testing"));
latch.await(1000, TimeUnit.MILLISECONDS);
latch.await(10000, TimeUnit.MILLISECONDS);
assertTrue(messageReceived.get());
}

View File

@@ -37,12 +37,13 @@ import org.springframework.integration.support.utils.IntegrationUtils;
import org.springframework.util.Assert;
/**
* Zookeeper-based {@link ListenableMetadataStore} based on a Zookeeper node. Values are stored in the children node,
* the names of which are stored as keys.
* Zookeeper-based {@link ListenableMetadataStore} based on a Zookeeper node.
* Values are stored in the children node, the names of which are stored as keys.
*
* @author Marius Bogoevici
* @author Gary Russell
* @author Artem Bilan
*
* @since 4.2
*/
public class ZookeeperMetadataStore implements ListenableMetadataStore, SmartLifecycle {
@@ -164,8 +165,9 @@ public class ZookeeperMetadataStore implements ListenableMetadataStore, SmartLif
}
@Override
public void addListener(MetadataStoreListener callback) {
this.listeners.add(callback);
public void addListener(MetadataStoreListener listener) {
Assert.notNull(listener, "'listener' must not be null");
this.listeners.add(listener);
}
@Override

View File

@@ -1,5 +1,5 @@
/*
* Copyright 2015-2016 the original author or authors.
* Copyright 2015-2017 the original author or authors.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,6 +16,8 @@
package org.springframework.integration.zookeeper.metadata;
import static org.hamcrest.Matchers.containsString;
import static org.hamcrest.Matchers.instanceOf;
import static org.hamcrest.collection.IsCollectionWithSize.hasSize;
import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
@@ -50,6 +52,8 @@ import org.springframework.integration.zookeeper.ZookeeperTestSupport;
/**
* @author Marius Bogoevici
* @author Artem Bilan
*
* @since 4.2
*/
public class ZookeeperMetadataStoreTests extends ZookeeperTestSupport {
@@ -233,6 +237,14 @@ public class ZookeeperMetadataStoreTests extends ZookeeperTestSupport {
barriers.put("add", new CyclicBarrier(2));
barriers.put("remove", new CyclicBarrier(2));
barriers.put("update", new CyclicBarrier(2));
try {
metadataStore.addListener(null);
fail("IllegalArgumentException expected");
}
catch (Exception e) {
assertThat(e, instanceOf(IllegalArgumentException.class));
assertThat(e.getMessage(), containsString("'listener' must not be null"));
}
metadataStore.addListener(new MetadataStoreListenerAdapter() {
@Override
public void onAdd(String key, String value) {