summaryrefslogtreecommitdiffstats
path: root/src/main/java/org/openslx/filetransfer/Listener.java
diff options
context:
space:
mode:
authorSimon Rettberg2014-07-25 14:20:00 +0200
committerSimon Rettberg2014-07-25 14:20:00 +0200
commit036807ab4006bf81188e5324fa53e34b1c7d5ae6 (patch)
tree77c48ee55cb9973c6a594cd2fde1c212d543c45e /src/main/java/org/openslx/filetransfer/Listener.java
parent[CRCFile] Add checks to prevent null pointer exception (diff)
downloadmaster-sync-shared-036807ab4006bf81188e5324fa53e34b1c7d5ae6.tar.gz
master-sync-shared-036807ab4006bf81188e5324fa53e34b1c7d5ae6.tar.xz
master-sync-shared-036807ab4006bf81188e5324fa53e34b1c7d5ae6.zip
[Filetransfer] Add more sanity checks and error handling, remodel class structure, introduce common base class for Uploader and Downloader
Diffstat (limited to 'src/main/java/org/openslx/filetransfer/Listener.java')
-rw-r--r--src/main/java/org/openslx/filetransfer/Listener.java20
1 files changed, 14 insertions, 6 deletions
diff --git a/src/main/java/org/openslx/filetransfer/Listener.java b/src/main/java/org/openslx/filetransfer/Listener.java
index 778804d..04f82f5 100644
--- a/src/main/java/org/openslx/filetransfer/Listener.java
+++ b/src/main/java/org/openslx/filetransfer/Listener.java
@@ -1,5 +1,7 @@
package org.openslx.filetransfer;
+import java.io.IOException;
+
import javax.net.ssl.SSLContext;
import javax.net.ssl.SSLServerSocket;
import javax.net.ssl.SSLServerSocketFactory;
@@ -42,10 +44,10 @@ public class Listener extends Thread
*/
private void listen()
{
+ SSLServerSocket welcomeSocket = null;
try {
SSLServerSocketFactory sslServerSocketFactory = context.getServerSocketFactory();
- SSLServerSocket welcomeSocket =
- (SSLServerSocket)sslServerSocketFactory.createServerSocket( this.port );
+ welcomeSocket = (SSLServerSocket)sslServerSocketFactory.createServerSocket( this.port );
while ( !isInterrupted() ) {
SSLSocket connectionSocket = (SSLSocket)welcomeSocket.accept();
@@ -54,27 +56,33 @@ public class Listener extends Thread
byte[] b = new byte[ 1 ];
int length = connectionSocket.getInputStream().read( b );
- log.info( "Length (Listener): " + length );
+ log.debug( "Length (Listener): " + length );
if ( b[0] == U ) {
- log.info( "recognized U --> starting Downloader" );
+ log.debug( "recognized U --> starting Downloader" );
// --> start Downloader(socket).
Downloader d = new Downloader( connectionSocket );
incomingEvent.incomingDownloader( d );
}
else if ( b[0] == D ) {
- log.info( "recognized D --> starting Uploader" );
+ log.debug( "recognized D --> starting Uploader" );
// --> start Uploader(socket).
Uploader u = new Uploader( connectionSocket );
incomingEvent.incomingUploader( u );
}
else {
- log.info( "Got invalid option ... close connection" );
+ log.debug( "Got invalid option ... close connection" );
connectionSocket.close();
}
}
} catch ( Exception e ) {
e.printStackTrace(); // same as writing to System.err.println(e.toString).
+ } finally {
+ try {
+ welcomeSocket.close();
+ } catch (IOException e) {
+ // Nothing we can do
+ }
}
}