Remove empty catch blocks for exceptions

I put in e.printStackTrace() instead
diff --git a/Core/WPISuite/src/main/java/edu/wpi/cs/wpisuitetng/modules/core/entitymanagers/UserManager.java b/Core/WPISuite/src/main/java/edu/wpi/cs/wpisuitetng/modules/core/entitymanagers/UserManager.java
index 4411ce8..dc4653f 100644
--- a/Core/WPISuite/src/main/java/edu/wpi/cs/wpisuitetng/modules/core/entitymanagers/UserManager.java
+++ b/Core/WPISuite/src/main/java/edu/wpi/cs/wpisuitetng/modules/core/entitymanagers/UserManager.java
@@ -21,10 +21,10 @@
 import com.google.gson.JsonParseException;
 import com.google.gson.JsonSyntaxException;
 
+import edu.wpi.cs.wpisuitetng.Session;
 import edu.wpi.cs.wpisuitetng.authentication.PasswordCryptographer;
 import edu.wpi.cs.wpisuitetng.authentication.Sha256Password;
 import edu.wpi.cs.wpisuitetng.database.Data;
-import edu.wpi.cs.wpisuitetng.Session;
 import edu.wpi.cs.wpisuitetng.exceptions.BadRequestException;
 import edu.wpi.cs.wpisuitetng.exceptions.ConflictException;
 import edu.wpi.cs.wpisuitetng.exceptions.DatabaseException;
