Java.net.SocketException: software caused connection interruption: socket write error

I am creating an application to send mail with an attachment. When I attach a small zip file, it works fine, but when I attach a larger (> 1mb) zip file, it returns the error "java.net.SocketException: software caused a connection interrupt: socket write error", and my application hangs.

My code for attaching files:

protected void addAtachments(String[] attachments, Multipart multipart) throws MessagingException, AddressException { System.out.println("attaching"); for (int i = 0; i <= attachments.length - 1; i++) { String filename = attachments[i]; MimeBodyPart attachmentBodyPart = new MimeBodyPart(); //use a JAF FileDataSource as it does MIME type detection DataSource source = new FileDataSource(filename); attachmentBodyPart.setDataHandler(new DataHandler(source)); attachmentBodyPart.setFileName(filename); //add the attachment multipart.addBodyPart(attachmentBodyPart); System.out.println("attachment added: " +attachments[i]); } 

Also, is there a way to attach a file faster using javamail? It takes too much time to send an attached message.

Stack trace:

 DEBUG: getProvider() returning javax.mail.Provider[TRANSPORT,smtp,com.sun.mail.smtp.SMTPTransport,Sun Microsystems, Inc] DEBUG SMTP: useEhlo true, useAuth true DEBUG SMTP: trying to connect to host "smtp.gmail.com", port 25, isSSL false 220 mx.google.com ESMTP g16sm81301847ibs.8 DEBUG SMTP: connected to host "smtp.gmail.com", port: 25 EHLO vishal 250-mx.google.com at your service, [122.178.231.153] 250-SIZE 35882577 250-8BITMIME 250-STARTTLS 250 ENHANCEDSTATUSCODES DEBUG SMTP: Found extension "SIZE", arg "35882577" DEBUG SMTP: Found extension "8BITMIME", arg "" DEBUG SMTP: Found extension "STARTTLS", arg "" DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" STARTTLS 220 2.0.0 Ready to start TLS EHLO vishal 250-mx.google.com at your service, [122.178.231.153] 250-SIZE 35882577 250-8BITMIME 250-AUTH LOGIN PLAIN XOAUTH 250 ENHANCEDSTATUSCODES DEBUG SMTP: Found extension "SIZE", arg "35882577" DEBUG SMTP: Found extension "8BITMIME", arg "" DEBUG SMTP: Found extension "AUTH", arg "LOGIN PLAIN XOAUTH" DEBUG SMTP: Found extension "ENHANCEDSTATUSCODES", arg "" DEBUG SMTP: Attempt to authenticate AUTH LOGIN 334 VXNlcm5hbWU6 dmlzaGFscmsuMDU1QGdtYWlsLmNvbQ== 334 UGFzc3dvcmQ6 dmlzaGFsQG9yYWNsZQ== 235 2.7.0 Accepted DEBUG SMTP: use8bit false MAIL FROM:< xyz@gmail.com > 250 2.1.0 OK g16sm81301847ibs.8 RCPT TO:< xyz@yahoo.co.in > 250 2.1.5 OK g16sm81301847ibs.8 DEBUG SMTP: Verified Addresses DEBUG SMTP: xyz@yahoo.co.in DATA ------=_Part_1_25068634.1322105586140 Content-Type: application/octet-stream; name="C:\\Documents and Settings\\Vishal Kulkarni\\MyDocuments\\akon.zip" Content-Transfer-Encoding: base64 Content-Disposition: attachment; filename="C:\\Documents and Settings\\Vishal Kulkarni\\My Documents\\akon.zip" UEsDBBQACAAIAGJMcj8AAAAAAAAAAAAAAAAkAAAARW1pbmVtLSAwMSAtIFB1YmxpYyBBbm5vdW5j ZW1lbnQubXAz1LtlVBxB1y46DK7BneDu7u7uHmRw9+AwgxNcg7tb8BAgBCe4S7AQCBIkuATtm7zf e++Pc3/cX3etc2qtvaa6q2s/PU937X6qa7eyHC886G+B95XVVFf/WyH5a7Zu9iAHHx8PEU5OVw9e DnsviKtrAIfXWz1lPZ6/zfh/TeutlYujNZW0m5v7WzdrW1dbNx89HVnVvy3gv8atZyyv8/cX8V9d WFhYT1ZT47+bTNyCzHrSajJ/q1h/TdfF0ZVK1wFiE0ClpqWlo2zwdx8jCGSozqlua+MIkXWBeHtr eTm6QrwClOVAn0Ms52h/7qhGlyiVszDJvf5vB+b/pYOurbW7m83/dPlfy3+7/MXWsoU4G0Bc3tqC XqD/z34cEEja19YLYm+rZutr6wJSwwSB9LTkuf82If81eVdHN1vX/5fT/3ML8JiC8P91jJHj3/sB 

out put continues to print this encrypted data after 15 or 20 minutes, causing an error

 java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at com.sun.net.ssl.internal.ssl.OutputRecord.writeBuffer(OutputRecord.java:283) at com.sun.net.ssl.internal.ssl.OutputRecord.write(OutputRecord.java:272) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:665) at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59) at com.sun.mail.util.TraceOutputStream.write(TraceOutputStream.java:101) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109) at com.sun.mail.util.CRLFOutputStream.write(CRLFOutputStream.java:87) at com.sun.mail.smtp.SMTPOutputStream.write(SMTPOutputStream.java:74) at com.sun.mail.util.CRLFOutputStream.write(CRLFOutputStream.java:65) at com.sun.mail.util.BASE64EncoderStream.encode(BASE64EncoderStream.java:182) at com.sun.mail.util.BASE64EncoderStream.write(BASE64EncoderStream.java:135) at com.sun.mail.util.BASE64EncoderStream.write(BASE64EncoderStream.java:96) at javax.activation.DataHandler.writeTo(DataHandler.java:293) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:845) at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:361) at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:85) at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:868) at javax.activation.DataHandler.writeTo(DataHandler.java:301) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350) at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1683) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:585) at escape.SendMailUsingAuthentication.postMail(SendMailUsingAuthentication.java:131) at escape.SendMailFrame.sendButtonActionPerformed(SendMailFrame.java:427) at escape.SendMailFrame.access$300(SendMailFrame.java:29) at escape.SendMailFrame$4.actionPerformed(SendMailFrame.java:135) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3260) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) javax.mail.MessagingException: IOException while sending message; nested exception is: at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) java.net.SocketException: Software caused connection abort: socket write error at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:625) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at escape.SendMailUsingAuthentication.postMail(SendMailUsingAuthentication.java:131) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at escape.SendMailFrame.sendButtonActionPerformed(SendMailFrame.java:427) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at escape.SendMailFrame.access$300(SendMailFrame.java:29) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at escape.SendMailFrame$4.actionPerformed(SendMailFrame.java:135) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.Component.processMouseEvent(Component.java:6038) at javax.swing.JComponent.processMouseEvent(JComponent.java:3260) at java.awt.Component.processEvent(Component.java:5803) at java.awt.Container.processEvent(Container.java:2058) at java.awt.Component.dispatchEventImpl(Component.java:4410) at java.awt.Container.dispatchEventImpl(Container.java:2116) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4322) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3986) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3916) at java.awt.Container.dispatchEventImpl(Container.java:2102) at java.awt.Window.dispatchEventImpl(Window.java:2429) at java.awt.Component.dispatchEvent(Component.java:4240) at java.awt.EventQueue.dispatchEvent(EventQueue.java:599) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:273) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:183) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:173) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:168) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:160) at java.awt.EventDispatchThread.run(EventDispatchThread.java:121) Caused by: java.net.SocketException: Software caused connection abort: socket write error at java.net.SocketOutputStream.socketWrite0(Native Method) at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92) at java.net.SocketOutputStream.write(SocketOutputStream.java:136) at com.sun.net.ssl.internal.ssl.OutputRecord.writeBuffer(OutputRecord.java:283) at com.sun.net.ssl.internal.ssl.OutputRecord.write(OutputRecord.java:272) at com.sun.net.ssl.internal.ssl.SSLSocketImpl.writeRecord(SSLSocketImpl.java:665) at com.sun.net.ssl.internal.ssl.AppOutputStream.write(AppOutputStream.java:59) at com.sun.mail.util.TraceOutputStream.write(TraceOutputStream.java:101) at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65) at java.io.BufferedOutputStream.write(BufferedOutputStream.java:109) at com.sun.mail.util.CRLFOutputStream.write(CRLFOutputStream.java:87) at com.sun.mail.smtp.SMTPOutputStream.write(SMTPOutputStream.java:74) at com.sun.mail.util.CRLFOutputStream.write(CRLFOutputStream.java:65) at com.sun.mail.util.BASE64EncoderStream.encode(BASE64EncoderStream.java:182) at com.sun.mail.util.BASE64EncoderStream.write(BASE64EncoderStream.java:135) at com.sun.mail.util.BASE64EncoderStream.write(BASE64EncoderStream.java:96) at javax.activation.DataHandler.writeTo(DataHandler.java:293) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:845) IOException while sending message at javax.mail.internet.MimeMultipart.writeTo(MimeMultipart.java:361) at com.sun.mail.handlers.multipart_mixed.writeTo(multipart_mixed.java:85) at javax.activation.ObjectDataContentHandler.writeTo(DataHandler.java:868) at javax.activation.DataHandler.writeTo(DataHandler.java:301) at javax.mail.internet.MimeBodyPart.writeTo(MimeBodyPart.java:1350) at javax.mail.internet.MimeMessage.writeTo(MimeMessage.java:1683) at com.sun.mail.smtp.SMTPTransport.sendMessage(SMTPTransport.java:585) ... 29 more 

if the attached file is small, it works, but takes 10 to 11 minutes to send mail

I use Jfilechooser to select files to attach

+4
source share
1 answer

The server may have disconnected because it took too long to send a message to the server. Turn on session debugging and the trace protocol may provide additional information.

Where is the zip file stored? This is on the local drive, where is the JavaMail application running?

0
source

Source: https://habr.com/ru/post/1382749/


All Articles