Polishing

This commit is contained in:
Juergen Hoeller 2015-06-11 18:01:00 +02:00
parent 2109db0c02
commit bccdefdf30
9 changed files with 31 additions and 18 deletions

View File

@ -155,7 +155,7 @@ public abstract class AsyncExecutionAspectSupport implements BeanFactoryAware {
/**
* Handles a fatal error thrown while asynchronously invoking the specified
* {@link Method}.
* <p>If the return type of the method is a {@link java.util.concurrent.Future} object, the original
* <p>If the return type of the method is a {@link Future} object, the original
* exception can be propagated by just throwing it at the higher level. However,
* for all other cases, the exception will not be transmitted back to the client.
* In that later case, the current {@link AsyncUncaughtExceptionHandler} will be

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2015 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.
@ -48,21 +48,23 @@ public class ExecutorBeanDefinitionParserTests {
"executorContext.xml", ExecutorBeanDefinitionParserTests.class);
}
@Test
public void defaultExecutor() throws Exception {
Object executor = this.context.getBean("default");
ThreadPoolTaskExecutor executor = this.context.getBean("default", ThreadPoolTaskExecutor.class);
assertEquals(1, getCorePoolSize(executor));
assertEquals(Integer.MAX_VALUE, getMaxPoolSize(executor));
assertEquals(Integer.MAX_VALUE, getQueueCapacity(executor));
assertEquals(60, getKeepAliveSeconds(executor));
assertEquals(false, getAllowCoreThreadTimeOut(executor));
FutureTask<String> task = new FutureTask<String>(new Callable<String>() {
@Override
public String call() throws Exception {
return "foo";
}
});
((ThreadPoolTaskExecutor)executor).execute(task);
executor.execute(task);
assertEquals("foo", task.get());
}

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 the original author or authors.
* Copyright 2002-2015 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.
@ -41,6 +41,8 @@ import org.springframework.util.ReflectionUtils;
*/
class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublisher {
// Various JMS 2.0 MessageProducer methods, if available
private static final Method setDeliveryDelayMethod =
ClassUtils.getMethodIfAvailable(MessageProducer.class, "setDeliveryDelay", long.class);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 the original author or authors.
* Copyright 2002-2015 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.
@ -78,9 +78,11 @@ import org.springframework.util.ReflectionUtils;
*/
public class CachingConnectionFactory extends SingleConnectionFactory {
/** The JMS 2.0 Session.createSharedConsumer method, if available */
private static final Method createSharedConsumerMethod = ClassUtils.getMethodIfAvailable(
Session.class, "createSharedConsumer", Topic.class, String.class, String.class);
/** The JMS 2.0 Session.createSharedDurableConsumer method, if available */
private static final Method createSharedDurableConsumerMethod = ClassUtils.getMethodIfAvailable(
Session.class, "createSharedDurableConsumer", Topic.class, String.class, String.class);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2014 the original author or authors.
* Copyright 2002-2015 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.
@ -101,6 +101,7 @@ public class JmsTemplate extends JmsDestinationAccessor implements JmsOperations
public static final long RECEIVE_TIMEOUT_INDEFINITE_WAIT = 0;
/** The JMS 2.0 MessageProducer.setDeliveryDelay method, if available */
private static final Method setDeliveryDelayMethod =
ClassUtils.getMethodIfAvailable(MessageProducer.class, "setDeliveryDelay", long.class);

View File

@ -134,9 +134,11 @@ import org.springframework.util.ReflectionUtils;
public abstract class AbstractMessageListenerContainer extends AbstractJmsListeningContainer
implements MessageListenerContainer {
/** The JMS 2.0 Session.createSharedConsumer method, if available */
private static final Method createSharedConsumerMethod = ClassUtils.getMethodIfAvailable(
Session.class, "createSharedConsumer", Topic.class, String.class, String.class);
/** The JMS 2.0 Session.createSharedDurableConsumer method, if available */
private static final Method createSharedDurableConsumerMethod = ClassUtils.getMethodIfAvailable(
Session.class, "createSharedDurableConsumer", Topic.class, String.class, String.class);

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2015 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.
@ -33,6 +33,7 @@ public class NoSupportAsyncWebRequest extends ServletWebRequest implements Async
super(request, response);
}
@Override
public void addCompletionHandler(Runnable runnable) {
// ignored
@ -53,6 +54,7 @@ public class NoSupportAsyncWebRequest extends ServletWebRequest implements Async
return false;
}
// Not supported
@Override

View File

@ -1,5 +1,5 @@
/*
* Copyright 2002-2012 the original author or authors.
* Copyright 2002-2015 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.
@ -35,7 +35,7 @@ import org.springframework.web.context.request.ServletWebRequest;
* <p>The servlet and all filters involved in an async request must have async
* support enabled using the Servlet API or by adding an
* {@code <async-support>true</async-support>} element to servlet and filter
* declarations in web.xml
* declarations in {@code web.xml}.
*
* @author Rossen Stoyanchev
* @since 3.2
@ -62,9 +62,9 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements
super(request, response);
}
/**
* {@inheritDoc}
* <p>In Servlet 3 async processing, the timeout period begins after the
* In Servlet 3 async processing, the timeout period begins after the
* container processing thread has exited.
*/
@Override
@ -85,7 +85,7 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements
@Override
public boolean isAsyncStarted() {
return ((this.asyncContext != null) && getRequest().isAsyncStarted());
return (this.asyncContext != null && getRequest().isAsyncStarted());
}
/**
@ -106,6 +106,7 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements
"or by adding \"<async-supported>true</async-supported>\" to servlet and " +
"filter declarations in web.xml.");
Assert.state(!isAsyncComplete(), "Async processing has already completed");
if (isAsyncStarted()) {
return;
}
@ -122,6 +123,7 @@ public class StandardServletAsyncWebRequest extends ServletWebRequest implements
this.asyncContext.dispatch();
}
// ---------------------------------------------------------------------
// Implementation of AsyncListener methods
// ---------------------------------------------------------------------

View File

@ -57,6 +57,7 @@ public class CommonsMultipartFile implements MultipartFile, Serializable {
this.size = this.fileItem.getSize();
}
/**
* Return the underlying {@code org.apache.commons.fileupload.FileItem}
* instance. There is hardly any need to access this.
@ -65,7 +66,6 @@ public class CommonsMultipartFile implements MultipartFile, Serializable {
return this.fileItem;
}
@Override
public String getName() {
return this.fileItem.getFieldName();
@ -78,18 +78,18 @@ public class CommonsMultipartFile implements MultipartFile, Serializable {
// Should never happen.
return "";
}
// check for Unix-style path
// Check for Unix-style path
int pos = filename.lastIndexOf("/");
if (pos == -1) {
// check for Windows-style path
// Check for Windows-style path
pos = filename.lastIndexOf("\\");
}
if (pos != -1) {
// any sort of path separator found
// Any sort of path separator found...
return filename.substring(pos + 1);
}
else {
// plain name
// A plain name
return filename;
}
}