@@ -41,338 +41,303 @@
 import edu.wpi.cs.wpisuitetng.modules.core.models.UserDeserializer;
 
 /**
- * The EntityManager implementation for the User class. Manages interaction with the 
- * 	set of Users in the Database defined by the constructor
- * @author 
- *
+ * The EntityManager implementation for the User class. Manages interaction with the
+ * set of Users in the Database defined by the constructor
+ * 
+ * @author
  */
 public class UserManager implements EntityManager<User> {
 
-	Class<User> user = User.class;
-	private PasswordCryptographer passwordHash;
-	Gson gson;
-	Data data;
-	
-	private static final Logger logger = Logger.getLogger(UserManager.class.getName());
+    Class<User> user = User.class;
+    private PasswordCryptographer passwordHash;
+    Gson gson;
+    Data data;
 
-	/**
-	 * Creates a UserManager operating on the given Data.
-	 * 	Attaches the custom serializer and deserializers for the Gson library.
-	 * Determines the algorithm used to secure passwords.
-	 * @param data
-	 */
-	public UserManager(Data data)
-	{
-		this.data = data;
-		this.passwordHash = new Sha256Password();
+    private static final Logger logger = Logger.getLogger(UserManager.class.getName());
 
-		// build the custom serializer/deserializer
-		GsonBuilder builder = new GsonBuilder();
-		builder.registerTypeAdapter(this.user, new UserDeserializer());
+    /**
+     * Creates a UserManager operating on the given Data.
+     * Attaches the custom serializer and deserializers for the Gson library.
+     * Determines the algorithm used to secure passwords.
+     * 
+     * @param data
+     */
+    public UserManager(Data data) {
+        this.data = data;
+        this.passwordHash = new Sha256Password();
 
-		this.gson = builder.create();
+        // build the custom serializer/deserializer
+        GsonBuilder builder = new GsonBuilder();
+        builder.registerTypeAdapter(this.user, new UserDeserializer());
 
-	}
+        this.gson = builder.create();
 
-	
-	@Override
-	public User makeEntity(Session s, String content) throws WPISuiteException{
+    }
 
-		//TODO: create a custom de-serializer & serializer so we can hash the desired password & remove it from others.
-		
-		logger.log(Level.FINE, "Attempting new User creation...");
+    @Override
+    public User makeEntity(Session s, String content) throws WPISuiteException {
 
-		User p;
-		try{
-			p = User.fromJSON(content);
-		} catch(JsonSyntaxException e){
-			logger.log(Level.WARNING, "Invalid User entity creation string.");
-			throw new BadRequestException("The entity creation string had invalid format. Entity String: " + content);
-		}
+        //TODO: create a custom de-serializer & serializer so we can hash the desired password & remove it from others.
 
-		if(getEntity(s,p.getUsername())[0] == null)
-		{
-			String newPassword = UserDeserializer.parsePassword(content);
-			String hashedPassword = this.passwordHash.generateHash(newPassword);
+        logger.log(Level.FINE, "Attempting new User creation...");
 
-			p.setPassword(hashedPassword);
-			
-			p.setRole(Role.USER);
-			
-			save(s,p);
-		}
-		else
-		{
-			logger.log(Level.WARNING, "Conflict Exception during User creation.");
-			throw new ConflictException("A user with the given ID already exists. Entity String: " + content);
-		}
+        User p;
+        try {
+            p = User.fromJSON(content);
+        } catch (JsonSyntaxException e) {
+            logger.log(Level.WARNING, "Invalid User entity creation string.");
+            throw new BadRequestException("The entity creation string had invalid format. Entity String: " +
+                                          content);
+        }
 
-		logger.log(Level.FINE, "User creation success!");
+        if (getEntity(s, p.getUsername())[0] == null) {
+            String newPassword = UserDeserializer.parsePassword(content);
+            String hashedPassword = this.passwordHash.generateHash(newPassword);
 
-		return p;
-	}
-	
-	
-	@Override
-	public User[] getEntity(Session s,String id) throws WPISuiteException 
-	{
-		User[] m = new User[1];
-		if(id.equalsIgnoreCase(""))
-		{
-			return getAll(s);
-		}
-		else
-		{
-			return data.retrieve(user, "username", id).toArray(m);
-		}
-	}
-	
-	/**
-	 * returns a user without requiring a session, 
-	 * specifically for the scenario where a session needs to be created.
-	 * only ever returns one user, "" is not a valid argument;
-	 * 
-	 * @param id - the id of the user, in this case it's the username
-	 * @return a list of matching users
-	 * @throws WPISuiteException 
-	 */
-	public User[] getEntity(String id) throws WPISuiteException
-	{
-		User[] m = new User[1];
-		if(id.equalsIgnoreCase(""))
-		{
-			throw new NotFoundException("No User id given.");
-		}
-		else
-		{
-			m = data.retrieve(user, "username", id).toArray(m);
-			
-			if(m[0] == null)
-			{
-				throw new NotFoundException("User with id <" + id + "> not found.");
-			}
-			else
-			{
-				return m;
-			}
-		}
-	}
+            p.setPassword(hashedPassword);
 
-	@Override
-	public User[] getAll(Session s) {
-		User[] ret = new User[1];
-		ret = data.retrieveAll(new User("","","",0)).toArray(ret);
-		return ret;
-	}
+            p.setRole(Role.USER);
 
-	@Override
-	public void save(Session s,User model) throws WPISuiteException {
-		if(data.save(model))
-		{
-			logger.log(Level.FINE, "User Saved :" + model);
+            save(s, p);
+        } else {
+            logger.log(Level.WARNING, "Conflict Exception during User creation.");
+            throw new ConflictException("A user with the given ID already exists. Entity String: " +
+                                        content);
+        }
 
-			return ;
-		}
-		else
-		{
-			logger.log(Level.WARNING, "User Save Failure!");
-			throw new DatabaseException("Save failure for User."); // Session User: " + s.getUsername() + " User: " + model.getName());
-		}
-		
-	}
+        logger.log(Level.FINE, "User creation success!");
 
-	@Override
-	public boolean deleteEntity(Session s1 ,String id) throws WPISuiteException {
+        return p;
+    }
 
-		if(s1.getUser().getRole().equals(Role.ADMIN))
-		{
-			Model m = data.delete(data.retrieve(user, "username", id).get(0));
-			logger.log(Level.INFO, "UserManager deleting user <" + id + ">");
-			return (m != null) ? true : false;
-		}
-		else
-		{
-			logger.log(Level.WARNING,"User: "+s1.getUser().getUsername()+"attempted to delete: "+id);
-			throw new UnauthorizedException("Delete not authorized");
-		}
-		
-		
-		
-		
-	}
+    @Override
+    public User[] getEntity(Session s, String id) throws WPISuiteException {
+        User[] m = new User[1];
+        if (id.equalsIgnoreCase("")) {
+            return getAll(s);
+        } else {
+            return data.retrieve(user, "username", id).toArray(m);
+        }
+    }
 
-	@Override
-	public void deleteAll(Session s) {
-		logger.log(Level.INFO, "UserManager invoking DeleteAll...");
-		data.deleteAll(new User("","","",0));
-	}
+    /**
+     * returns a user without requiring a session,
+     * specifically for the scenario where a session needs to be created.
+     * only ever returns one user, "" is not a valid argument;
+     * 
+     * @param id - the id of the user, in this case it's the username
+     * @return a list of matching users
+     * @throws WPISuiteException
+     */
+    public User[] getEntity(String id) throws WPISuiteException {
+        User[] m = new User[1];
+        if (id.equalsIgnoreCase("")) {
+            throw new NotFoundException("No User id given.");
+        } else {
+            m = data.retrieve(user, "username", id).toArray(m);
 
-	@Override
-	public int Count() {
-		// TODO pending on get all
-		return 0;
-	}
-	
-	/**
-	 * 	Updates a single user object based on the JSON update string provided.
-	 * 		Inflates the JSON into a User object then checks each field for differences.
-	 * @param s	The Session to check authorization for this action
-	 * @param toUpdate	the User to update
-	 * @param changeSet	a JSON string representation of a User object. Contains the fields
-	 * 	to be updated.
-	 * @exception WPISuiteException	thrown when the ObjectMapper fails
-	 * @return	The updated User.
-	 */
-	public User update(Session s, User toUpdate, String changeSet) throws WPISuiteException
-	{
-		// TODO: permissions checking here
+            if (m[0] == null) {
+                throw new NotFoundException("User with id <" +
+                                            id + "> not found.");
+            } else {
+                return m;
+            }
+        }
+    }
 
-		User changes;
+    @Override
+    public User[] getAll(Session s) {
+        User[] ret = new User[1];
+        ret = data.retrieveAll(new User("", "", "", 0)).toArray(ret);
+        return ret;
+    }
 
-		// Inflate the changeSet into a User object.
-		try
-		{
-			logger.log(Level.FINE, "User update being attempted...");
-			changes = User.fromJSON(changeSet);
-		}
-		catch(JsonParseException e)
-		{
-			logger.log(Level.WARNING, "UserManager.update() had a failure in the changeset mapper.");
+    @Override
+    public void save(Session s, User model) throws WPISuiteException {
+        if (data.save(model)) {
+            logger.log(Level.FINE, "User Saved :" + model);
 
-			throw new SerializationException("Error inflating the changeset: " + e.getMessage());
-		}
+            return;
+        } else {
+            logger.log(Level.WARNING, "User Save Failure!");
+            throw new DatabaseException("Save failure for User."); // Session User: " + s.getUsername() + " User: " + model.getName());
+        }
 
-		
-		if(s.getUser().getUsername().equals(toUpdate.getUsername()) || s.getUser().getRole().equals(Role.ADMIN))
-		{
-			// Resolve differences toUpdate using changes, field-by-field.
-			toUpdate.setIdNum(changes.getIdNum()); 
-	
-			if(changes.getName() != null)
-			{
-				toUpdate.setName(changes.getName());
-			}
-			
-			if(changes.getPassword() != null)
-			{
-				String encryptedPass = this.passwordHash.generateHash(changes.getPassword());
-				toUpdate.setPassword(encryptedPass);
-			}
-	
-			if((changes.getRole() != null))
-			{
-				if(s.getUser().getRole().equals(Role.ADMIN))
-				{
-					if (toUpdate.getRole().equals(Role.ADMIN) &&
-							!changes.getRole().equals(Role.ADMIN) &&
-							getAdminCount() <= 1) {
-						throw new ForbiddenException("There must be at least one admin account");
-					}
-					toUpdate.setRole(changes.getRole());
-				}
-				else
-				{
-					logger.log(Level.WARNING,"User: "+s.getUser().getUsername()+" attempted unauthorized priveledge elevation");
-				}
-			}
-	
-			// save the changes back
-			this.save(s, toUpdate);
-		}
-		else
-		{
-			logger.log(Level.WARNING, "Access denied to user: "+s.getUser().getUsername());
-			throw new UnauthorizedException("Users accessible only by Admins and themselves");
-		}
-		return toUpdate;
-	}
+    }
 
-	@Override
-	public String advancedGet(Session s, String[] args)
-			throws WPISuiteException {
-		throw new NotImplementedException();
-	}
+    @Override
+    public boolean deleteEntity(Session s1, String id) throws WPISuiteException {
 
-	@Override
-	public String advancedPut(Session s, String[] args, String content)
-			throws WPISuiteException {
-		throw new NotImplementedException();
-	}
+        if (s1.getUser().getRole().equals(Role.ADMIN)) {
+            Model m = data.delete(data.retrieve(user, "username", id).get(0));
+            logger.log(Level.INFO, "UserManager deleting user <" + id + ">");
+            return (m != null) ? true : false;
+        } else {
+            logger.log(Level.WARNING, "User: " +
+                                      s1.getUser().getUsername() +
+                                      "attempted to delete: " + id);
+            throw new UnauthorizedException("Delete not authorized");
+        }
 
-	@Override
-	public String advancedPost(Session s, String string, String content)
-			throws WPISuiteException {
-		throw new NotImplementedException();
-	}
+    }
 
+    @Override
+    public void deleteAll(Session s) {
+        logger.log(Level.INFO, "UserManager invoking DeleteAll...");
+        data.deleteAll(new User("", "", "", 0));
+    }
 
-	@Override
-	public User update(Session s, String content) throws WPISuiteException {
-		String str = UserManager.parseUsername(content);
-		
-		return this.update(s, this.getEntity(str)[0], content);
-	}
-	
-	/**
-	 * This static utility method takes a JSON string and attempts to
-	 * 	retrieve a username field from it.
-	 * @param serializedUser	a JSON string containing a password
-	 * @return	the username field parsed.
-	 */
-	public static String parseUsername(String serializedUser)
-	{
-		logger.log(Level.FINE, "Attempting username parsing...");
-		
-		if(serializedUser == null || !serializedUser.contains("username"))
-		{
-			throw new JsonParseException("The given JSON string did not contain a username field.");
-		}
-		
-		int fieldStartIndex = serializedUser.indexOf("username");
-		int separator = serializedUser.indexOf(':', fieldStartIndex);
-		int startIndex = serializedUser.indexOf('"', separator) + 1;
-		int endIndex = serializedUser.indexOf('"', startIndex);
-		
-		String username = serializedUser.substring(startIndex, endIndex);
-		
-		logger.log(Level.FINE, "Username parsing success!");
-		return username;
-	}
-	
-	/**
-	 * Creates an Admin user if one does not exist
-	 */
-	public User createAdmin()
-	{
-		logger.log(Level.INFO, "Adding an admin");
+    @Override
+    public int Count() {
+        // TODO pending on get all
+        return 0;
+    }
 
-		User p = new User("Admin", "admin", "password", 0);
+    /**
+     * Updates a single user object based on the JSON update string provided.
+     * Inflates the JSON into a User object then checks each field for differences.
+     * 
+     * @param s The Session to check authorization for this action
+     * @param toUpdate the User to update
+     * @param changeSet a JSON string representation of a User object. Contains the fields
+     *            to be updated.
+     * @exception WPISuiteException thrown when the ObjectMapper fails
+     * @return The updated User.
+     */
+    public User update(Session s, User toUpdate, String changeSet) throws WPISuiteException {
+        // TODO: permissions checking here
 
-		try {
-			if(getEntity(null,p.getUsername())[0] == null)
-			{
-				String newPassword = "password";
-				String hashedPassword = this.passwordHash.generateHash(newPassword);
+        User changes;
 
-				p.setPassword(hashedPassword);
-				
-				p.setRole(Role.ADMIN);
-				
-				save(null,p);
-			}
-			else
-			{
-				p = getEntity(null,p.getUsername())[0];
-			}
-		} catch (WPISuiteException e) {
-		}
+        // Inflate the changeSet into a User object.
+        try {
+            logger.log(Level.FINE, "User update being attempted...");
+            changes = User.fromJSON(changeSet);
+        } catch (JsonParseException e) {
+            logger.log(Level.WARNING, "UserManager.update() had a failure in the changeset mapper.");
 
-		logger.log(Level.INFO, "Admin creation success!");
-		
-		return p;
-	}
-	
-	private int getAdminCount() throws WPISuiteException {
-		return data.retrieve(User.class, "role", Role.ADMIN).size();
-	}
+            throw new SerializationException("Error inflating the changeset: " +
+                                             e.getMessage());
+        }
+
+        if (s.getUser().getUsername().equals(toUpdate.getUsername()) ||
+            s.getUser().getRole().equals(Role.ADMIN)) {
+            // Resolve differences toUpdate using changes, field-by-field.
+            toUpdate.setIdNum(changes.getIdNum());
+
+            if (changes.getName() != null) {
+                toUpdate.setName(changes.getName());
+            }
+
+            if (changes.getPassword() != null) {
+                String encryptedPass = this.passwordHash.generateHash(changes.getPassword());
+                toUpdate.setPassword(encryptedPass);
+            }
+
+            if ((changes.getRole() != null)) {
+                if (s.getUser().getRole().equals(Role.ADMIN)) {
+                    if (toUpdate.getRole().equals(Role.ADMIN) &&
+                        !changes.getRole().equals(Role.ADMIN) &&
+                        getAdminCount() <= 1) {
+                        throw new ForbiddenException("There must be at least one admin account");
+                    }
+                    toUpdate.setRole(changes.getRole());
+                } else {
+                    logger.log(Level.WARNING, "User: " +
+                                              s.getUser().getUsername() +
+                                              " attempted unauthorized priveledge elevation");
+                }
+            }
+
+            // save the changes back
+            this.save(s, toUpdate);
+        } else {
+            logger.log(Level.WARNING, "Access denied to user: " +
+                                      s.getUser().getUsername());
+            throw new UnauthorizedException("Users accessible only by Admins and themselves");
+        }
+        return toUpdate;
+    }
+
+    @Override
+    public String advancedGet(Session s, String[] args) throws WPISuiteException {
+        throw new NotImplementedException();
+    }
+
+    @Override
+    public String advancedPut(Session s, String[] args, String content) throws WPISuiteException {
+        throw new NotImplementedException();
+    }
+
+    @Override
+    public String advancedPost(Session s, String string, String content) throws WPISuiteException {
+        throw new NotImplementedException();
+    }
+
+    @Override
+    public User update(Session s, String content) throws WPISuiteException {
+        String str = UserManager.parseUsername(content);
+
+        return this.update(s, this.getEntity(str)[0], content);
+    }
+
+    /**
+     * This static utility method takes a JSON string and attempts to
+     * retrieve a username field from it.
+     * 
+     * @param serializedUser a JSON string containing a password
+     * @return the username field parsed.
+     */
+    public static String parseUsername(String serializedUser) {
+        logger.log(Level.FINE, "Attempting username parsing...");
+
+        if (serializedUser == null || !serializedUser.contains("username")) {
+            throw new JsonParseException("The given JSON string did not contain a username field.");
+        }
+
+        int fieldStartIndex = serializedUser.indexOf("username");
+        int separator = serializedUser.indexOf(':', fieldStartIndex);
+        int startIndex = serializedUser.indexOf('"', separator) + 1;
+        int endIndex = serializedUser.indexOf('"', startIndex);
+
+        String username = serializedUser.substring(startIndex, endIndex);
+
+        logger.log(Level.FINE, "Username parsing success!");
+        return username;
+    }
+
+    /**
+     * Creates an Admin user if one does not exist
+     */
+    public User createAdmin() {
+        logger.log(Level.INFO, "Adding an admin");
+
+        User p = new User("Admin", "admin", "password", 0);
+
+        try {
+            if (getEntity(null, p.getUsername())[0] == null) {
+                String newPassword = "password";
+                String hashedPassword = this.passwordHash.generateHash(newPassword);
+
+                p.setPassword(hashedPassword);
+
+                p.setRole(Role.ADMIN);
+
+                save(null, p);
+            } else {
+                p = getEntity(null, p.getUsername())[0];
+            }
+        } catch (WPISuiteException e) {
+            //TODO Stop swallowing exceptions
+            e.printStackTrace();
+        }
+
+        logger.log(Level.INFO, "Admin creation success!");
+
+        return p;
+    }
+
+    private int getAdminCount() throws WPISuiteException {
+        return data.retrieve(User.class, "role", Role.ADMIN).size();
+    }
 }
