@@ -488,19 +488,18 @@ public <T, C> T executeWithClient(ClientCallback<C, T> callback) {
488488 }
489489
490490 private StreamHolder payloadToInputStream (Message <?> message ) throws MessageDeliveryException {
491+ Object payload = message .getPayload ();
491492 try {
492- Object payload = message .getPayload ();
493- InputStream dataInputStream = null ;
494- String name = null ;
495493 if (payload instanceof File ) {
496494 File inputFile = (File ) payload ;
497495 if (inputFile .exists ()) {
498- dataInputStream = new BufferedInputStream ( new FileInputStream ( inputFile ));
499- name = inputFile .getAbsolutePath ();
496+ return new StreamHolder (
497+ new BufferedInputStream ( new FileInputStream ( inputFile )), inputFile .getAbsolutePath () );
500498 }
501499 }
502500 else if (payload instanceof byte [] || payload instanceof String ) {
503501 byte [] bytes ;
502+ String name ;
504503 if (payload instanceof String ) {
505504 bytes = ((String ) payload ).getBytes (this .charset );
506505 name = "String payload" ;
@@ -509,34 +508,27 @@ else if (payload instanceof byte[] || payload instanceof String) {
509508 bytes = (byte []) payload ;
510509 name = "byte[] payload" ;
511510 }
512- dataInputStream = new ByteArrayInputStream (bytes );
511+ return new StreamHolder ( new ByteArrayInputStream (bytes ), name );
513512 }
514513 else if (payload instanceof InputStream ) {
515- dataInputStream = (InputStream ) payload ;
516- name = "InputStream payload" ;
514+ return new StreamHolder ((InputStream ) payload , "InputStream payload" );
517515 }
518516 else if (payload instanceof Resource ) {
519517 Resource resource = (Resource ) payload ;
520- dataInputStream = resource .getInputStream ();
521518 String filename = resource .getFilename ();
522- name = filename != null ? filename : "Resource payload" ;
519+ return new StreamHolder ( resource . getInputStream (), filename != null ? filename : "Resource payload" ) ;
523520 }
524521 else {
525522 throw new IllegalArgumentException ("Unsupported payload type ["
526523 + payload .getClass ().getName ()
527524 + "]. The only supported payloads are " +
528525 "java.io.File, java.lang.String, byte[], and InputStream" );
529526 }
530- if (dataInputStream == null ) {
531- return null ;
532- }
533- else {
534- return new StreamHolder (dataInputStream , name );
535- }
536527 }
537528 catch (Exception e ) {
538529 throw new MessageDeliveryException (message , "Failed to create sendable file." , e );
539530 }
531+ return null ;
540532 }
541533
542534 private void sendFileToRemoteDirectory (InputStream inputStream , String temporaryRemoteDirectoryArg ,
0 commit comments