many little refactorings
diff --git a/discovery/local/src/main/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapper.java b/discovery/local/src/main/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapper.java
index a17020b..cdb2eb1 100644
--- a/discovery/local/src/main/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapper.java
+++ b/discovery/local/src/main/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapper.java
@@ -218,7 +218,7 @@
try {
if ("Character".equals(boxedType)) {
- return new Character(value.charAt(0));
+ return value.charAt(0);
} else {
Class<?> cls = ClassLoader.getSystemClassLoader().loadClass(javaType);
Constructor<?> ctor = cls.getConstructor(String.class);
diff --git a/discovery/local/src/main/java/org/apache/aries/rsa/discovery/local/EndpointDescriptionBundleParser.java b/discovery/local/src/main/java/org/apache/aries/rsa/discovery/local/EndpointDescriptionBundleParser.java
index b4393a9..b74f2f3 100644
--- a/discovery/local/src/main/java/org/apache/aries/rsa/discovery/local/EndpointDescriptionBundleParser.java
+++ b/discovery/local/src/main/java/org/apache/aries/rsa/discovery/local/EndpointDescriptionBundleParser.java
@@ -47,7 +47,7 @@
Enumeration<URL> urls = getEndpointDescriptionURLs(b);
List<EndpointDescription> elements = new ArrayList<EndpointDescription>();
while (urls.hasMoreElements()) {
- URL resourceURL = (URL) urls.nextElement();
+ URL resourceURL = urls.nextElement();
try {
elements.addAll(parser.readEndpoints(resourceURL.openStream()));
} catch (Exception ex) {
diff --git a/discovery/local/src/main/java/org/apache/aries/rsa/discovery/local/LocalDiscovery.java b/discovery/local/src/main/java/org/apache/aries/rsa/discovery/local/LocalDiscovery.java
index 9f076f8..138bc6a 100644
--- a/discovery/local/src/main/java/org/apache/aries/rsa/discovery/local/LocalDiscovery.java
+++ b/discovery/local/src/main/java/org/apache/aries/rsa/discovery/local/LocalDiscovery.java
@@ -44,11 +44,11 @@
// this is effectively a set which allows for multiple service descriptions with the
// same interface name but different properties and takes care of itself with respect to concurrency
- Map<EndpointDescription, Bundle> endpointDescriptions =
+ final Map<EndpointDescription, Bundle> endpointDescriptions =
new ConcurrentHashMap<EndpointDescription, Bundle>();
- Map<EndpointEventListener, Collection<String>> listenerToFilters =
+ final Map<EndpointEventListener, Collection<String>> listenerToFilters =
new HashMap<EndpointEventListener, Collection<String>>();
- Map<String, Collection<EndpointEventListener>> filterToListeners =
+ final Map<String, Collection<EndpointEventListener>> filterToListeners =
new HashMap<String, Collection<EndpointEventListener>>();
EndpointDescriptionBundleParser bundleParser;
diff --git a/discovery/local/src/test/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapperTest.java b/discovery/local/src/test/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapperTest.java
index 17ef458..2b15df1 100644
--- a/discovery/local/src/test/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapperTest.java
+++ b/discovery/local/src/test/java/org/apache/aries/rsa/discovery/endpoint/PropertiesMapperTest.java
@@ -60,7 +60,7 @@
m.put("char", '@');
m.put("Character2", 'X');
- m.put("bool-list", Arrays.asList(new Boolean[]{true, false}));
+ m.put("bool-list", Arrays.asList(true, false));
m.put("empty-set", new HashSet<Object>());
Set<String> stringSet = new LinkedHashSet<String>();
diff --git a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/ZooKeeperDiscovery.java b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/ZooKeeperDiscovery.java
index 5e55d8c..32f8b41 100644
--- a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/ZooKeeperDiscovery.java
+++ b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/ZooKeeperDiscovery.java
@@ -130,8 +130,7 @@
}
protected ZooKeeper createZooKeeper(String host, String port, int timeout) throws IOException {
- LOG.info("ZooKeeper discovery connecting to {}:{} with timeout {}",
- new Object[]{host, port, timeout});
+ LOG.info("ZooKeeper discovery connecting to {}:{} with timeout {}", host, port, timeout);
return new ZooKeeper(host + ":" + port, timeout, this);
}
diff --git a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/repository/ZookeeperEndpointRepository.java b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/repository/ZookeeperEndpointRepository.java
index a1d851f..f157c96 100644
--- a/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/repository/ZookeeperEndpointRepository.java
+++ b/discovery/zookeeper/src/main/java/org/apache/aries/rsa/discovery/zookeeper/repository/ZookeeperEndpointRepository.java
@@ -186,12 +186,8 @@
String childPath = (path.endsWith("/") ? path : path + "/") + child;
watchRecursive(childPath);
}
- } catch (NoNodeException e) {
- // Happens when a node was removed
- LOG.debug(e.getMessage(), e);
- } catch (ConnectionLossException e) {
- LOG.debug(e.getMessage(), e);
- } catch (SessionExpiredException e) {
+ } catch (NoNodeException | SessionExpiredException | ConnectionLossException e) {
+ // NoNodeException happens when a node was removed
LOG.debug(e.getMessage(), e);
} catch (Exception e) {
LOG.info(e.getMessage(), e);
diff --git a/eapub/src/main/java/org/apache/aries/rsa/eapub/EventAdminHelper.java b/eapub/src/main/java/org/apache/aries/rsa/eapub/EventAdminHelper.java
index d560a8f..14654af 100644
--- a/eapub/src/main/java/org/apache/aries/rsa/eapub/EventAdminHelper.java
+++ b/eapub/src/main/java/org/apache/aries/rsa/eapub/EventAdminHelper.java
@@ -49,7 +49,7 @@
props.put("bundle.id", bctx.getBundle().getBundleId());
props.put("bundle.symbolicname", bctx.getBundle().getSymbolicName());
- String version = (String)bctx.getBundle().getHeaders().get("Bundle-Version");
+ String version = bctx.getBundle().getHeaders().get("Bundle-Version");
Version v = version != null ? new Version(version) : Version.emptyVersion;
setIfNotNull(props, "bundle.version", v);
diff --git a/itests/felix/src/test/java/org/apache/aries/rsa/itests/felix/RsaTestBase.java b/itests/felix/src/test/java/org/apache/aries/rsa/itests/felix/RsaTestBase.java
index c70aa0a..346960d 100644
--- a/itests/felix/src/test/java/org/apache/aries/rsa/itests/felix/RsaTestBase.java
+++ b/itests/felix/src/test/java/org/apache/aries/rsa/itests/felix/RsaTestBase.java
@@ -71,13 +71,10 @@
}
protected int getFreePort() throws IOException {
- ServerSocket socket = new ServerSocket();
- try {
+ try (ServerSocket socket = new ServerSocket()) {
socket.setReuseAddress(true); // enables quickly reopening socket on same port
socket.bind(new InetSocketAddress(0)); // zero finds a free port
return socket.getLocalPort();
- } finally {
- socket.close();
}
}
diff --git a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/api/ProtobufSerializationStrategy.java b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/api/ProtobufSerializationStrategy.java
index 4f7e38c..12fabb7 100644
--- a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/api/ProtobufSerializationStrategy.java
+++ b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/api/ProtobufSerializationStrategy.java
@@ -112,7 +112,7 @@
Throwable error;
try {
// try to build the exception...
- Constructor<?> ctr = loader.loadClass(className).getConstructor(new Class[]{String.class});
+ Constructor<?> ctr = loader.loadClass(className).getConstructor(String.class);
error = (Throwable) ctr.newInstance(message);
} catch (Throwable e) {
// fallback to something simple..
diff --git a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/AsyncFutureInvocationStrategy.java b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/AsyncFutureInvocationStrategy.java
index 9af8ce0..ab7e6ce 100644
--- a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/AsyncFutureInvocationStrategy.java
+++ b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/AsyncFutureInvocationStrategy.java
@@ -54,7 +54,7 @@
final Object[] args = new Object[types.length];
serializationStrategy.decodeRequest(loader, types, requestStream, args);
Future<Object> future = (Future<Object>)method.invoke(target, args);
- CompletableFuture<Object> completable = null;
+ CompletableFuture<Object> completable;
if(future instanceof CompletableFuture) {
completable = (CompletableFuture<Object>)future;
}
diff --git a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/ClientInvokerImpl.java b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/ClientInvokerImpl.java
index 521445c..a226dfa 100644
--- a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/ClientInvokerImpl.java
+++ b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/ClientInvokerImpl.java
@@ -171,7 +171,7 @@
}
private MethodData getMethodData(Method method) throws IOException {
- MethodData rc = null;
+ MethodData rc;
synchronized (method_cache) {
rc = method_cache.get(method);
}
diff --git a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransport.java b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransport.java
index 7f6c4a2..94738f9 100644
--- a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransport.java
+++ b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransport.java
@@ -587,7 +587,7 @@
reduction = remaining - read_allowance;
dst.limit(dst.limit() - reduction);
}
- int rc=0;
+ int rc;
try {
rc = channel.read(dst);
read_allowance -= rc;
@@ -620,7 +620,7 @@
reduction = remaining - write_allowance;
src.limit(src.limit() - reduction);
}
- int rc = 0;
+ int rc;
try {
rc = channel.write(src);
write_allowance -= rc;
diff --git a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransportFactory.java b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransportFactory.java
index 97c4cd1..2315513 100644
--- a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransportFactory.java
+++ b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/tcp/TcpTransportFactory.java
@@ -106,7 +106,7 @@
if (path != null && path.length() > 0) {
int localPortIndex = path.indexOf(':');
try {
- Integer.parseInt(path.substring(localPortIndex + 1, path.length()));
+ Integer.parseInt(path.substring(localPortIndex + 1));
String localString = location.getScheme() + ":/" + path;
localLocation = new URI(localString);
} catch (Exception e) {
diff --git a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/IntrospectionSupport.java b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/IntrospectionSupport.java
index b95ca8e..9ff9073 100755
--- a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/IntrospectionSupport.java
+++ b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/IntrospectionSupport.java
@@ -54,16 +54,15 @@
Class<?> clazz = target.getClass();
Method[] methods = clazz.getMethods();
- for (int i = 0; i < methods.length; i++) {
- Method method = methods[i];
+ for (Method method : methods) {
String name = method.getName();
Class<?> type = method.getReturnType();
- Class<?> params[] = method.getParameterTypes();
+ Class<?>[] params = method.getParameterTypes();
if ((name.startsWith("is") || name.startsWith("get")) && params.length == 0 && type != null && isSettableType(type)) {
try {
- Object value = method.invoke(target, new Object[] {});
+ Object value = method.invoke(target);
if (value == null) {
continue;
}
@@ -74,10 +73,10 @@
}
if (name.startsWith("get")) {
name = name.substring(3, 4).toLowerCase()
- + name.substring(4);
+ + name.substring(4);
} else {
name = name.substring(2, 3).toLowerCase()
- + name.substring(3);
+ + name.substring(3);
}
props.put(optionPrefix + name, strValue);
rc = true;
@@ -175,10 +174,10 @@
// If the type is null or it matches the needed type, just use the
// value directly
if (value == null || value.getClass() == setter.getParameterTypes()[0]) {
- setter.invoke(target, new Object[] {value});
+ setter.invoke(target, value);
} else {
// We need to convert it
- setter.invoke(target, new Object[] {convert(value, setter.getParameterTypes()[0])});
+ setter.invoke(target, convert(value, setter.getParameterTypes()[0]));
}
return true;
} catch (Throwable ignore) {
@@ -220,10 +219,9 @@
// Build the method name.
name = "set" + name.substring(0, 1).toUpperCase() + name.substring(1);
Method[] methods = clazz.getMethods();
- for (int i = 0; i < methods.length; i++) {
- Method method = methods[i];
- Class<?> params[] = method.getParameterTypes();
- if (method.getName().equals(name) && params.length == 1 ) {
+ for (Method method : methods) {
+ Class<?>[] params = method.getParameterTypes();
+ if (method.getName().equals(name) && params.length == 1) {
return method;
}
}
@@ -283,7 +281,7 @@
props.put(key, value);
}
- StringBuffer buffer = new StringBuffer();
+ StringBuilder buffer = new StringBuilder();
if( useMultiLine) {
buffer.append("{\n");
boolean first = true;
@@ -339,8 +337,7 @@
}
Field[] fields = startClass.getDeclaredFields();
- for (int i = 0; i < fields.length; i++) {
- Field field = fields[i];
+ for (Field field : fields) {
if (Modifier.isStatic(field.getModifiers())) {
continue;
}
diff --git a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/URISupport.java b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/URISupport.java
index 7874ad8..85f81b9 100755
--- a/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/URISupport.java
+++ b/provider/fastbin/src/main/java/org/apache/aries/rsa/provider/fastbin/util/URISupport.java
@@ -67,7 +67,7 @@
}
public URI toURI() throws URISyntaxException {
- StringBuffer sb = new StringBuffer();
+ StringBuilder sb = new StringBuilder();
if (scheme != null) {
sb.append(scheme);
sb.append(':');
@@ -107,14 +107,14 @@
Map<String, String> rc = new HashMap<String, String>();
if (uri != null) {
String[] parameters = uri.split("&");
- for (int i = 0; i < parameters.length; i++) {
- int p = parameters[i].indexOf("=");
+ for (String parameter : parameters) {
+ int p = parameter.indexOf("=");
if (p >= 0) {
- String name = URLDecoder.decode(parameters[i].substring(0, p), "UTF-8");
- String value = URLDecoder.decode(parameters[i].substring(p + 1), "UTF-8");
+ String name = URLDecoder.decode(parameter.substring(0, p), "UTF-8");
+ String value = URLDecoder.decode(parameter.substring(p + 1), "UTF-8");
rc.put(name, value);
} else {
- rc.put(parameters[i], null);
+ rc.put(parameter, null);
}
}
}
@@ -264,7 +264,7 @@
public static String createQueryString(Map<String,String> options) throws URISyntaxException {
try {
if (options.size() > 0) {
- StringBuffer rc = new StringBuffer();
+ StringBuilder rc = new StringBuilder();
boolean first = true;
for (Map.Entry<String,String> entry : options.entrySet()) {
if (first) {
diff --git a/provider/fastbin/src/test/java/org/apache/aries/rsa/provider/fastbin/InvocationTest.java b/provider/fastbin/src/test/java/org/apache/aries/rsa/provider/fastbin/InvocationTest.java
index bd918a8..aebf4a4 100644
--- a/provider/fastbin/src/test/java/org/apache/aries/rsa/provider/fastbin/InvocationTest.java
+++ b/provider/fastbin/src/test/java/org/apache/aries/rsa/provider/fastbin/InvocationTest.java
@@ -91,8 +91,8 @@
// of primitives / objects and array dimensions.
assertEquals('a', hello.mix(0));
assertEquals('b', hello.mix(new int[]{0}));
- assertEquals('c', hello.mix(new Integer(0)));
- assertEquals('d', hello.mix(new Integer[]{new Integer(0)}));
+ assertEquals('c', hello.mix(Integer.valueOf(0)));
+ assertEquals('d', hello.mix(new Integer[]{0}));
assertEquals('e', hello.mix(new int[0][0]));
assertEquals('f', hello.mix(new Integer[0][0]));
@@ -427,9 +427,9 @@
final long end = System.nanoTime();
long latency_sum = 0;
- for (int t = 0; t < latencies.length; t++) {
- if( latencies[t] != -1 ) {
- latency_sum += latencies[t];
+ for (long latency : latencies) {
+ if (latency != -1) {
+ latency_sum += latency;
}
}
double latency_avg = ((latency_sum * 1.0d)/requests.get()) / MILLIS_IN_A_NANO;
@@ -556,9 +556,9 @@
final long end = System.nanoTime();
long latency_sum = 0;
- for (int t = 0; t < latencies.length; t++) {
- if( latencies[t] != -1 ) {
- latency_sum += latencies[t];
+ for (long latency : latencies) {
+ if (latency != -1) {
+ latency_sum += latency;
}
}
double latency_avg = ((latency_sum * 1.0d)/requests.get()) / MILLIS_IN_A_NANO;
diff --git a/provider/fastbin/src/test/java/org/apache/aries/rsa/provider/fastbin/tcp/LengthPrefixedCodecTest.java b/provider/fastbin/src/test/java/org/apache/aries/rsa/provider/fastbin/tcp/LengthPrefixedCodecTest.java
index f440a72..e5aa03c 100644
--- a/provider/fastbin/src/test/java/org/apache/aries/rsa/provider/fastbin/tcp/LengthPrefixedCodecTest.java
+++ b/provider/fastbin/src/test/java/org/apache/aries/rsa/provider/fastbin/tcp/LengthPrefixedCodecTest.java
@@ -72,12 +72,12 @@
@Test
public void testGetWriteCounter() throws Exception {
- assertEquals(0l, codec.getWriteCounter());
+ assertEquals(0L, codec.getWriteCounter());
}
@Test
public void testGetReadCounter() throws Exception {
- assertEquals(0l, codec.getReadCounter());
+ assertEquals(0L, codec.getReadCounter());
}
@Test
@@ -89,7 +89,7 @@
assertEquals(BufferState.WAS_EMPTY, state);
assertEquals(false, codec.full());
assertEquals(false, codec.empty());
- assertEquals(0l, codec.getWriteCounter());
+ assertEquals(0L, codec.getWriteCounter());
}
@Test
@@ -103,7 +103,7 @@
assertEquals(BufferState.NOT_EMPTY, state);
assertEquals(false, codec.full());
assertEquals(false, codec.empty());
- assertEquals(0l, codec.getWriteCounter());
+ assertEquals(0L, codec.getWriteCounter());
}
@Test
diff --git a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java
index 4a4053a..5656a59 100644
--- a/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java
+++ b/provider/tcp/src/main/java/org/apache/aries/rsa/provider/tcp/MethodInvoker.java
@@ -44,9 +44,8 @@
public Object invoke(String methodName, Object[] args) {
Class<?>[] parameterTypesAr = getTypes(args);
- Method method = null;
try {
- method = getMethod(methodName, parameterTypesAr);
+ Method method = getMethod(methodName, parameterTypesAr);
return method.invoke(service, args);
} catch (Throwable e) {
return e;
diff --git a/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpProviderPrimitiveTest.java b/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpProviderPrimitiveTest.java
index 25ff6ea..28571ca 100644
--- a/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpProviderPrimitiveTest.java
+++ b/provider/tcp/src/test/java/org/apache/aries/rsa/provider/tcp/TcpProviderPrimitiveTest.java
@@ -89,7 +89,7 @@
@Test
public void testLong() {
- Assert.assertEquals(1l, myServiceProxy.callLong(1l));
+ Assert.assertEquals(1L, myServiceProxy.callLong(1L));
}
@Test
diff --git a/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java b/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java
index 1586307..18cee10 100644
--- a/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java
+++ b/rsa/src/main/java/org/apache/aries/rsa/core/RemoteServiceAdminCore.java
@@ -483,10 +483,8 @@
protected void removeServiceExports(ServiceReference<?> sref) {
List<ExportRegistration> regs = new ArrayList<ExportRegistration>(1);
synchronized (exportedServices) {
- for (Iterator<Collection<ExportRegistration>> it = exportedServices.values().iterator(); it.hasNext();) {
- Collection<ExportRegistration> value = it.next();
- for (Iterator<ExportRegistration> it2 = value.iterator(); it2.hasNext();) {
- ExportRegistration er = it2.next();
+ for (Collection<ExportRegistration> value : exportedServices.values()) {
+ for (ExportRegistration er : value) {
if (er.getExportReference().getExportedService().equals(sref)) {
regs.add(er);
}
diff --git a/rsa/src/test/java/org/apache/aries/rsa/core/RemoteServiceAdminCoreTest.java b/rsa/src/test/java/org/apache/aries/rsa/core/RemoteServiceAdminCoreTest.java
index c6f3378..4b640d2 100644
--- a/rsa/src/test/java/org/apache/aries/rsa/core/RemoteServiceAdminCoreTest.java
+++ b/rsa/src/test/java/org/apache/aries/rsa/core/RemoteServiceAdminCoreTest.java
@@ -340,7 +340,7 @@
Bundle b = c.createMock(Bundle.class);
expect(b.getBundleContext()).andReturn(bc).anyTimes();
expect(b.getSymbolicName()).andReturn("rsabundle").anyTimes();
- expect(b.getBundleId()).andReturn(10l).anyTimes();
+ expect(b.getBundleId()).andReturn(10L).anyTimes();
expect(b.getVersion()).andReturn(new Version("1.0.0")).anyTimes();
expect(b.getHeaders()).andReturn(new Hashtable<String, String>()).anyTimes();
return b;