\ No newline at end of file
diff --git a/DefectTracker/src/main/java/edu/wpi/cs/wpisuitetng/modules/defecttracker/models/DefectEvent.java b/DefectTracker/src/main/java/edu/wpi/cs/wpisuitetng/modules/defecttracker/models/DefectEvent.java
index 96eae91..9c0e049 100644
--- a/DefectTracker/src/main/java/edu/wpi/cs/wpisuitetng/modules/defecttracker/models/DefectEvent.java
+++ b/DefectTracker/src/main/java/edu/wpi/cs/wpisuitetng/modules/defecttracker/models/DefectEvent.java
@@ -25,74 +25,73 @@
  * For example, the addition of a comment or the modification of fields.
  */
 public abstract class DefectEvent extends AbstractModel {
-	
-	public enum EventType {
-		COMMENT,
-		CHANGESET
-	};
-	
-	protected Date date = new Date();
-	protected User user = new User("", "", "", -1);
-	
-	/**
-	 * The type of event this is.  Subclasses must specify this in order to be deserialized properly.
-	 */
-	protected EventType type;
-	
-	/**
-	 * @return The Date when this event happened
-	 */
-	public Date getDate() {
-		return date;
-	}
-	
-	/**
-	 * @param date The Date of the Event to set
-	 */
-	public void setDate(Date date) {
-		this.date = date;
-	}
-	
-	/**
-	 * @return The User responsible for this event
-	 */
-	public User getUser() {
-		return user;
-	}
-	
-	/**
-	 * @param user The User responsible for the event to set
-	 */
-	public void setUser(User user) {
-		this.user = user;
-	}
-	
-	/**
-	 * Given a builder, add anything to it that's necessary for Gson to interact with this class.
-	 * 
-	 * @param builder The builder to modify
-	 */
-	public static void addGsonDependencies(GsonBuilder builder) {
-		builder.registerTypeAdapter(DefectEvent.class, new DefectEventDeserializer());
-		builder.registerTypeAdapter(DefectChangeset.class, new DefectChangesetDeserializer());
-	}
-	
-	@Override
-	public void save() {
-		// TODO Auto-generated method stub
-	}
 
-	@Override
-	public void delete() {
-		// TODO Auto-generated method stub
-	}
-	
-	// this model will only be created server side and then retrieved as part of a Defect in the future
-	// so I'm not sure if this is necessary
-	@Override
-	public Boolean identify(Object o) {
-		// TODO Auto-generated method stub
-		return null;
-	}
-	
+    public enum EventType {
+        COMMENT, CHANGESET
+    }
+
+    protected Date date = new Date();
+    protected User user = new User("", "", "", -1);
+
+    /**
+     * The type of event this is. Subclasses must specify this in order to be deserialized properly.
+     */
+    protected EventType type;
+
+    /**
+     * @return The Date when this event happened
+     */
+    public Date getDate() {
+        return date;
+    }
+
+    /**
+     * @param date The Date of the Event to set
+     */
+    public void setDate(Date date) {
+        this.date = date;
+    }
+
+    /**
+     * @return The User responsible for this event
+     */
+    public User getUser() {
+        return user;
+    }
+
+    /**
+     * @param user The User responsible for the event to set
+     */
+    public void setUser(User user) {
+        this.user = user;
+    }
+
+    /**
+     * Given a builder, add anything to it that's necessary for Gson to interact with this class.
+     * 
+     * @param builder The builder to modify
+     */
+    public static void addGsonDependencies(GsonBuilder builder) {
+        builder.registerTypeAdapter(DefectEvent.class, new DefectEventDeserializer());
+        builder.registerTypeAdapter(DefectChangeset.class, new DefectChangesetDeserializer());
+    }
+
+    @Override
+    public void save() {
+        // TODO Auto-generated method stub
+    }
+
+    @Override
+    public void delete() {
+        // TODO Auto-generated method stub
+    }
+
+    // this model will only be created server side and then retrieved as part of a Defect in the future
+    // so I'm not sure if this is necessary
+    @Override
+    public Boolean identify(Object o) {
+        // TODO Auto-generated method stub
+        return null;
+    }
+
 }
