import java.util.regex.Pattern;
-public class Processer implements Runnable {
+public class Processer implements Runnable, ResultNotify {
private Socket client;
//Conform status.
private final int R502CommandNotImplemented = 502;
//SMTP command
- private final String COMMAND_RCPT_TO = "RCPT TO:";
- private final String COMMAND_DATA = "DATA";
- private final String COMMAND_RESET = "RSET";
- private final String COMMAND_TURN = "TURN";
+ private final String COMMAND_RCPT_TO = "RCPT TO:"; // NOI18N
+ private final String COMMAND_DATA = "DATA"; // NOI18N
+ private final String COMMAND_RESET = "RSET"; // NOI18N
+ private final String COMMAND_TURN = "TURN"; // NOI18N
//private final String COMMAND_NOOP = "NOOP";
//private final String COMAMND_QUIT = "QUIT";
server.getInputStream()));
serverWriter = new PrintWriter(new SmtpBufferedWriter(
new OutputStreamWriter(server.getOutputStream(),
- "ISO-8859-1")), true);
+ "ISO-8859-1")), true); // NOI18N
clientReader = new BufferedReader(new InputStreamReader(
client.getInputStream()));
clientWriter = new PrintWriter(new SmtpBufferedWriter(
new OutputStreamWriter(client.getOutputStream(),
- "ISO-8859-1")), true);
+ "ISO-8859-1")), true); // NOI18N
smtpStart(serverReader, clientWriter, clientReader, serverWriter);
client.close();
client = null;
} catch (IOException e) {
- System.err.println("Execption occurred in Processer.");
- e.printStackTrace();
+ String errorMessage = java.util.ResourceBundle.getBundle("org/jent/checksmtp/Bundle").getString("Processer.error.Execption_occurred_at_starting_SMTP_thread.");
+ System.err.println(errorMessage);
+ new MessageDialogUI(errorMessage, e, MessageDialogUI.ERROR_MODE);
+ } catch (RuntimeException runEx) {
+ new MessageDialogUI(java.util.ResourceBundle.getBundle("org/jent/checksmtp/Bundle").getString("Processer.error.Runtime_Exception_occurred_in_SMTP_parse"),
+ runEx, MessageDialogUI.ERROR_MODE);
} finally {
//for failsafe Socket close.
if (server != null) {
line = clientReader.readLine();
serverWriter.println(line);
- if (line.equals(".")) {
+ if (line.equals(".")) { // NOI18N
break; //end of mail dara.
}
}
while (true) {
line = clientReader.readLine();
+ if (line == null) {
+ //Finish client stream.
+ System.err.println("Client disconnected.");
+ break; //force disconnect.
+ }
+
if (isRcptTo(line)) {
//stored To: address.
toList.add(formatToAddress(line));
}
//checkout toList
- new ToListDialog(this, toList);
+ new ToListUI(this, toList);
while (result == RESULT_UNKNOWN) {
try {
wait();
}
} catch (InterruptedException e) {
- System.err.println("Dialg wait interrupted");
+ System.err.println("Confirm dialog wait interrupted");
e.printStackTrace();
}
}
- if (result == RESULT_NG) {
+ if (result != RESULT_OK ) {
System.out.println("CANCEL sending mail.");
serverWriter.println(COMMAND_RESET);
line = serverReader.readLine(); //Server MUST retrun "250 OK"
break; // client read while(true);
}
+ if (line == null ) {
+ break;
+ }
serverWriter.println(line);
System.out.println(line);
}
}
} catch (IOException e) {
- e.printStackTrace();
+ String errorMessage = java.util.ResourceBundle.getBundle("org/jent/checksmtp/Bundle").getString("Processer.error.Error_occurred_in_SMTP_parse.");
+ System.err.println(errorMessage);
+ new MessageDialogUI(errorMessage, e, MessageDialogUI.ERROR_MODE);
+ } catch (RuntimeException runEx) {
+ new MessageDialogUI(java.util.ResourceBundle.getBundle("org/jent/checksmtp/Bundle").getString("Processer.error.Runtime_Exception_occurred_in_SMTP_parse"),
+ runEx, MessageDialogUI.ERROR_MODE);
}
System.out.println("End of Session.");
//Splitting Mail address.
String str = line.substring(COMMAND_RCPT_TO.length() + 1);
- Pattern pattern = Pattern.compile("[< >]+");
+ Pattern pattern = Pattern.compile("[< >]+"); // NOI18N
String[] address = pattern.split(str); // 0<1>2 3
int i;
for (i = 0; i < address.length; i++) {
- if (!address[i].equals("")) {
+ if (!address[i].equals("")) { // NOI18N
break;
}
}
//Search LDAP
- str = address[i] + " " + LDAPSearch.search(address[i]);
+ str = address[i] + " " + LDAPSearch.search(address[i]); // NOI18N
return str;
}
}