Browse Source

Revised Jms2MessageProducerInvocationHandler implementation with switch statement

Issue: SPR-11950
pull/580/merge
Juergen Hoeller 12 years ago
parent
commit
b6a7957dc4
  1. 24
      spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java

24
spring-jms/src/main/java/org/springframework/jms/connection/CachedMessageProducer.java

@ -275,19 +275,17 @@ class CachedMessageProducer implements MessageProducer, QueueSender, TopicPublis
try { try {
if (method.getName().equals("send") && args != null && if (method.getName().equals("send") && args != null &&
completionListenerClass.equals(method.getParameterTypes()[args.length - 1])) { completionListenerClass.equals(method.getParameterTypes()[args.length - 1])) {
if (args.length == 2) { switch (args.length) {
return sendWithCompletionListenerMethod.invoke( case 2: // send(message, completionListener)
target, args[0], deliveryMode, priority, timeToLive, args[1]); return sendWithCompletionListenerMethod.invoke(
} target, args[0], deliveryMode, priority, timeToLive, args[1]);
else if (args.length == 3) { case 3: // send(destination, message, completionListener)
return sendWithDestinationAndCompletionListenerMethod.invoke( return sendWithDestinationAndCompletionListenerMethod.invoke(
target, args[0], args[1], deliveryMode, priority, timeToLive, args[2]); target, args[0], args[1], deliveryMode, priority, timeToLive, args[2]);
} else if (args.length == 5) { case 5: // send(message, deliveryMode, priority, timeToLive, completionListener)
return sendWithCompletionListenerMethod.invoke( return sendWithCompletionListenerMethod.invoke(target, args);
target, args[0], args[1], args[2], args[3], args[4]); case 6: // send(destination, message, deliveryMode, priority, timeToLive, completionListener)
} else if (args.length == 6) { return sendWithDestinationAndCompletionListenerMethod.invoke(target, args);
return sendWithDestinationAndCompletionListenerMethod.invoke(
target, args[0], args[1], args[2], args[3], args[4], args[5]);
} }
} }
return method.invoke(CachedMessageProducer.this, args); return method.invoke(CachedMessageProducer.this, args);

Loading…
Cancel
Save