diff --git a/RequirementManager/src/main/java/edu/wpi/cs/wpisuitetng/modules/requirementmanager/view/MainView.java b/RequirementManager/src/main/java/edu/wpi/cs/wpisuitetng/modules/requirementmanager/view/MainView.java
index de054c2..f285efb 100644
--- a/RequirementManager/src/main/java/edu/wpi/cs/wpisuitetng/modules/requirementmanager/view/MainView.java
+++ b/RequirementManager/src/main/java/edu/wpi/cs/wpisuitetng/modules/requirementmanager/view/MainView.java
@@ -43,9 +43,9 @@
  * @author justinhess
  */
 public class MainView extends JTabbedPane {
-    
+
     static final long serialVersionUID = 7957462092495599897L;
-    
+
     private boolean dragging = false;
     private Image tabImage = null;
     private Point currentMouseLocation = null;
@@ -56,7 +56,7 @@
     private final JPopupMenu popup = new JPopupMenu();
     private JMenuItem closeAll = new JMenuItem("Close All Tabs");
     private JMenuItem closeOthers = new JMenuItem("Close Others");
-    
+
     /**
      * Adds main subtab when user goes to RequirementManager
      */
@@ -64,32 +64,30 @@
         this.setTabLayoutPolicy(JTabbedPane.SCROLL_TAB_LAYOUT);
         this.addTab("Requirement Overview", overview);
         this.addTab("Iteration Overview", iterationOverview);
-        
-        closeAll.addActionListener(new ActionListener()
-        {
+
+        closeAll.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 ViewEventController.getInstance().closeAllTabs();
-                
+
             }
         });
