Author: dbkr
Date: 2008-04-13 21:39:22 +0000 (Sun, 13 Apr 2008)
New Revision: 19272
Modified:
trunk/apps/Freemail/src/freemail/AckProcrastinator.java
trunk/apps/Freemail/src/freemail/Freemail.java
trunk/apps/Freemail/src/freemail/InboundContact.java
trunk/apps/Freemail/src/freemail/MailLog.java
trunk/apps/Freemail/src/freemail/MailMessage.java
trunk/apps/Freemail/src/freemail/MailSite.java
trunk/apps/Freemail/src/freemail/MessageBank.java
trunk/apps/Freemail/src/freemail/MessageSender.java
trunk/apps/Freemail/src/freemail/NIMContact.java
trunk/apps/Freemail/src/freemail/OutboundContact.java
trunk/apps/Freemail/src/freemail/RTSFetcher.java
trunk/apps/Freemail/src/freemail/RTSLog.java
trunk/apps/Freemail/src/freemail/SingleAccountWatcher.java
trunk/apps/Freemail/src/freemail/SlotManager.java
trunk/apps/Freemail/src/freemail/fcp/HighLevelFCPClient.java
trunk/apps/Freemail/src/freemail/imap/IMAPHandler.java
trunk/apps/Freemail/src/freemail/imap/IMAPMessageFlags.java
trunk/apps/Freemail/src/freemail/smtp/SMTPHandler.java
trunk/apps/Freemail/src/freemail/utils/DateStringFactory.java
Log:
Some fixes from FindBugs
Modified: trunk/apps/Freemail/src/freemail/AckProcrastinator.java
===================================================================
--- trunk/apps/Freemail/src/freemail/AckProcrastinator.java 2008-04-13
20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/AckProcrastinator.java 2008-04-13
21:39:22 UTC (rev 19272)
@@ -52,13 +52,11 @@
private static final int RANDOM_ACK_SIZE = 512;
private static File ackdir;
- private static Random rnd;
+ private static Random rnd = new Random();
- public AckProcrastinator() {
- rnd = new Random();
- File ackdir = getAckDir();
- if (!ackdir.exists()) {
- ackdir.mkdir();
+ public AckProcrastinator() throws IOException {
+ if (!ackdir.exists() && !ackdir.mkdir()) {
+ throw new IOException("Coudn't create ACK dir!");
}
}
Modified: trunk/apps/Freemail/src/freemail/Freemail.java
===================================================================
--- trunk/apps/Freemail/src/freemail/Freemail.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/Freemail.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -45,7 +45,7 @@
private static final String GLOBALDATADIR = "globaldata";
private static final String ACKDIR = "delayedacks";
protected static final String CFGFILE = "globalconfig";
- private static File datadir;
+ private File datadir;
private static File globaldatadir;
private static File tempdir;
protected static FCPConnection fcpconn = null;
@@ -72,27 +72,21 @@
configurator.register("loglevel", new Logger(), "normal|error");
configurator.register("datadir", this,
Freemail.DEFAULT_DATADIR);
- if (!getDataDir().exists()) {
- if (!getDataDir().mkdir()) {
- Logger.error(this,"Freemail: Couldn't create
data directory. Please ensure that the user you are running Freemail as has
write access to its working directory");
- throw new IOException("Couldn't create data
dir");
- }
+ if (!datadir.exists() && !datadir.mkdir()) {
+ Logger.error(this,"Freemail: Couldn't create data
directory. Please ensure that the user you are running Freemail as has write
access to its working directory");
+ throw new IOException("Couldn't create data dir");
}
configurator.register("globaldatadir", this, GLOBALDATADIR);
- if (!getGlobalDataDir().exists()) {
- if (!getGlobalDataDir().mkdir()) {
- Logger.error(this,"Freemail: Couldn't create
global data directory. Please ensure that the user you are running Freemail as
has write access to its working directory");
- throw new IOException("Couldn't create data
dir");
- }
+ if (!globaldatadir.exists() && !globaldatadir.mkdir()) {
+ Logger.error(this,"Freemail: Couldn't create global
data directory. Please ensure that the user you are running Freemail as has
write access to its working directory");
+ throw new IOException("Couldn't create data dir");
}
configurator.register("tempdir", this, Freemail.TEMPDIRNAME);
- if (!getTempDir().exists()) {
- if (!Freemail.getTempDir().mkdir()) {
- Logger.error(this,"Freemail: Couldn't create
temporary directory. Please ensure that the user you are running Freemail as
has write access to its working directory");
- throw new IOException("Couldn't create data
dir");
- }
+ if (!tempdir.exists() && !tempdir.mkdir()) {
+ Logger.error(this,"Freemail: Couldn't create temporary
directory. Please ensure that the user you are running Freemail as has write
access to its working directory");
+ throw new IOException("Couldn't create data dir");
}
FCPContext fcpctx = new FCPContext();
@@ -105,7 +99,7 @@
sender = new MessageSender(accountManager);
- File ackdir = new File(getGlobalDataDir(), ACKDIR);
+ File ackdir = new File(globaldatadir, ACKDIR);
AckProcrastinator.setAckDir(ackdir);
ackinserter = new AckProcrastinator();
@@ -118,14 +112,6 @@
return Freemail.tempdir;
}
- protected static File getGlobalDataDir() {
- return globaldatadir;
- }
-
- public static File getDataDir() {
- return datadir;
- }
-
public static FCPConnection getFCPConnection() {
return Freemail.fcpconn;
}
@@ -136,11 +122,11 @@
public void setConfigProp(String key, String val) {
if (key.equalsIgnoreCase("datadir")) {
- Freemail.datadir = new File(val);
+ datadir = new File(val);
} else if (key.equalsIgnoreCase("tempdir")) {
- Freemail.tempdir = new File(val);
+ tempdir = new File(val);
} else if (key.equalsIgnoreCase("globaldatadir")) {
- Freemail.globaldatadir = new File(val);
+ globaldatadir = new File(val);
}
}
Modified: trunk/apps/Freemail/src/freemail/InboundContact.java
===================================================================
--- trunk/apps/Freemail/src/freemail/InboundContact.java 2008-04-13
20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/InboundContact.java 2008-04-13
21:39:22 UTC (rev 19272)
@@ -244,7 +244,7 @@
}
- private class MessageLog {
+ private static class MessageLog {
private static final String LOGFILE = "log";
private final File logfile;
@@ -263,7 +263,10 @@
String line;
while ( (line = br.readLine()) != null) {
int curid = Integer.parseInt(line);
- if (curid == targetid) return true;
+ if (curid == targetid) {
+ br.close();
+ return true;
+ }
}
br.close();
Modified: trunk/apps/Freemail/src/freemail/MailLog.java
===================================================================
--- trunk/apps/Freemail/src/freemail/MailLog.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/MailLog.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -69,6 +69,7 @@
this.messages.put(new Integer(thisnum),
parts[1]);
}
+ br.close();
frdr.close();
} catch (IOException ioe) {
return;
@@ -120,6 +121,7 @@
pw.flush();
try {
+ pw.close();
fos.close();
} catch (IOException ioe) {
return;
Modified: trunk/apps/Freemail/src/freemail/MailMessage.java
===================================================================
--- trunk/apps/Freemail/src/freemail/MailMessage.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/MailMessage.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -315,7 +315,7 @@
this.file.renameTo(new File(this.file.getParentFile(),
newname));
}
- private class MailMessageHeader {
+ private static class MailMessageHeader {
public String name;
public String val;
Modified: trunk/apps/Freemail/src/freemail/MailSite.java
===================================================================
--- trunk/apps/Freemail/src/freemail/MailSite.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/MailSite.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -68,7 +68,7 @@
return buf.toString();
}
- public int Publish() {
+ public int publish() {
byte[] mailpage;
String mailsite_s = this.getMailPage();
if (mailsite_s == null) {
@@ -95,7 +95,7 @@
int actualslot = -1;
try {
- actualslot = cli.SlotInsert(mailpage, key, minslot,
"/"+MAILPAGE);
+ actualslot = cli.slotInsert(mailpage, key, minslot,
"/"+MAILPAGE);
} catch (ConnectionTerminatedException cte) {
return -1;
}
Modified: trunk/apps/Freemail/src/freemail/MessageBank.java
===================================================================
--- trunk/apps/Freemail/src/freemail/MessageBank.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/MessageBank.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -246,7 +246,7 @@
}
}
- private class MessageFileNameFilter implements FilenameFilter {
+ private static class MessageFileNameFilter implements FilenameFilter {
public boolean accept(File dir, String name) {
if (name.startsWith(".")) return false;
if (!name.matches("[0-9]+(,.*)?")) return false;
@@ -255,7 +255,7 @@
}
// compare to filenames by number leading up to ","
- private class UIDComparator implements Comparator {
+ private static class UIDComparator implements Comparator {
public final int compare ( Object a, Object b ) {
int
ia=Integer.parseInt(((File)a).getName().split(",",2)[0]);
int
ib=Integer.parseInt(((File)b).getName().split(",",2)[0]);
Modified: trunk/apps/Freemail/src/freemail/MessageSender.java
===================================================================
--- trunk/apps/Freemail/src/freemail/MessageSender.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/MessageSender.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -138,8 +138,8 @@
}
private void sendDir(FreemailAccount fromAccount, File dir) throws
ConnectionTerminatedException {
+ if (dir == null) return;
File[] files = dir.listFiles();
- if (dir == null) return;
for (int i = 0; i < files.length; i++) {
if (files[i].getName().startsWith("."))
continue;
Modified: trunk/apps/Freemail/src/freemail/NIMContact.java
===================================================================
--- trunk/apps/Freemail/src/freemail/NIMContact.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/NIMContact.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -44,6 +44,7 @@
FileReader frdr = new FileReader(this.keyfile);
BufferedReader br = new BufferedReader(frdr);
String key = br.readLine();
+ br.close();
frdr.close();
return key;
}
@@ -59,7 +60,7 @@
for (i = 0; i< files.length; i++) {
if (!files[i].getName().startsWith(LOGFILE_PREFIX))
continue;
- Date logdate =
DateStringFactory.DateFromKeyString(files[i].getName().substring(LOGFILE_PREFIX.length()));
+ Date logdate =
DateStringFactory.dateFromKeyString(files[i].getName().substring(LOGFILE_PREFIX.length()));
if (logdate == null) {
// couldn't parse the date... hmm
files[i].delete();
Modified: trunk/apps/Freemail/src/freemail/OutboundContact.java
===================================================================
--- trunk/apps/Freemail/src/freemail/OutboundContact.java 2008-04-13
20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/OutboundContact.java 2008-04-13
21:39:22 UTC (rev 19272)
@@ -91,12 +91,18 @@
throw new BadFreemailAddressException();
} else {
File contactsdir = new File(account.getAccountDir(),
SingleAccountWatcher.CONTACTS_DIR);
- if (!contactsdir.exists())
- contactsdir.mkdir();
+ if (!contactsdir.exists()) {
+ if (!contactsdir.mkdir()) {
+ throw new IOException("Couldn't create
contacts dir!");
+ }
+ }
File outbounddir = new File(contactsdir,
SingleAccountWatcher.OUTBOUND_DIR);
- if (!outbounddir.exists())
- outbounddir.mkdir();
+ if (!outbounddir.exists()) {
+ if (!outbounddir.mkdir()) {
+ throw new IOException("Couldn't create
outbound dir!");
+ }
+ }
if (!this.address.is_ssk_address()) {
String ssk_mailsite =
this.fetchKSKRedirect(this.address.getMailpageKey());
@@ -115,17 +121,19 @@
File obctdir = new File(outbounddir,
this.address.getSubDomain().toLowerCase());
- if (!obctdir.exists())
- obctdir.mkdir();
+ if (!obctdir.exists() && !obctdir.mkdir()) {
+ throw new IOException("Couldn't create outbound
contact dir!");
+ }
this.contactfile = new PropsFile(new File(obctdir,
PROPSFILE_NAME));
this.ctoutbox = new File(obctdir, OUTBOX_DIR);
- if (!this.ctoutbox.exists())
- this.ctoutbox.mkdir();
+ if (!this.ctoutbox.exists() && !this.ctoutbox.mkdir()) {
+ throw new IOException("Couldn't create contact
outbox!");
+ }
}
}
- public OutboundContact(FreemailAccount acc, File ctdir) {
+ public OutboundContact(FreemailAccount acc, File ctdir) throws
IOException {
this.account = acc;
this.address = new EmailAddress();
this.address.domain = ctdir.getName()+".freemail";
@@ -133,14 +141,19 @@
this.contactfile = new PropsFile(new File(ctdir,
PROPSFILE_NAME));
this.ctoutbox = new File(ctdir, OUTBOX_DIR);
- if (!this.ctoutbox.exists())
- this.ctoutbox.mkdir();
+ if (!this.ctoutbox.exists()) {
+ if (!this.ctoutbox.mkdir()) {
+ throw new IOException("Couldn't create contact
outbox dir!");
+ }
+ }
}
public void checkCTS() throws OutboundContactFatalException,
ConnectionTerminatedException {
String status = this.contactfile.get("status");
if (status == null) {
this.init();
+ status = this.contactfile.get("status");
+ if (status == null) return;
}
if (status.equals("cts-received")) {
@@ -400,7 +413,7 @@
// insert it!
HighLevelFCPClient cli = new HighLevelFCPClient();
- if (cli.SlotInsert(encmsg,
"KSK@"+rtsksk+"-"+DateStringFactory.getKeyString(), 1, "") < 0) {
+ if (cli.slotInsert(encmsg,
"KSK@"+rtsksk+"-"+DateStringFactory.getKeyString(), 1, "") < 0) {
// safe to copy the message into the contact outbox
though
return false;
}
Modified: trunk/apps/Freemail/src/freemail/RTSFetcher.java
===================================================================
--- trunk/apps/Freemail/src/freemail/RTSFetcher.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/RTSFetcher.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -133,7 +133,7 @@
log.pruneBefore(cal.getTime());
}
- private class MySlotSaveData {
+ private static class MySlotSaveData {
RTSLog log;
String date;
}
Modified: trunk/apps/Freemail/src/freemail/RTSLog.java
===================================================================
--- trunk/apps/Freemail/src/freemail/RTSLog.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/RTSLog.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -58,7 +58,7 @@
}
private boolean isBeforeBirth(String daystr) {
- Date day = DateStringFactory.DateFromKeyString(daystr);
+ Date day = DateStringFactory.dateFromKeyString(daystr);
String birth_s = this.logfile.get("birth");
Date birth;
if (birth_s == null) {
@@ -66,7 +66,7 @@
birth_s = DateStringFactory.getOffsetKeyString(0);
this.logfile.put("birth", birth_s);
} else {
- birth = DateStringFactory.DateFromKeyString(birth_s);
+ birth = DateStringFactory.dateFromKeyString(birth_s);
if (birth.after(new Date())) {
Logger.error(this, "RTS log was created in the
future! Resetting to now");
birth = new Date();
@@ -103,7 +103,7 @@
continue;
}
- Date logdate =
DateStringFactory.DateFromKeyString(datestr);
+ Date logdate =
DateStringFactory.dateFromKeyString(datestr);
if (logdate == null) {
// couldn't parse the date... hmm
hitlist.add(cur);
Modified: trunk/apps/Freemail/src/freemail/SingleAccountWatcher.java
===================================================================
--- trunk/apps/Freemail/src/freemail/SingleAccountWatcher.java 2008-04-13
20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/SingleAccountWatcher.java 2008-04-13
21:39:22 UTC (rev 19272)
@@ -23,6 +23,7 @@
import java.io.File;
import java.io.FilenameFilter;
+import java.io.IOException;
import java.lang.InterruptedException;
import freemail.fcp.ConnectionTerminatedException;
@@ -108,7 +109,7 @@
// is it time we inserted the mailsite?
if (System.currentTimeMillis() >
this.mailsite_last_upload + MAILSITE_UPLOAD_INTERVAL) {
MailSite ms = new
MailSite(account.getProps());
- if (ms.Publish() > 0) {
+ if (ms.publish() > 0) {
this.mailsite_last_upload =
System.currentTimeMillis();
}
}
@@ -120,9 +121,12 @@
if (obcontacts != null) {
int i;
for (i = 0; i < obcontacts.length; i++)
{
- OutboundContact obct = new
OutboundContact(account, obcontacts[i]);
-
- obct.doComm();
+ try {
+ OutboundContact obct =
new OutboundContact(account, obcontacts[i]);
+ obct.doComm();
+ } catch (IOException ioe) {
+ Logger.error(this,
"Failed to create outbound contact - not sending mail");
+ }
}
}
if (this.nf != null) {
@@ -170,14 +174,14 @@
stopping = true;
}
- private class outboundContactFilenameFilter implements FilenameFilter {
+ private static class outboundContactFilenameFilter implements
FilenameFilter {
// check that each dir is a base32 encoded filename
public boolean accept(File dir, String name ) {
return name.matches("[A-Za-z2-7]+");
}
}
- private class inboundContactFilenameFilter implements FilenameFilter {
+ private static class inboundContactFilenameFilter implements
FilenameFilter {
// check that each dir is a freenet key
public boolean accept(File dir, String name ) {
return
name.matches("[A-Za-z0-9~-]+,[A-Za-z0-9~-]+,[A-Za-z0-9~-]+");
Modified: trunk/apps/Freemail/src/freemail/SlotManager.java
===================================================================
--- trunk/apps/Freemail/src/freemail/SlotManager.java 2008-04-13 20:52:14 UTC
(rev 19271)
+++ trunk/apps/Freemail/src/freemail/SlotManager.java 2008-04-13 21:39:22 UTC
(rev 19272)
@@ -175,7 +175,7 @@
return retval;
}
- private class Slot {
+ private static class Slot {
String slot;
long time_added;
}
Modified: trunk/apps/Freemail/src/freemail/fcp/HighLevelFCPClient.java
===================================================================
--- trunk/apps/Freemail/src/freemail/fcp/HighLevelFCPClient.java
2008-04-13 20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/fcp/HighLevelFCPClient.java
2008-04-13 21:39:22 UTC (rev 19272)
@@ -195,7 +195,7 @@
return -1;
}
- public int SlotInsert(byte[] data, String basekey, int minslot, String
suffix) throws ConnectionTerminatedException {
+ public int slotInsert(byte[] data, String basekey, int minslot, String
suffix) throws ConnectionTerminatedException {
int slot = minslot;
boolean carryon = true;
ByteArrayInputStream bis;
Modified: trunk/apps/Freemail/src/freemail/imap/IMAPHandler.java
===================================================================
--- trunk/apps/Freemail/src/freemail/imap/IMAPHandler.java 2008-04-13
20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/imap/IMAPHandler.java 2008-04-13
21:39:22 UTC (rev 19272)
@@ -191,10 +191,10 @@
}
if (refname != null) refname = trimQuotes(refname);
- if (refname.length() == 0) refname = null;
+ if (refname!= null && refname.length() == 0) refname = null;
if (mbname != null) mbname = trimQuotes(mbname);
- if (mbname.length() == 0) mbname = null;
+ if (mbname != null && mbname.length() == 0) mbname = null;
if (mbname == null) {
// return hierarchy delimiter
@@ -1280,7 +1280,7 @@
EmailAddress addr = new EmailAddress(address);
- String retval = new String("((");
+ String retval = "((";
retval += this.IMAPifyString(addr.realname)+" ";
// SMTP Source Route. Whatever this is, it's not relevant!
retval += "NIL ";
Modified: trunk/apps/Freemail/src/freemail/imap/IMAPMessageFlags.java
===================================================================
--- trunk/apps/Freemail/src/freemail/imap/IMAPMessageFlags.java 2008-04-13
20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/imap/IMAPMessageFlags.java 2008-04-13
21:39:22 UTC (rev 19272)
@@ -122,7 +122,7 @@
}
public String getFlags() {
- String retval = new String("");
+ String retval = "";
for (int i = 0; i < allFlags.length; i++) {
if (this.flags.contains(allFlags[i])) {
Modified: trunk/apps/Freemail/src/freemail/smtp/SMTPHandler.java
===================================================================
--- trunk/apps/Freemail/src/freemail/smtp/SMTPHandler.java 2008-04-13
20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/smtp/SMTPHandler.java 2008-04-13
21:39:22 UTC (rev 19272)
@@ -162,8 +162,6 @@
}
if (b64password == null) return;
- password = new
String(Base64.decode(b64password.getBytes()));
-
uname = new
String(Base64.decode(b64username.getBytes()));
password = new
String(Base64.decode(b64password.getBytes()));
} else if (cmd.args[0].equalsIgnoreCase("plain")) {
Modified: trunk/apps/Freemail/src/freemail/utils/DateStringFactory.java
===================================================================
--- trunk/apps/Freemail/src/freemail/utils/DateStringFactory.java
2008-04-13 20:52:14 UTC (rev 19271)
+++ trunk/apps/Freemail/src/freemail/utils/DateStringFactory.java
2008-04-13 21:39:22 UTC (rev 19272)
@@ -30,12 +30,7 @@
public class DateStringFactory {
private static final TimeZone gmt = TimeZone.getTimeZone("GMT");
private static final Calendar cal = Calendar.getInstance(gmt);
- private static final SimpleDateFormat sdf = new
SimpleDateFormat("yyyyMMdd");
- static {
- sdf.setTimeZone(gmt);
- }
-
public static String getKeyString() {
return getOffsetKeyString(0);
}
@@ -45,11 +40,17 @@
cal.setTime(new Date());
cal.add(Calendar.DAY_OF_MONTH, offset);
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+ sdf.setTimeZone(gmt);
+
return sdf.format(cal.getTime());
}
- public static Date DateFromKeyString(String str) {
+ public static Date dateFromKeyString(String str) {
try {
+ SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
+ sdf.setTimeZone(gmt);
+
sdf.setLenient(false);
return sdf.parse(str);
} catch (ParseException pe) {