-        
-        closeOthers.addActionListener(new ActionListener()
-        {
+
+        closeOthers.addActionListener(new ActionListener() {
             @Override
             public void actionPerformed(ActionEvent e) {
                 ViewEventController.getInstance().closeOthers();
-                
+
             }
         });
-        
+
         // add listener for changes in the overview tables
         ViewEventController.getInstance().getOverviewTable().getModel().addTableModelListener(new TableModelListener() {
             @Override
             public void tableChanged(TableModelEvent e) {
                 // check for Editing Multiple Requirements Mode	and a change not caused by a refresh	
-                if (ViewEventController.getInstance().getOverviewTable().getEditFlag()
-                        && !ViewEventController.getInstance().getOverviewTable().wasChangedByRefresh()) {
+                if (ViewEventController.getInstance().getOverviewTable().getEditFlag() &&
+                    !ViewEventController.getInstance().getOverviewTable().wasChangedByRefresh()) {
                     // find the cell that was changed
                     int otRow = e.getLastRow();
                     int otCol = e.getColumn();
@@ -97,31 +95,30 @@
                     Object value = ViewEventController.getInstance().getOverviewTable().getModel().getValueAt(otRow, otCol);
                     // highlight the cell
                     ViewEventController.getInstance().getOverviewTable().getCellRenderer(otRow, otCol).getTableCellRendererComponent(ViewEventController.getInstance().getOverviewTable(), value, true, true, otRow, otCol);
-                    
+
                     // check for changes and enable/disable the Save Changes button accordingly
                     if (ViewEventController.getInstance().getOverviewTable().hasChanges()) {
                         ViewEventController.getInstance().getToolbar().getEditButton().enableCreateEditButton();
-                    }
-                    else
+                    } else
                         ViewEventController.getInstance().getToolbar().getEditButton().disableCreateEditButton();
                 }
             }
         });
-        
+
         popup.add(closeAll);
         popup.add(closeOthers);
-        
+
         addMouseMotionListener(new MouseMotionAdapter() {
             public void mouseDragged(MouseEvent e) {
-                
+
                 if (!dragging) {
                     // Gets the tab index based on the mouse position
                     int tabNumber = getUI().tabForCoordinate(MainView.this, e.getX(), e.getY());
-                    
+
                     if (tabNumber >= 0) {
                         draggedTabIndex = tabNumber;
                         Rectangle bounds = getUI().getTabBounds(MainView.this, tabNumber);
-                        
+
                         // Paint the tabbed pane to a buffer
                         Image totalImage = new BufferedImage(getWidth(), getHeight(), BufferedImage.TYPE_INT_ARGB);
                         Graphics totalGraphics = totalImage.getGraphics();
@@ -129,35 +126,35 @@
                         // Don't be double buffered when painting to a static image.
                         setDoubleBuffered(false);
                         paintComponent(totalGraphics);
-                        
+
                         // Paint just the dragged tab to the buffer
                         tabImage = new BufferedImage(bounds.width, bounds.height, BufferedImage.TYPE_INT_ARGB);
                         Graphics graphics = tabImage.getGraphics();
-                        graphics.drawImage(totalImage, 0, 0, bounds.width, bounds.height, bounds.x, bounds.y, bounds.x + bounds.width, bounds.y + bounds.height, MainView.this);
-                        
+                        graphics.drawImage(totalImage, 0, 0, bounds.width, bounds.height, bounds.x, bounds.y, bounds.x +
+                                                                                                              bounds.width, bounds.y +
+                                                                                                                            bounds.height, MainView.this);
+
                         dragging = true;
                         repaint();
                     }
                 } else {
                     currentMouseLocation = e.getPoint();
-                    
+
                     // Need to repaint
                     repaint();
                 }
-                
+
                 super.mouseDragged(e);
             }
         });
-        
-        this.addMouseListener(new MouseAdapter()
-        {
+
+        this.addMouseListener(new MouseAdapter() {
             @Override
-            public void mousePressed(MouseEvent e)
-            {
+            public void mousePressed(MouseEvent e) {
                 if (e.isPopupTrigger())
                     popup.show(e.getComponent(), e.getX(), e.getY());
             }
-            
+
             public void mouseReleased(MouseEvent e) {
                 if (dragging) {
                     int tabNumber = getUI().tabForCoordinate(MainView.this, e.getX(), e.getY());
@@ -171,7 +168,7 @@
                         }
                     }
                 }
-                
+
                 dragging = false;
                 tabImage = null;
             }
@@ -180,11 +177,10 @@
         this.addChangeListener(new ChangeListener() {
             public void stateChanged(ChangeEvent e) {
                 JComponent selected = (JComponent) MainView.this.getSelectedComponent();
-                
+
                 ViewEventController.getInstance().getToolbar().getEditButton().getEditButton().setEnabled(false);
-                
-                if (selected == overview)
-                {
+
+                if (selected == overview) {
                     ViewEventController.getInstance().getToolbar().getEditButton().getEditButton().setEnabled(true);
                     ViewEventController.getInstance().getOverviewTable().refresh();
                     ViewEventController.getInstance().getOverviewTree().refresh();
@@ -192,24 +188,20 @@
                     overview.setDividerLocation(180);
                     overview.revalidate();
                     overview.repaint();
-                }
-                else if (selected == iterationOverview)
-                {
+                } else if (selected == iterationOverview) {
                     ViewEventController.getInstance().getOverviewTree().refresh();
                     iterationOverview.setLeftComponent(ViewEventController.getInstance().getOverviewTree());
                     iterationOverview.setDividerLocation(180);
                     iterationOverview.revalidate();
                     iterationOverview.repaint();
-                }
-                else if (selected instanceof RequirementPanel)
-                {
+                } else if (selected instanceof RequirementPanel) {
                     RequirementPanel req = (RequirementPanel) selected;
                     req.fireRefresh();
                 }
             }
         });
     }
-    
+
     /**
      * Method paintComponent.
      * 
@@ -217,14 +209,14 @@
      */
     protected void paintComponent(Graphics g) {
         super.paintComponent(g);
-        
+
         // Are we dragging?
         if (dragging && currentMouseLocation != null && tabImage != null) {
             // Draw the dragged tab
             g.drawImage(tabImage, currentMouseLocation.x, currentMouseLocation.y, this);
         }
     }
-    
+
     /**
      * Overridden insertTab function to add the closable tab element.
      * 
@@ -235,14 +227,14 @@
      * @param index Location of the tab
      */
     @Override
-    public void insertTab(String title, Icon icon, Component component,
-            String tip, int index) {
+    public void insertTab(String title, Icon icon, Component component, String tip, int index) {
         super.insertTab(title, icon, component, tip, index);
-        if (!(component instanceof OverviewPanel) && !(component instanceof IterationOverviewPanel)) {
+        if (!(component instanceof OverviewPanel) &&
+            !(component instanceof IterationOverviewPanel)) {
             setTabComponentAt(index, new ClosableTabComponent(this));
         }
     }
-    
+
     /**
      * Method getOverview.
      * 
@@ -251,7 +243,7 @@
     public OverviewPanel getOverview() {
         return overview;
     }
-    
+
     /**
      * Method setSelectedComponent.
      * 
@@ -262,7 +254,7 @@
         this.lastTab = this.getSelectedComponent();
         super.setSelectedComponent(c);
     }
-    
+
     /**
      * Method removeTabAt.
      * 
@@ -276,9 +268,11 @@
                 setSelectedComponent(this.lastTab);
             }
         } catch (IllegalArgumentException e) {
+            //TODO Stop swallowing exceptions
+            e.printStackTrace();
         }
     }
-    
+
     //Getters and setters
     /**
      * Method getPopup.
@@ -288,7 +282,7 @@
     public JPopupMenu getPopup() {
         return popup;
     }
-    
+
     /**
      * Method getCloseAll.
      * 
@@ -297,7 +291,7 @@
     public JMenuItem getCloseAll() {
         return closeAll;
     }
-    
+
     /**
      * Method getCloseOthers.
      * 
@@ -306,105 +300,105 @@
     public JMenuItem getCloseOthers() {
         return closeOthers;
     }
-    
+
     /**
      * @return the dragging
      */
     boolean isDragging() {
         return this.dragging;
     }
-    
+
     /**
      * @param dragging the dragging to set
      */
     void setDragging(boolean dragging) {
         this.dragging = dragging;
     }
-    
+
     /**
      * @return the tabImage
      */
     Image getTabImage() {
         return this.tabImage;
     }
-    
+
     /**
      * @param tabImage the tabImage to set
      */
     void setTabImage(Image tabImage) {
         this.tabImage = tabImage;
     }
-    
+
     /**
      * @return the currentMouseLocation
      */
     Point getCurrentMouseLocation() {
         return this.currentMouseLocation;
     }
-    
+
     /**
      * @param currentMouseLocation the currentMouseLocation to set
      */
     void setCurrentMouseLocation(Point currentMouseLocation) {
         this.currentMouseLocation = currentMouseLocation;
     }
-    
+
     /**
      * @return the draggedTabIndex
      */
     int getDraggedTabIndex() {
         return this.draggedTabIndex;
     }
-    
+
     /**
      * @param draggedTabIndex the draggedTabIndex to set
      */
     void setDraggedTabIndex(int draggedTabIndex) {
         this.draggedTabIndex = draggedTabIndex;
     }
-    
+
     /**
      * @return the iterationOverview
      */
     IterationOverviewPanel getIterationOverview() {
         return this.iterationOverview;
     }
-    
+
     /**
      * @param iterationOverview the iterationOverview to set
      */
     void setIterationOverview(IterationOverviewPanel iterationOverview) {
         this.iterationOverview = iterationOverview;
     }
-    
+
     /**
      * @return the lastTab
      */
     Component getLastTab() {
         return this.lastTab;
     }
-    
+
     /**
      * @param lastTab the lastTab to set
      */
     void setLastTab(Component lastTab) {
         this.lastTab = lastTab;
     }
-    
+
     /**
      * @param overview the overview to set
      */
     void setOverview(OverviewPanel overview) {
         this.overview = overview;
     }
-    
+
     /**
      * @param closeAll the closeAll to set
      */
     void setCloseAll(JMenuItem closeAll) {
         this.closeAll = closeAll;
     }
-    
+
     /**
      * @param closeOthers the closeOthers to set
      */
diff --git a/RequirementManager/src/main/java/edu/wpi/cs/wpisuitetng/modules/requirementmanager/view/overview/OverviewTable.java b/RequirementManager/src/main/java/edu/wpi/cs/wpisuitetng/modules/requirementmanager/view/overview/OverviewTable.java
index f82d28a..f9be622 100644
--- a/RequirementManager/src/main/java/edu/wpi/cs/wpisuitetng/modules/requirementmanager/view/overview/OverviewTable.java
+++ b/RequirementManager/src/main/java/edu/wpi/cs/wpisuitetng/modules/requirementmanager/view/overview/OverviewTable.java
@@ -37,22 +37,20 @@
  * @author justinhess
  * @version $Revision: 1.0 $
  */
-public class OverviewTable extends JTable
-{
+public class OverviewTable extends JTable {
     private DefaultTableModel tableModel = null;
     private boolean initialized;
     private boolean isInEditMode;
     private boolean changedByRefresh = false;
     private Border paddingBorder = BorderFactory.createEmptyBorder(0, 4, 0, 0);
-    
+
     /**
      * Sets initial table view
      * 
      * @param data Initial data to fill OverviewTable
      * @param columnNames Column headers of OverviewTable
      */
-    public OverviewTable(Object[][] data, String[] columnNames)
-    {
+    public OverviewTable(Object[][] data, String[] columnNames) {
         this.tableModel = new DefaultTableModel(data, columnNames);
         this.setModel(tableModel);
         this.setDefaultRenderer(Object.class, new OverviewTableCellRenderer());
@@ -61,88 +59,78 @@
         this.setDragEnabled(true);
         this.setDropMode(DropMode.ON);
         this.setTransferHandler(new OverviewTableTransferHandler(this));
-        
+
         this.getTableHeader().setReorderingAllowed(false);
         this.setAutoCreateRowSorter(true);
         setFillsViewportHeight(true);
         isInEditMode = false;
-        
+
         ViewEventController.getInstance().setOverviewTable(this);
         initialized = false;
-        
+
         /* Create double-click event listener */
         this.addMouseListener(new MouseAdapter() {
             public void mouseClicked(MouseEvent e) {
-                
-                if (getRowCount() > 0)
-                {
+
+                if (getRowCount() > 0) {
                     int mouseY = e.getY();
                     Rectangle lastRow = getCellRect(getRowCount() - 1, 0, true);
                     int lastRowY = lastRow.y + lastRow.height;
-                    
-                    if (mouseY > lastRowY)
-                    {
+
+                    if (mouseY > lastRowY) {
                         getSelectionModel().clearSelection();
                         repaint();
                     }
                 }
-                
+
                 // only allow edit requirement panel to pop up outside of Multiple Requirement Editing Mode
-                if ((e.getClickCount() == 2) && !isInEditMode)
-                {
+                if ((e.getClickCount() == 2) && !isInEditMode) {
                     ViewEventController.getInstance().editSelectedRequirement();
                 }
             }
         });
     }
-    
+
     /**
      * updates OverviewTable with the contents of the requirement model *
      */
     public void refresh() {
         List<Requirement> requirements = RequirementModel.getInstance().getRequirements();
-        
+
         String[] pastEst = new String[requirements.size()];
-        
+
         if (isInEditMode) {
             // store all the estimates currently in the table if in Mult. Req. Editing mode
             for (int i = 0; i < this.getRowCount(); i++) {
                 pastEst[i] = String.valueOf(this.tableModel.getValueAt(i, 7));
             }
-            
+
             pastEst[requirements.size() - 1] = String.valueOf(requirements.get(requirements.size() - 1).getEstimate());
-            
+
             // indicate that refresh is about to affect the table
             setChangedByRefresh(true);
         }
-        
+
         // clear the table
         tableModel.setRowCount(0);
-        
+
         for (int i = 0; i < requirements.size(); i++) {
             Requirement req = requirements.get(i);
             String currEst = String.valueOf(req.getEstimate());
-            
+
             // re-enter the value last in the cell if in Mult. Req. Editing mode and req estimate not just edited
-            if (isInEditMode && (!currEst.equals(pastEst[i])) && (!req.getEstimateEdited())) {
+            if (isInEditMode &&
+                (!currEst.equals(pastEst[i])) && (!req.getEstimateEdited())) {
                 currEst = pastEst[i];
             }
-            
-            tableModel.addRow(new Object[] { req.getId(),
-                    req,
-                    req.getRelease(),
-                    req.getIteration(),
-                    req.getType(),
-                    req.getStatus(),
-                    req.getPriority(),
-                    currEst
-            });
+
+            tableModel.addRow(new Object[] { req.getId(), req, req.getRelease(), req.getIteration(), req.getType(), req.getStatus(), req.getPriority(), currEst });
             req.setEstimateEdited(false);
         }
         // indicate that refresh is no longer affecting the table
         setChangedByRefresh(false);
     }
-    
+
     /**
      * Overrides the isCellEditable method to ensure no cells are editable.
      * 
@@ -150,25 +138,25 @@
      * @param col column of OverviewTable cell is located @return boolean
      */
     @Override
-    public boolean isCellEditable(int row, int col)
-    {
+    public boolean isCellEditable(int row, int col) {
         // extract the ID number displayed in the row
         String rowIDstr = this.getValueAt(row, 0).toString();
         int rowID = Integer.parseInt(rowIDstr);
         // retrieve the requirement with ID rowID and the requirement's estimate 
         Requirement req = RequirementModel.getInstance().getRequirement(rowID);
-        
+
         // if the column contains the estimate, the requirement is not deleted, in progress or completed,
         // and the table is in Multiple Requirement Editing mode, make the cell editable
-        if ((col == 7) && (isInEditMode) && (!req.isDeleted())
-                && (req.getStatus() != RequirementStatus.COMPLETE)
-                && (req.getStatus() != RequirementStatus.INPROGRESS)) {
+        if ((col == 7) &&
+            (isInEditMode) && (!req.isDeleted()) &&
+            (req.getStatus() != RequirementStatus.COMPLETE) &&
+            (req.getStatus() != RequirementStatus.INPROGRESS)) {
             return true;
         }
-        
+
         return false;
     }
-    
+
     /**
      * Used to toggle the isInEditMode to indicate whether the requirements in
      * the Overview table are
@@ -179,28 +167,28 @@
     public void setEditFlag(boolean beingEdited) {
         isInEditMode = beingEdited;
     }
-    
+
     /**
      * @return isInEditMode
      */
     public boolean getEditFlag() {
         return isInEditMode;
     }
-    
+
     /**
      * @return the changedByRefresh
      */
     public boolean wasChangedByRefresh() {
         return changedByRefresh;
     }
-    
+
     /**
      * @param changedByRefresh the changedByRefresh to set
      */
     public void setChangedByRefresh(boolean changedByRefresh) {
         this.changedByRefresh = changedByRefresh;
     }
-    
+
     /**
      * Overrides the paintComponent method to retrieve the requirements on the
      * first painting.
@@ -208,47 +196,44 @@
      * @param g The component object to paint
      */
     @Override
-    public void paintComponent(Graphics g)
-    {
-        if (!initialized)
-        {
-            try
-            {
+    public void paintComponent(Graphics g) {
+        if (!initialized) {
+            try {
                 GetRequirementsController.getInstance().retrieveRequirements();
                 GetIterationController.getInstance().retrieveIterations();
                 initialized = true;
-            } catch (Exception e)
-            {
-                
+            } catch (Exception e) {
+                //TODO Stop swallowing exceptions
+                e.printStackTrace();
             }
         }
-        
+
         super.paintComponent(g);
     }
-    
+
     /**
      * saves the changes made to the Overview Table
      */
     public void saveChanges() {
         // Set time stamp for transaction history
         long timestamp = System.currentTimeMillis();
-        
+
         // iterate through the rows of the overview table
         for (int row = 0; row < this.tableModel.getRowCount(); row++) {
-            
+
             // extract the ID number displayed in the row
             String rowIDstr = this.tableModel.getValueAt(row, 0).toString();
             int rowID = Integer.parseInt(rowIDstr);
-            
+
             // use the ID number in the row to retrieve the requirement represented by the row
             Requirement req = RequirementModel.getInstance().getRequirement(rowID);
-            
+
             // indicate that the requirement were not just created
             req.setWasCreated(false);
-            
+
             // Set the time stamp for the transaction for the creation of the requirement
             req.getHistory().setTimestamp(timestamp);
-            
+
             // update the estimate with the value in the cell at row, column 7			
             String cellEstimateStr = this.tableModel.getValueAt(row, 7).toString();
             int cellEstimate = req.getEstimate();
@@ -259,52 +244,51 @@
             } catch (NumberFormatException nfe) {
                 formatError = true;
             }
-            
+
             if (formatError) {
                 cellEstimate = req.getEstimate();
                 this.setValueAt(cellEstimate, row, 7);
-            }
-            else {
+            } else {
                 cellEstimate = Integer.parseInt(cellEstimateStr);
             }
             req.setEstimate(cellEstimate);
-            
+
             // updates requirement on the server
             UpdateRequirementController.getInstance().updateRequirement(req);
         }
-        
+
         // refresh table to get rid of cell highlights
         this.refresh();
     }
-    
+
     /**
      * @return true if there are unsaved, saveable changes in the Overview Table
      */
     public boolean hasChanges() {
-        
+
         // iterate through the rows of the overview table
         for (int row = 0; row < this.tableModel.getRowCount(); row++) {
-            
+
             // extract the ID number displayed in the row
             String rowIDstr = this.tableModel.getValueAt(row, 0).toString();
             int rowID = Integer.parseInt(rowIDstr);
-            
+
             // use the ID number in the row to retrieve the requirement represented by the row
             Requirement req = RequirementModel.getInstance().getRequirement(rowID);
-            
+
             // extract the string from the estimate column			
             String cellEstimateStr = this.tableModel.getValueAt(row, 7).toString();
-            
+
             boolean formatError = false;
             int cellEstimate = 0;
-            
+
             // check to see if the value in the cell is a valid integer
             try {
                 cellEstimate = Integer.parseInt(cellEstimateStr);
             } catch (NumberFormatException nfe) {
                 formatError = true;
             }
-            
+
             if (!formatError) {
                 // if the valid cell estimate is not equal to the requirement estimate,
                 // indicate that a change has been found by returning true
@@ -312,11 +296,11 @@
                     return true;
             }
         }
-        
+
         // indicate that no changes were found by returning false
         return false;
     }
-    
+
     /**
      * Method prepareRenderer.
      * 
@@ -328,14 +312,14 @@
     @Override
     public Component prepareRenderer(TableCellRenderer renderer, int row, int column) {
         Component comp = super.prepareRenderer(renderer, row, column);
-        
+
         if (JComponent.class.isInstance(comp)) {
             ((JComponent) comp).setBorder(paddingBorder);
         }
         return comp;
-        
+
     }
-    
+
     public void validateEdits() {
         boolean errors = false;
         for (int row = 0; row < this.tableModel.getRowCount(); row++) {
@@ -351,5 +335,5 @@
         }
         ViewEventController.getInstance().getToolbar().editButton.setSaveEnabled(!errors);
     }
-    
+
 }