Index: client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListPresenter.java	(working copy)
@@ -64,312 +64,312 @@
 
 @SuppressWarnings("deprecation")
 public class IMAPMessageListPresenter extends WidgetPresenter<IMAPMessageListPresenter.Display>{
-	
-	public interface Display extends WidgetDisplay{
-		public HasRowSelectionHandlers getDataTableSelection();
-		public HasPageLoadHandlers getDataTableLoad();
-		public void addTableListener(TableListener listener) ;
-		public void removeTableListener(TableListener listener) ;
-		public void setPostFetchMessageCount(int count);
-		public HasClickHandlers getNewClick();
-		public Message getData(int rowIndex);
-		public HasClickHandlers getDeleteClick();
-		public HasClickHandlers getDeleteAllClick();
-		public HasEnable getDeleteEnable();
+    
+    public interface Display extends WidgetDisplay{
+        public HasRowSelectionHandlers getDataTableSelection();
+        public HasPageLoadHandlers getDataTableLoad();
+        public void addTableListener(TableListener listener) ;
+        public void removeTableListener(TableListener listener) ;
+        public void setPostFetchMessageCount(int count);
+        public HasClickHandlers getNewClick();
+        public Message getData(int rowIndex);
+        public HasClickHandlers getDeleteClick();
+        public HasClickHandlers getDeleteAllClick();
+        public HasEnable getDeleteEnable();
 
-		public void reloadData(User user, IMAPFolder folder,String searchValue);
-		public void removeMessages(ArrayList<Message> messages);
-		public ArrayList<Message> getSelectedMessages();
-		public void reset();
-		public HasDialog getConfirmDeleteDialog();
-		public HasDialog getConfirmDeleteAllDialog();
+        public void reloadData(User user, IMAPFolder folder,String searchValue);
+        public void removeMessages(ArrayList<Message> messages);
+        public ArrayList<Message> getSelectedMessages();
+        public void reset();
+        public HasDialog getConfirmDeleteDialog();
+        public HasDialog getConfirmDeleteAllDialog();
 
-		public HasClickHandlers getConfirmDeleteDialogClick();
-		public HasClickHandlers getConfirmDeleteAllDialogClick();
-		public void selectAllMessages();
-		public void deselectAllMessages();
-		public HasClickHandlers getSelectAllClick();
-		public HasClickHandlers getSelectNoneClick();
-		public HasClickHandlers getMarkSeenClick();
-		public HasClickHandlers getMarkUnseenClick();
-		public HasEnable getMarkSeenEnable();
-		public HasEnable getMarkUnseenEnable();
-		public void redraw();
-	}
+        public HasClickHandlers getConfirmDeleteDialogClick();
+        public HasClickHandlers getConfirmDeleteAllDialogClick();
+        public void selectAllMessages();
+        public void deselectAllMessages();
+        public HasClickHandlers getSelectAllClick();
+        public HasClickHandlers getSelectNoneClick();
+        public HasClickHandlers getMarkSeenClick();
+        public HasClickHandlers getMarkUnseenClick();
+        public HasEnable getMarkSeenEnable();
+        public HasEnable getMarkUnseenEnable();
+        public void redraw();
+    }
 
-	private ArrayList<HandlerRegistration> regList = new ArrayList<HandlerRegistration>();
-	private User user;
-	private IMAPFolder folder;
-	private String searchValue;
-	private DispatchAsync dispatcher;
-	private ShowMessageTableListener tableListener = new ShowMessageTableListener();
-	private boolean isBound = false;
-	public final static Place PLACE = new Place("IMAPMessageList");
-	
-	
-	@Inject
-	public IMAPMessageListPresenter(IMAPMessageListPresenter.Display display,EventBus bus,DispatchAsync dispatcher) {
-		super(display,bus);
-		this.dispatcher = dispatcher;
-	}
-	
-	@Override
-	public Place getPlace() {
-		return PLACE;
-	}
+    private ArrayList<HandlerRegistration> regList = new ArrayList<HandlerRegistration>();
+    private User user;
+    private IMAPFolder folder;
+    private String searchValue;
+    private DispatchAsync dispatcher;
+    private ShowMessageTableListener tableListener = new ShowMessageTableListener();
+    private boolean isBound = false;
+    public final static Place PLACE = new Place("IMAPMessageList");
+    
+    
+    @Inject
+    public IMAPMessageListPresenter(IMAPMessageListPresenter.Display display,EventBus bus,DispatchAsync dispatcher) {
+        super(display,bus);
+        this.dispatcher = dispatcher;
+    }
+    
+    @Override
+    public Place getPlace() {
+        return PLACE;
+    }
 
-	@Override
-	protected void onBind() {
-		
-		registerHandler(eventBus.addHandler(MoveMessageEvent.TYPE, new MoveMessageEventHandler() {
+    @Override
+    protected void onBind() {
+        
+        registerHandler(eventBus.addHandler(MoveMessageEvent.TYPE, new MoveMessageEventHandler() {
 
-			public void onMoveMessageHandler(MoveMessageEvent event) {
-				final Message message = event.getMessage();
-				dispatcher.execute(new MoveMessage(event.getOldFolder(), event.getNewFolder(), message.getUid()), new HupaCallback<MoveMessageResult>(dispatcher, eventBus) {
-					public void callback(MoveMessageResult result) {
-						ArrayList<Message> messageArray = new ArrayList<Message>();
-						messageArray.add(message);
-						display.removeMessages(messageArray);
-					}
-				}); 
-			}
-			
-		}));
-		registerHandler(display.getSelectAllClick().addClickHandler(new ClickHandler() {
+            public void onMoveMessageHandler(MoveMessageEvent event) {
+                final Message message = event.getMessage();
+                dispatcher.execute(new MoveMessage(event.getOldFolder(), event.getNewFolder(), message.getUid()), new HupaCallback<MoveMessageResult>(dispatcher, eventBus) {
+                    public void callback(MoveMessageResult result) {
+                        ArrayList<Message> messageArray = new ArrayList<Message>();
+                        messageArray.add(message);
+                        display.removeMessages(messageArray);
+                    }
+                }); 
+            }
+            
+        }));
+        registerHandler(display.getSelectAllClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				display.deselectAllMessages();
-				display.selectAllMessages();
-			}
-			
-		}));
-		
-		registerHandler(display.getSelectNoneClick().addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                display.deselectAllMessages();
+                display.selectAllMessages();
+            }
+            
+        }));
+        
+        registerHandler(display.getSelectNoneClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				display.deselectAllMessages();
-			}
-			
-		}));
+            public void onClick(ClickEvent event) {
+                display.deselectAllMessages();
+            }
+            
+        }));
 
 
-		registerHandler(display.getDeleteClick().addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() {
+        registerHandler(display.getDeleteClick().addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() {
 
-			public void onClick(com.google.gwt.event.dom.client.ClickEvent event) {
-				if (folder.getFullName().equals(user.getSettings().getTrashFolderName())) {
-					display.getConfirmDeleteDialog().show();
-				} else {
-					deleteMessages();
-				}
-				
-			}
-			
-		}));
-		registerHandler(display.getConfirmDeleteDialogClick().addClickHandler(new ClickHandler() {
+            public void onClick(com.google.gwt.event.dom.client.ClickEvent event) {
+                if (folder.getFullName().equals(user.getSettings().getTrashFolderName())) {
+                    display.getConfirmDeleteDialog().show();
+                } else {
+                    deleteMessages();
+                }
+                
+            }
+            
+        }));
+        registerHandler(display.getConfirmDeleteDialogClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				deleteMessages();
-			}
-			
-		}));
-		
-		registerHandler(display.getNewClick().addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() {
+            public void onClick(ClickEvent event) {
+                deleteMessages();
+            }
+            
+        }));
+        
+        registerHandler(display.getNewClick().addClickHandler(new com.google.gwt.event.dom.client.ClickHandler() {
 
-			public void onClick(com.google.gwt.event.dom.client.ClickEvent event) {
-				eventBus.fireEvent(new NewMessageEvent());
-			}
-			
-		}));
-		
-		registerHandler(display.getDeleteAllClick().addClickHandler(new ClickHandler() {
+            public void onClick(com.google.gwt.event.dom.client.ClickEvent event) {
+                eventBus.fireEvent(new NewMessageEvent());
+            }
+            
+        }));
+        
+        registerHandler(display.getDeleteAllClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				display.getConfirmDeleteAllDialog().center();
-			}
-			
-		}));
-		
-		registerHandler(display.getConfirmDeleteAllDialogClick().addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                display.getConfirmDeleteAllDialog().center();
+            }
+            
+        }));
+        
+        registerHandler(display.getConfirmDeleteAllDialogClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				dispatcher.execute(new DeleteAllMessages(folder), new HupaCallback<DeleteMessageResult>(dispatcher, eventBus) {
-					public void callback(DeleteMessageResult result) {
-						display.reset();
-						eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,result.getCount()));
-					}
-				});
-			}
-			
-		}));
-		registerHandler(display.getMarkSeenClick().addClickHandler( new ClickHandler() {
-			public void onClick(ClickEvent event) {
-				final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages());
-				ArrayList<Long> uids = new ArrayList<Long>();
-				for (int i = 0; i < selectedMessages.size(); i++) {
-					Message m = selectedMessages.get(i);
-					if (m.getFlags().contains(IMAPFlag.SEEN) == false) {
-						uids.add(m.getUid());
-					} else {
-						selectedMessages.remove(m);
-					}
-				}
-				dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, true, uids), new HupaCallback<GenericResult>(dispatcher, eventBus) {
-					public void callback(GenericResult result) {
-						GWT.log("S="+selectedMessages.size(), null);
-						for (int i = 0; i < selectedMessages.size(); i++) {
-							Message m = selectedMessages.get(i);
-							if (m.getFlags().contains(IMAPFlag.SEEN) == false) {
-								m.getFlags().add(IMAPFlag.SEEN);
-							}
-						}
-						display.redraw();
-						eventBus.fireEvent(new DecreaseUnseenEvent(user, folder,selectedMessages.size()));
-					}
-				});
-			}
+            public void onClick(ClickEvent event) {
+                dispatcher.execute(new DeleteAllMessages(folder), new HupaCallback<DeleteMessageResult>(dispatcher, eventBus) {
+                    public void callback(DeleteMessageResult result) {
+                        display.reset();
+                        eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,result.getCount()));
+                    }
+                });
+            }
+            
+        }));
+        registerHandler(display.getMarkSeenClick().addClickHandler( new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages());
+                ArrayList<Long> uids = new ArrayList<Long>();
+                for (int i = 0; i < selectedMessages.size(); i++) {
+                    Message m = selectedMessages.get(i);
+                    if (m.getFlags().contains(IMAPFlag.SEEN) == false) {
+                        uids.add(m.getUid());
+                    } else {
+                        selectedMessages.remove(m);
+                    }
+                }
+                dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, true, uids), new HupaCallback<GenericResult>(dispatcher, eventBus) {
+                    public void callback(GenericResult result) {
+                        GWT.log("S="+selectedMessages.size(), null);
+                        for (int i = 0; i < selectedMessages.size(); i++) {
+                            Message m = selectedMessages.get(i);
+                            if (m.getFlags().contains(IMAPFlag.SEEN) == false) {
+                                m.getFlags().add(IMAPFlag.SEEN);
+                            }
+                        }
+                        display.redraw();
+                        eventBus.fireEvent(new DecreaseUnseenEvent(user, folder,selectedMessages.size()));
+                    }
+                });
+            }
 
-		}));
-		
-		registerHandler(display.getMarkUnseenClick().addClickHandler(new ClickHandler() {
+        }));
+        
+        registerHandler(display.getMarkUnseenClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages());
-				ArrayList<Long> uids = new ArrayList<Long>();
-				for (int i = 0; i < selectedMessages.size(); i++) {
-					Message m = selectedMessages.get(i);
-					if (m.getFlags().contains(IMAPFlag.SEEN)) {
-						uids.add(m.getUid());
-					} else {
-						selectedMessages.remove(m);
-					}
-				}
-				
-				dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, false, uids), new HupaCallback<GenericResult>(dispatcher, eventBus) {
-					public void callback(GenericResult result) {
-						for (int i = 0; i < selectedMessages.size(); i++) {
-							Message m = selectedMessages.get(i);
-							if (m.getFlags().contains(IMAPFlag.SEEN)) {
-								m.getFlags().remove(IMAPFlag.SEEN);
-							}
-						}
-						display.redraw();
-						eventBus.fireEvent(new IncreaseUnseenEvent(user, folder,selectedMessages.size()));
-					}
-				});
-			}
-			
-			
-		}));
-		
-		regList.add(display.getDataTableSelection().addRowSelectionHandler(new RowSelectionHandler() {
-				public void onRowSelection(RowSelectionEvent event) {
-					if (event.getSelectedRows().size() == 0) {
-						display.getDeleteEnable().setEnabled(false);
-						display.getMarkSeenEnable().setEnabled(false);
-						display.getMarkUnseenEnable().setEnabled(false);
-					} else {
-						display.getDeleteEnable().setEnabled(true);
-						display.getMarkSeenEnable().setEnabled(true);
-						display.getMarkUnseenEnable().setEnabled(true);
-					}
-				}
-				
-			
-			
-		}));
-		display.addTableListener(tableListener);
-		isBound = true;
-	}
+            public void onClick(ClickEvent event) {
+                final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages());
+                ArrayList<Long> uids = new ArrayList<Long>();
+                for (int i = 0; i < selectedMessages.size(); i++) {
+                    Message m = selectedMessages.get(i);
+                    if (m.getFlags().contains(IMAPFlag.SEEN)) {
+                        uids.add(m.getUid());
+                    } else {
+                        selectedMessages.remove(m);
+                    }
+                }
+                
+                dispatcher.execute(new SetFlag(folder, IMAPFlag.SEEN, false, uids), new HupaCallback<GenericResult>(dispatcher, eventBus) {
+                    public void callback(GenericResult result) {
+                        for (int i = 0; i < selectedMessages.size(); i++) {
+                            Message m = selectedMessages.get(i);
+                            if (m.getFlags().contains(IMAPFlag.SEEN)) {
+                                m.getFlags().remove(IMAPFlag.SEEN);
+                            }
+                        }
+                        display.redraw();
+                        eventBus.fireEvent(new IncreaseUnseenEvent(user, folder,selectedMessages.size()));
+                    }
+                });
+            }
+            
+            
+        }));
+        
+        regList.add(display.getDataTableSelection().addRowSelectionHandler(new RowSelectionHandler() {
+                public void onRowSelection(RowSelectionEvent event) {
+                    if (event.getSelectedRows().size() == 0) {
+                        display.getDeleteEnable().setEnabled(false);
+                        display.getMarkSeenEnable().setEnabled(false);
+                        display.getMarkUnseenEnable().setEnabled(false);
+                    } else {
+                        display.getDeleteEnable().setEnabled(true);
+                        display.getMarkSeenEnable().setEnabled(true);
+                        display.getMarkUnseenEnable().setEnabled(true);
+                    }
+                }
+                
+            
+            
+        }));
+        display.addTableListener(tableListener);
+        isBound = true;
+    }
 
-	
-	private void deleteMessages() {
-		final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages());
-		ArrayList<Long> uids = new ArrayList<Long>();
-		for (int i = 0; i < selectedMessages.size(); i++) {
-			uids.add(selectedMessages.get(i).getUid());
-		}
-		dispatcher.execute(new DeleteMessageByUid(folder,uids), new HupaCallback<DeleteMessageResult>(dispatcher, eventBus) {
-			public void callback(DeleteMessageResult result) {
-				display.removeMessages(selectedMessages);
-				eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,result.getCount()));
-			}
-		}); 
-	}
-	
-	public void bind(User user, IMAPFolder folder, String searchValue) {
-		this.user = user;
-		this.folder = folder;
-		this.searchValue  = searchValue;
-		display.setPostFetchMessageCount(user.getSettings().getPostFetchMessageCount());
-		// workaround
-		if (isBound == false) {
-			bind();
-		}
-		
-		//refreshDisplay();
-	}
+    
+    private void deleteMessages() {
+        final ArrayList<Message> selectedMessages = new ArrayList<Message>(display.getSelectedMessages());
+        ArrayList<Long> uids = new ArrayList<Long>();
+        for (int i = 0; i < selectedMessages.size(); i++) {
+            uids.add(selectedMessages.get(i).getUid());
+        }
+        dispatcher.execute(new DeleteMessageByUid(folder,uids), new HupaCallback<DeleteMessageResult>(dispatcher, eventBus) {
+            public void callback(DeleteMessageResult result) {
+                display.removeMessages(selectedMessages);
+                eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,result.getCount()));
+            }
+        }); 
+    }
+    
+    public void bind(User user, IMAPFolder folder, String searchValue) {
+        this.user = user;
+        this.folder = folder;
+        this.searchValue  = searchValue;
+        display.setPostFetchMessageCount(user.getSettings().getPostFetchMessageCount());
+        // workaround
+        if (isBound == false) {
+            bind();
+        }
+        
+        //refreshDisplay();
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.BasicPresenter#onPlaceRequest(net.customware.gwt.presenter.client.place.PlaceRequest)
-	 */
-	protected void onPlaceRequest(PlaceRequest request) {
-		// TODO Auto-generated method stub
-		
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.BasicPresenter#onPlaceRequest(net.customware.gwt.presenter.client.place.PlaceRequest)
+     */
+    protected void onPlaceRequest(PlaceRequest request) {
+        // TODO Auto-generated method stub
+        
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.BasicPresenter#onUnbind()
-	 */
-	protected void onUnbind() {
-		display.removeTableListener(tableListener);
-		for (int i = 0; i < regList.size(); i++) {
-			regList.get(i).removeHandler();
-		}
-		isBound = false;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.BasicPresenter#onUnbind()
+     */
+    protected void onUnbind() {
+        display.removeTableListener(tableListener);
+        for (int i = 0; i < regList.size(); i++) {
+            regList.get(i).removeHandler();
+        }
+        isBound = false;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.Presenter#refreshDisplay()
-	 */
-	public void refreshDisplay() {
-		display.reset();
-		display.deselectAllMessages();
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.Presenter#refreshDisplay()
+     */
+    public void refreshDisplay() {
+        display.reset();
+        display.deselectAllMessages();
 
-		display.reloadData(user, folder, searchValue);
-	}
+        display.reloadData(user, folder, searchValue);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.Presenter#revealDisplay()
-	 */
-	public void revealDisplay() {
-		display.redraw();
-	}
-	
-	private final class ShowMessageTableListener implements TableListener {
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.Presenter#revealDisplay()
+     */
+    public void revealDisplay() {
+        display.redraw();
+    }
+    
+    private final class ShowMessageTableListener implements TableListener {
 
-		public void onCellClicked(SourcesTableEvents sender, int row,
-				int cell) {
-			
-			Message message = display.getData(row);
-			
-			// mark the message as seen and redraw the table to reflect this
-			if (message.getFlags().contains(Message.IMAPFlag.SEEN) == false) {
-				// add flag, fire event and redraw
-				message.getFlags().add(Message.IMAPFlag.SEEN);
-				eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,1));
-				
-				display.redraw();
+        public void onCellClicked(SourcesTableEvents sender, int row,
+                int cell) {
+            
+            Message message = display.getData(row);
+            
+            // mark the message as seen and redraw the table to reflect this
+            if (message.getFlags().contains(Message.IMAPFlag.SEEN) == false) {
+                // add flag, fire event and redraw
+                message.getFlags().add(Message.IMAPFlag.SEEN);
+                eventBus.fireEvent(new DecreaseUnseenEvent(user,folder,1));
+                
+                display.redraw();
 
-			}
-			
-			eventBus.fireEvent(new ExpandMessageEvent(user,folder,message));
-		}
+            }
+            
+            eventBus.fireEvent(new ExpandMessageEvent(user,folder,message));
+        }
 
-	};
+    };
 
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/LoginPresenter.java	(working copy)
@@ -46,103 +46,103 @@
 public class LoginPresenter extends WidgetPresenter<LoginPresenter.Display>{
     private HupaConstants constants = GWT.create(HupaConstants.class);
 
-	public interface Display extends WidgetDisplay{
-		public HasClickHandlers getLoginClick();
-		public HasClickHandlers getResetClick();
-		public HasValue<String> getUserNameValue();
-		public HasValue<String> getPasswordValue();
-		public Focusable getUserNameFocus();
-		public HasText getErrorText();
-	}
-	
-	private DispatchAsync dispatcher;
-	public static final Place PLACE = new Place("Login");
+    public interface Display extends WidgetDisplay{
+        public HasClickHandlers getLoginClick();
+        public HasClickHandlers getResetClick();
+        public HasValue<String> getUserNameValue();
+        public HasValue<String> getPasswordValue();
+        public Focusable getUserNameFocus();
+        public HasText getErrorText();
+    }
+    
+    private DispatchAsync dispatcher;
+    public static final Place PLACE = new Place("Login");
 
-	@Inject
-	public LoginPresenter(LoginPresenter.Display display,EventBus bus,DispatchAsync dispatcher) {
-		super(display,bus);
-		this.dispatcher = dispatcher;
-	}
+    @Inject
+    public LoginPresenter(LoginPresenter.Display display,EventBus bus,DispatchAsync dispatcher) {
+        super(display,bus);
+        this.dispatcher = dispatcher;
+    }
 
-	
-	/**
-	 * Try to login the user
-	 */
-	private void doLogin() {
-		dispatcher.execute(new LoginUser(display.getUserNameValue().getValue(),display.getPasswordValue().getValue()), new HupaCallback<LoginUserResult>(dispatcher, eventBus, display) {
-			public void callback(LoginUserResult result) {
-				eventBus.fireEvent(new LoginEvent(result.getUser()));
-				doReset();
-			}
-			public void callbackError(Throwable caught) {
-				display.getErrorText().setText(constants.loginInvalid());
-				doReset();
-			}
-		}); 
-	}
-	
-	/**
-	 * Reset display
-	 */
-	private void doReset() {
-		display.getUserNameValue().setValue("");
-		display.getPasswordValue().setValue("");
-		display.getErrorText().setText("");
-		display.getUserNameFocus().setFocus(true);
-	}
+    
+    /**
+     * Try to login the user
+     */
+    private void doLogin() {
+        dispatcher.execute(new LoginUser(display.getUserNameValue().getValue(),display.getPasswordValue().getValue()), new HupaCallback<LoginUserResult>(dispatcher, eventBus, display) {
+            public void callback(LoginUserResult result) {
+                eventBus.fireEvent(new LoginEvent(result.getUser()));
+                doReset();
+            }
+            public void callbackError(Throwable caught) {
+                display.getErrorText().setText(constants.loginInvalid());
+                doReset();
+            }
+        }); 
+    }
+    
+    /**
+     * Reset display
+     */
+    private void doReset() {
+        display.getUserNameValue().setValue("");
+        display.getPasswordValue().setValue("");
+        display.getErrorText().setText("");
+        display.getUserNameFocus().setFocus(true);
+    }
 
-	@Override
-	public Place getPlace() {
-		return PLACE;
-	}
+    @Override
+    public Place getPlace() {
+        return PLACE;
+    }
 
-	@Override
-	protected void onBind() {
-		registerHandler(display.getLoginClick().addClickHandler(new ClickHandler() {
+    @Override
+    protected void onBind() {
+        registerHandler(display.getLoginClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				doLogin();
-			}
-			
-		}));
-		registerHandler(display.getResetClick().addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                doLogin();
+            }
+            
+        }));
+        registerHandler(display.getResetClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				doReset();
-			}
-			
-		}));
-		
-		registerHandler(eventBus.addHandler(SessionExpireEvent.TYPE, new SessionExpireEventHandler() {
+            public void onClick(ClickEvent event) {
+                doReset();
+            }
+            
+        }));
+        
+        registerHandler(eventBus.addHandler(SessionExpireEvent.TYPE, new SessionExpireEventHandler() {
 
-			public void onSessionExpireEvent(SessionExpireEvent event) {
-				display.getErrorText().setText(constants.sessionTimedOut());
-			}
-			
-		}));
-	}
+            public void onSessionExpireEvent(SessionExpireEvent event) {
+                display.getErrorText().setText(constants.sessionTimedOut());
+            }
+            
+        }));
+    }
 
-	@Override
-	protected void onPlaceRequest(PlaceRequest request) {
-		String username = request.getParameter("username",null);
-		if (username != null) {
-			display.getUserNameValue().setValue(username);
-		}
-	}
+    @Override
+    protected void onPlaceRequest(PlaceRequest request) {
+        String username = request.getParameter("username",null);
+        if (username != null) {
+            display.getUserNameValue().setValue(username);
+        }
+    }
 
-	@Override
-	protected void onUnbind() {
-		// TODO Auto-generated method stub
-		
-	}
+    @Override
+    protected void onUnbind() {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void refreshDisplay() {
-		// TODO Auto-generated method stub
-	
-	}
+    public void refreshDisplay() {
+        // TODO Auto-generated method stub
+    
+    }
 
-	public void revealDisplay() {
-		// TODO Auto-generated method stub
-		
-	}
+    public void revealDisplay() {
+        // TODO Auto-generated method stub
+        
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageListView.java	(working copy)
@@ -93,672 +93,672 @@
 @SuppressWarnings("deprecation")
 public class IMAPMessageListView extends Composite implements Display{
 
-	private HupaConstants constants = GWT.create(HupaConstants.class);
-	private HupaMessages messages = GWT.create(HupaMessages.class);
-	private HupaImageBundle imageBundle = GWT.create(HupaImageBundle.class);
-	private DispatchAsync dispatcher;
-	private User user;
-	private IMAPFolder folder;
-	private String searchValue;
-	private PagingOptions options;
-	private DragRefetchPagingScrollTable<Message> mailTable;
-	private CachedTableModel<Message> cTableModel = new CachedTableModel<Message>(new IMAPMessageTableModel());
+    private HupaConstants constants = GWT.create(HupaConstants.class);
+    private HupaMessages messages = GWT.create(HupaMessages.class);
+    private HupaImageBundle imageBundle = GWT.create(HupaImageBundle.class);
+    private DispatchAsync dispatcher;
+    private User user;
+    private IMAPFolder folder;
+    private String searchValue;
+    private PagingOptions options;
+    private DragRefetchPagingScrollTable<Message> mailTable;
+    private CachedTableModel<Message> cTableModel = new CachedTableModel<Message>(new IMAPMessageTableModel());
 
-	private EventBus eventBus;
-	private FixedWidthGrid dataTable = createDataTable();
-	private MyButton deleteMailButton = new MyButton(constants.deleteMailButton());
-	private	Button newMailButton = new Button(constants.newMailButton());
-	private Button deleteAllMailButton = new Button(constants.deleteAll());
-	private ConfirmDialogBox confirmBox = new ConfirmDialogBox();
-	private ConfirmDialogBox confirmDeleteAllBox = new ConfirmDialogBox();
-	private MyButton markSeenButton = new MyButton(constants.markSeen());
-	private MyButton markUnSeenButton = new MyButton(constants.markUnseen());
+    private EventBus eventBus;
+    private FixedWidthGrid dataTable = createDataTable();
+    private MyButton deleteMailButton = new MyButton(constants.deleteMailButton());
+    private    Button newMailButton = new Button(constants.newMailButton());
+    private Button deleteAllMailButton = new Button(constants.deleteAll());
+    private ConfirmDialogBox confirmBox = new ConfirmDialogBox();
+    private ConfirmDialogBox confirmDeleteAllBox = new ConfirmDialogBox();
+    private MyButton markSeenButton = new MyButton(constants.markSeen());
+    private MyButton markUnSeenButton = new MyButton(constants.markUnseen());
 
-	private ListBox pageBox = new ListBox();
-	private Hyperlink allLink = new Hyperlink(constants.all(),"");	
-	private Hyperlink noneLink = new Hyperlink(constants.none(),"");
+    private ListBox pageBox = new ListBox();
+    private Hyperlink allLink = new Hyperlink(constants.all(),"");    
+    private Hyperlink noneLink = new Hyperlink(constants.none(),"");
 
-	
-	@Inject
-	public IMAPMessageListView(DispatchAsync dispatcher,EventBus bus, PagingScrollTableRowDragController controller) {
-		this.eventBus = bus;
-		this.dispatcher = dispatcher;
-		
-		VerticalPanel vPanel = new VerticalPanel();
+    
+    @Inject
+    public IMAPMessageListView(DispatchAsync dispatcher,EventBus bus, PagingScrollTableRowDragController controller) {
+        this.eventBus = bus;
+        this.dispatcher = dispatcher;
+        
+        VerticalPanel vPanel = new VerticalPanel();
 
-		cTableModel.setRowCount(MutableTableModel.UNKNOWN_ROW_COUNT);
-		mailTable = new DragRefetchPagingScrollTable<Message>(
-				cTableModel, dataTable, new FixedWidthFlexTable(),
-				createTableDefinitation(),controller,1);
-		mailTable.setPageSize(20);
-		mailTable.setDragHandler(0,30, new DragHandlerFactory() {
+        cTableModel.setRowCount(MutableTableModel.UNKNOWN_ROW_COUNT);
+        mailTable = new DragRefetchPagingScrollTable<Message>(
+                cTableModel, dataTable, new FixedWidthFlexTable(),
+                createTableDefinitation(),controller,1);
+        mailTable.setPageSize(20);
+        mailTable.setDragHandler(0,30, new DragHandlerFactory() {
 
-			public Widget createHandler() {
-				return new HTML(imageBundle.readyToMoveMailIcon().getHTML());
-			}
-			
-		});
-		
-		HTML emptyTable = new HTML(constants.emptyMailTable());
-		emptyTable.setHorizontalAlignment(HTML.ALIGN_CENTER);
-		emptyTable.setHeight("600px");
-		mailTable.setEmptyTableWidget(emptyTable);
-		FixedWidthGridBulkRenderer<Message> bulkRenderer = new FixedWidthGridBulkRenderer<Message>(mailTable.getDataTable(),mailTable);
-		mailTable.setBulkRenderer(bulkRenderer);
-		
-		mailTable.setCellPadding(0);
-		mailTable.setResizePolicy(ResizePolicy.FILL_WIDTH);
-		mailTable.setColumnResizePolicy(ColumnResizePolicy.MULTI_CELL);
-		mailTable.setScrollPolicy(ScrollPolicy.DISABLED);
-		mailTable.addPageLoadHandler(new PageLoadHandler() {
+            public Widget createHandler() {
+                return new HTML(imageBundle.readyToMoveMailIcon().getHTML());
+            }
+            
+        });
+        
+        HTML emptyTable = new HTML(constants.emptyMailTable());
+        emptyTable.setHorizontalAlignment(HTML.ALIGN_CENTER);
+        emptyTable.setHeight("600px");
+        mailTable.setEmptyTableWidget(emptyTable);
+        FixedWidthGridBulkRenderer<Message> bulkRenderer = new FixedWidthGridBulkRenderer<Message>(mailTable.getDataTable(),mailTable);
+        mailTable.setBulkRenderer(bulkRenderer);
+        
+        mailTable.setCellPadding(0);
+        mailTable.setResizePolicy(ResizePolicy.FILL_WIDTH);
+        mailTable.setColumnResizePolicy(ColumnResizePolicy.MULTI_CELL);
+        mailTable.setScrollPolicy(ScrollPolicy.DISABLED);
+        mailTable.addPageLoadHandler(new PageLoadHandler() {
 
-			public void onPageLoad(PageLoadEvent event) {
-				for (int i = 0; i < mailTable.getDataTable().getRowCount(); i++) {
-					mailTable.getDataTable().getRowFormatter().setStyleName(i,"hupa-Mailtable-row");
-					Message msg = mailTable.getRowValue(i);
-					if (msg != null) {
-						if (msg.getFlags().contains(IMAPFlag.SEEN) == false) {
-							mailTable.getDataTable().getRowFormatter().addStyleName(i,"hupa-Mailtable-row-notseen");
-						} else {
-							mailTable.getDataTable().getRowFormatter().removeStyleName(i,"hupa-Mailtable-row-notseen");
-						}
-					}
-				}
-			}
-			
-		});
-		
-		
-		mailTable.getDataTable().setCellSpacing(0);
-		mailTable.setSortPolicy(SortPolicy.DISABLED);
+            public void onPageLoad(PageLoadEvent event) {
+                for (int i = 0; i < mailTable.getDataTable().getRowCount(); i++) {
+                    mailTable.getDataTable().getRowFormatter().setStyleName(i,"hupa-Mailtable-row");
+                    Message msg = mailTable.getRowValue(i);
+                    if (msg != null) {
+                        if (msg.getFlags().contains(IMAPFlag.SEEN) == false) {
+                            mailTable.getDataTable().getRowFormatter().addStyleName(i,"hupa-Mailtable-row-notseen");
+                        } else {
+                            mailTable.getDataTable().getRowFormatter().removeStyleName(i,"hupa-Mailtable-row-notseen");
+                        }
+                    }
+                }
+            }
+            
+        });
+        
+        
+        mailTable.getDataTable().setCellSpacing(0);
+        mailTable.setSortPolicy(SortPolicy.DISABLED);
 
-		// This is only needed as workaround in pagingscrolltable
-		// See http://code.google.com/p/google-web-toolkit-incubator/wiki/PagingScrollTable
-		mailTable.setWidth(Window.getClientWidth() -150 -40+"px");
-		mailTable.setHeight("600px");
-		Window.addResizeHandler(new ResizeHandler() {
+        // This is only needed as workaround in pagingscrolltable
+        // See http://code.google.com/p/google-web-toolkit-incubator/wiki/PagingScrollTable
+        mailTable.setWidth(Window.getClientWidth() -150 -40+"px");
+        mailTable.setHeight("600px");
+        Window.addResizeHandler(new ResizeHandler() {
 
-			public void onResize(ResizeEvent event) {
-				mailTable.setWidth(Window.getClientWidth() -150 -30+"px");
-			}
-			
-		});
-		mailTable.fillWidth();
-		
-		options = new PagingOptions(mailTable);
-		
-		HorizontalPanel buttonBar = new HorizontalPanel();
-		buttonBar.setSpacing(5);
-		
-		ButtonBar navigatorBar = new ButtonBar();
-		navigatorBar.add(newMailButton);
-		deleteMailButton.setEnabled(false);
-		navigatorBar.add(deleteMailButton);
-		buttonBar.add(navigatorBar);
-		buttonBar.add(deleteAllMailButton);
-		
-		ButtonBar markButtonBar = new ButtonBar();
-		markButtonBar.add(markSeenButton);
-		markButtonBar.add(markUnSeenButton);
-		buttonBar.add(markButtonBar);
-		
-		pageBox.addItem("20");
-		pageBox.addItem("50");
-		pageBox.addItem("100");
-		pageBox.addChangeHandler(new ChangeHandler() {
+            public void onResize(ResizeEvent event) {
+                mailTable.setWidth(Window.getClientWidth() -150 -30+"px");
+            }
+            
+        });
+        mailTable.fillWidth();
+        
+        options = new PagingOptions(mailTable);
+        
+        HorizontalPanel buttonBar = new HorizontalPanel();
+        buttonBar.setSpacing(5);
+        
+        ButtonBar navigatorBar = new ButtonBar();
+        navigatorBar.add(newMailButton);
+        deleteMailButton.setEnabled(false);
+        navigatorBar.add(deleteMailButton);
+        buttonBar.add(navigatorBar);
+        buttonBar.add(deleteAllMailButton);
+        
+        ButtonBar markButtonBar = new ButtonBar();
+        markButtonBar.add(markSeenButton);
+        markButtonBar.add(markUnSeenButton);
+        buttonBar.add(markButtonBar);
+        
+        pageBox.addItem("20");
+        pageBox.addItem("50");
+        pageBox.addItem("100");
+        pageBox.addChangeHandler(new ChangeHandler() {
 
-			public void onChange(ChangeEvent event) {
-				mailTable.setPageSize(Integer.parseInt(pageBox.getItemText(pageBox.getSelectedIndex())));
-			}
-			
-		});
-		HorizontalPanel hPanel = new HorizontalPanel();
-		hPanel.setStyleName("hupa-MailTableControl");
-		hPanel.setSpacing(10);
-		hPanel.add(buttonBar);
-		hPanel.add(pageBox);
-		hPanel.setCellHorizontalAlignment(pageBox, HorizontalPanel.ALIGN_RIGHT);
-		
-	
-		
-		hPanel.setWidth("100%");
-		hPanel.setHeight("100%");
-		vPanel.add(hPanel);
-		
-		HorizontalPanel barPanel = new HorizontalPanel();
-		HorizontalPanel bar = new HorizontalPanel();
-		bar.setSpacing(3);
-		bar.add(new HTML(constants.select() +":"));
-		bar.add(allLink);
-		bar.add(noneLink);
-		
-		barPanel.add(bar);
-		barPanel.setCellHorizontalAlignment(bar, HorizontalPanel.ALIGN_LEFT);
-		barPanel.add(options);
-		barPanel.setCellHorizontalAlignment(options, HorizontalPanel.ALIGN_RIGHT);
-		barPanel.setWidth("100%");
-		vPanel.add(barPanel);
-		//vPanel.add(bar);
-		vPanel.add(mailTable);
-		confirmBox.setText(messages.confirmDeleteMessages());
-		confirmDeleteAllBox.setText(messages.confirmDeleteAllMessages());
-		initWidget(vPanel);
-	}
-	
-	private DefaultTableDefinition<Message> createTableDefinitation() {
-		DefaultTableDefinition<Message> def = new DefaultTableDefinition<Message>(createColumnDefinitionList());
-		
-		return def;
-	}
+            public void onChange(ChangeEvent event) {
+                mailTable.setPageSize(Integer.parseInt(pageBox.getItemText(pageBox.getSelectedIndex())));
+            }
+            
+        });
+        HorizontalPanel hPanel = new HorizontalPanel();
+        hPanel.setStyleName("hupa-MailTableControl");
+        hPanel.setSpacing(10);
+        hPanel.add(buttonBar);
+        hPanel.add(pageBox);
+        hPanel.setCellHorizontalAlignment(pageBox, HorizontalPanel.ALIGN_RIGHT);
+        
+    
+        
+        hPanel.setWidth("100%");
+        hPanel.setHeight("100%");
+        vPanel.add(hPanel);
+        
+        HorizontalPanel barPanel = new HorizontalPanel();
+        HorizontalPanel bar = new HorizontalPanel();
+        bar.setSpacing(3);
+        bar.add(new HTML(constants.select() +":"));
+        bar.add(allLink);
+        bar.add(noneLink);
+        
+        barPanel.add(bar);
+        barPanel.setCellHorizontalAlignment(bar, HorizontalPanel.ALIGN_LEFT);
+        barPanel.add(options);
+        barPanel.setCellHorizontalAlignment(options, HorizontalPanel.ALIGN_RIGHT);
+        barPanel.setWidth("100%");
+        vPanel.add(barPanel);
+        //vPanel.add(bar);
+        vPanel.add(mailTable);
+        confirmBox.setText(messages.confirmDeleteMessages());
+        confirmDeleteAllBox.setText(messages.confirmDeleteAllMessages());
+        initWidget(vPanel);
+    }
+    
+    private DefaultTableDefinition<Message> createTableDefinitation() {
+        DefaultTableDefinition<Message> def = new DefaultTableDefinition<Message>(createColumnDefinitionList());
+        
+        return def;
+    }
 
-	
-	/**
-	   * @return the newly created data table.
-	   */
-	  private FixedWidthGrid createDataTable() {
-	    FixedWidthGrid dataTable = new FixedWidthGrid();
-	    dataTable.setSelectionPolicy(SelectionPolicy.CHECKBOX);
-	    return dataTable;
-	  }
+    
+    /**
+       * @return the newly created data table.
+       */
+      private FixedWidthGrid createDataTable() {
+        FixedWidthGrid dataTable = new FixedWidthGrid();
+        dataTable.setSelectionPolicy(SelectionPolicy.CHECKBOX);
+        return dataTable;
+      }
 
-	/**
-	 * Create a new List which holds all needed ColumnDefinitions 
-	 * 
-	 */
-	private List<ColumnDefinition<Message, ?>> createColumnDefinitionList() {
-		List<ColumnDefinition<Message, ?>> cList = new ArrayList<ColumnDefinition<Message, ?>>();
+    /**
+     * Create a new List which holds all needed ColumnDefinitions 
+     * 
+     */
+    private List<ColumnDefinition<Message, ?>> createColumnDefinitionList() {
+        List<ColumnDefinition<Message, ?>> cList = new ArrayList<ColumnDefinition<Message, ?>>();
 
-		FromColumnDefination from = new FromColumnDefination();
-		from.setCellRenderer(new WhiteSpaceCellRenderer<Message>());
-		from.setColumnTruncatable(true);
-		from.setPreferredColumnWidth(250);
-		from.setMinimumColumnWidth(150);
-		from.setMaximumColumnWidth(300);
-		cList.add(from);
+        FromColumnDefination from = new FromColumnDefination();
+        from.setCellRenderer(new WhiteSpaceCellRenderer<Message>());
+        from.setColumnTruncatable(true);
+        from.setPreferredColumnWidth(250);
+        from.setMinimumColumnWidth(150);
+        from.setMaximumColumnWidth(300);
+        cList.add(from);
 
-		
-		SubjectColumnDefination subject =new SubjectColumnDefination();
-		subject.setCellRenderer(new WhiteSpaceCellRenderer<Message>());
-		subject.setColumnTruncatable(true);
-		subject.setPreferredColumnWidth(800);
-		subject.setMinimumColumnWidth(200);
-		cList.add(subject);
-		
-		AttachmentColumnDefination attachment = new AttachmentColumnDefination();
-		attachment.setColumnTruncatable(false);
-		// display an image if the message contains an attachment
-		attachment.setCellRenderer(new CellRenderer<Message, Boolean>() {
+        
+        SubjectColumnDefination subject =new SubjectColumnDefination();
+        subject.setCellRenderer(new WhiteSpaceCellRenderer<Message>());
+        subject.setColumnTruncatable(true);
+        subject.setPreferredColumnWidth(800);
+        subject.setMinimumColumnWidth(200);
+        cList.add(subject);
+        
+        AttachmentColumnDefination attachment = new AttachmentColumnDefination();
+        attachment.setColumnTruncatable(false);
+        // display an image if the message contains an attachment
+        attachment.setCellRenderer(new CellRenderer<Message, Boolean>() {
 
-			public void renderRowValue(Message rowValue,
-					ColumnDefinition<Message, Boolean> columnDef,
-					AbstractCellView<Message> view) {
-				if (columnDef.getCellValue(rowValue)) {
-					view.setHTML(imageBundle.attachmentIcon().getHTML());
-				} else {
-					view.setHTML("&nbsp");
-				}
-				
-			}
-			
-		});
-		
-		attachment.setPreferredColumnWidth(20);
-		attachment.setMinimumColumnWidth(15);
-		attachment.setMaximumColumnWidth(25);
-		cList.add(attachment);
-		
-		DateColumnDefination date = new DateColumnDefination();
-		date.setColumnTruncatable(true);
-		// set a special renderer for the date
-		date.setCellRenderer(new CellRenderer<Message, Date>() {
+            public void renderRowValue(Message rowValue,
+                    ColumnDefinition<Message, Boolean> columnDef,
+                    AbstractCellView<Message> view) {
+                if (columnDef.getCellValue(rowValue)) {
+                    view.setHTML(imageBundle.attachmentIcon().getHTML());
+                } else {
+                    view.setHTML("&nbsp");
+                }
+                
+            }
+            
+        });
+        
+        attachment.setPreferredColumnWidth(20);
+        attachment.setMinimumColumnWidth(15);
+        attachment.setMaximumColumnWidth(25);
+        cList.add(attachment);
+        
+        DateColumnDefination date = new DateColumnDefination();
+        date.setColumnTruncatable(true);
+        // set a special renderer for the date
+        date.setCellRenderer(new CellRenderer<Message, Date>() {
 
-			public void renderRowValue(Message rowValue,
-					ColumnDefinition<Message, Date> columnDef,
-					AbstractCellView<Message> view) {
-				DateTimeFormat dtformat;
-				Date rDate = rowValue.getReceivedDate();
-				int rYear = rDate.getYear();
-				int rMonth = rDate.getMonth();
-				int rDay = rDate.getDate();
-				
-				Date now = new Date();
-				int nowYear = now.getYear();
-				int nowMonth = now.getMonth();
-				int nowDay = now.getDate();
-				
-				if (rYear < nowYear) {
-					dtformat = DateTimeFormat.getFormat("dd.MMM.yyyy");
-				} else if (rMonth < nowMonth || (rMonth == nowMonth && rDay < nowDay)) {
-					dtformat = DateTimeFormat.getFormat("dd.MMM.");
-				} else if (rDay == nowDay){
-					dtformat = DateTimeFormat.getFormat("HH:mm");
-				} else {
+            public void renderRowValue(Message rowValue,
+                    ColumnDefinition<Message, Date> columnDef,
+                    AbstractCellView<Message> view) {
+                DateTimeFormat dtformat;
+                Date rDate = rowValue.getReceivedDate();
+                int rYear = rDate.getYear();
+                int rMonth = rDate.getMonth();
+                int rDay = rDate.getDate();
+                
+                Date now = new Date();
+                int nowYear = now.getYear();
+                int nowMonth = now.getMonth();
+                int nowDay = now.getDate();
+                
+                if (rYear < nowYear) {
+                    dtformat = DateTimeFormat.getFormat("dd.MMM.yyyy");
+                } else if (rMonth < nowMonth || (rMonth == nowMonth && rDay < nowDay)) {
+                    dtformat = DateTimeFormat.getFormat("dd.MMM.");
+                } else if (rDay == nowDay){
+                    dtformat = DateTimeFormat.getFormat("HH:mm");
+                } else {
 
-					dtformat = DateTimeFormat.getFormat("dd.MMM.yyyy HH:mm");
-				}
-			
-				view.setHTML(dtformat.format(rDate));
-				view.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
-			}
-			
-		});
-		date.setPreferredColumnWidth(100);
-		date.setMinimumColumnWidth(100);
-		date.setMaximumColumnWidth(150);
-		
-		cList.add(date);
-		
-		return cList;
-	}
-	
-	/**
-	 * TableModel which retrieve the messages for the user
-	 *
-	 */
-	private final class IMAPMessageTableModel extends MutableTableModel<Message> {
+                    dtformat = DateTimeFormat.getFormat("dd.MMM.yyyy HH:mm");
+                }
+            
+                view.setHTML(dtformat.format(rDate));
+                view.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
+            }
+            
+        });
+        date.setPreferredColumnWidth(100);
+        date.setMinimumColumnWidth(100);
+        date.setMaximumColumnWidth(150);
+        
+        cList.add(date);
+        
+        return cList;
+    }
+    
+    /**
+     * TableModel which retrieve the messages for the user
+     *
+     */
+    private final class IMAPMessageTableModel extends MutableTableModel<Message> {
 
-		@Override
-		public void requestRows(
-				final Request request,
-				final com.google.gwt.gen2.table.client.TableModel.Callback<Message> callback) {
-			
-			// if the given user or folder is null, its safe to return an empty list
-			if (user == null || folder == null) {
-				callback.onRowsReady(request, new TableModelHelper.Response<Message>() {
+        @Override
+        public void requestRows(
+                final Request request,
+                final com.google.gwt.gen2.table.client.TableModel.Callback<Message> callback) {
+            
+            // if the given user or folder is null, its safe to return an empty list
+            if (user == null || folder == null) {
+                callback.onRowsReady(request, new TableModelHelper.Response<Message>() {
 
-					@Override
-					public Iterator<Message> getRowValues() {
-						return new ArrayList<Message>().iterator();
-					}
-					
-				});
-			}
-			
-			dispatcher.execute(new FetchMessages(folder, request.getStartRow(), request.getNumRows(),searchValue),new HupaCallback<FetchMessagesResult>(dispatcher, eventBus) {
-				public void callback(final FetchMessagesResult result) {
-					eventBus.fireEvent(new MessagesReceivedEvent(folder,result.getMessages()));
-					 TableModelHelper.Response<Message> response = new TableModelHelper.Response<Message>() {
-						@Override
-						public Iterator<Message> getRowValues() {
-							return result.getMessages().iterator();
-						}
-					};
-					cTableModel.setRowCount(result.getRealCount());
-					callback.onRowsReady(request,response);
-				}
-			}); 
-		}
+                    @Override
+                    public Iterator<Message> getRowValues() {
+                        return new ArrayList<Message>().iterator();
+                    }
+                    
+                });
+            }
+            
+            dispatcher.execute(new FetchMessages(folder, request.getStartRow(), request.getNumRows(),searchValue),new HupaCallback<FetchMessagesResult>(dispatcher, eventBus) {
+                public void callback(final FetchMessagesResult result) {
+                    eventBus.fireEvent(new MessagesReceivedEvent(folder,result.getMessages()));
+                     TableModelHelper.Response<Message> response = new TableModelHelper.Response<Message>() {
+                        @Override
+                        public Iterator<Message> getRowValues() {
+                            return result.getMessages().iterator();
+                        }
+                    };
+                    cTableModel.setRowCount(result.getRealCount());
+                    callback.onRowsReady(request,response);
+                }
+            }); 
+        }
 
-		@Override
-		protected boolean onRowInserted(int beforeRow) {
-			return true;
-		}
+        @Override
+        protected boolean onRowInserted(int beforeRow) {
+            return true;
+        }
 
-		@Override
-		protected boolean onRowRemoved(int row) {	
-			return true;
-		}
+        @Override
+        protected boolean onRowRemoved(int row) {    
+            return true;
+        }
 
-		@Override
-		protected boolean onSetRowValue(int row, Message rowValue) {
-			return true;
-		}
-		
-	}
+        @Override
+        protected boolean onSetRowValue(int row, Message rowValue) {
+            return true;
+        }
+        
+    }
 
-	
-	/**
-	 * ColumnDefination which display if the message contains an attachment
-	 * @author Norman
-	 *
-	 */
-	private final class AttachmentColumnDefination extends AbstractColumnDefinition<Message, Boolean> {
+    
+    /**
+     * ColumnDefination which display if the message contains an attachment
+     * @author Norman
+     *
+     */
+    private final class AttachmentColumnDefination extends AbstractColumnDefinition<Message, Boolean> {
 
-		@Override
-		public Boolean getCellValue(Message rowValue) {
-			return rowValue.hasAttachment();
-		}
+        @Override
+        public Boolean getCellValue(Message rowValue) {
+            return rowValue.hasAttachment();
+        }
 
-		@Override
-		public void setCellValue(Message rowValue, Boolean cellValue) {
-		}
-		
-	}
+        @Override
+        public void setCellValue(Message rowValue, Boolean cellValue) {
+        }
+        
+    }
 
-	/**
-	 * ColumnDefination which display the From 
-	 *
-	 */
-	private final class FromColumnDefination extends AbstractColumnDefinition<Message, String> {
+    /**
+     * ColumnDefination which display the From 
+     *
+     */
+    private final class FromColumnDefination extends AbstractColumnDefinition<Message, String> {
 
-		@Override
-		public String getCellValue(Message rowValue) {
-			return rowValue.getFrom();
-		}
+        @Override
+        public String getCellValue(Message rowValue) {
+            return rowValue.getFrom();
+        }
 
-		@Override
-		public void setCellValue(Message rowValue, String cellValue) {
-			rowValue.setFrom(cellValue);
-		}
-		
-	}
-	
-	/**
-	 * ColumnDefination which display the Subject
-	 *
-	 */
-	private final class SubjectColumnDefination extends AbstractColumnDefinition<Message, String> {
+        @Override
+        public void setCellValue(Message rowValue, String cellValue) {
+            rowValue.setFrom(cellValue);
+        }
+        
+    }
+    
+    /**
+     * ColumnDefination which display the Subject
+     *
+     */
+    private final class SubjectColumnDefination extends AbstractColumnDefinition<Message, String> {
 
-		@Override
-		public String getCellValue(Message rowValue) {
-			return rowValue.getSubject();
-		}
+        @Override
+        public String getCellValue(Message rowValue) {
+            return rowValue.getSubject();
+        }
 
-		@Override
-		public void setCellValue(Message rowValue, String cellValue) {
-			rowValue.setSubject(cellValue);
+        @Override
+        public void setCellValue(Message rowValue, String cellValue) {
+            rowValue.setSubject(cellValue);
 
-		}
-		
-	}
-	
-	/**
-	 * ColumnDefination which display the Date
-	 * 
-	 */
-	private final class DateColumnDefination extends AbstractColumnDefinition<Message, Date> {
+        }
+        
+    }
+    
+    /**
+     * ColumnDefination which display the Date
+     * 
+     */
+    private final class DateColumnDefination extends AbstractColumnDefinition<Message, Date> {
 
-		@Override
-		public Date getCellValue(Message rowValue) {
-			return rowValue.getReceivedDate();
-		}
+        @Override
+        public Date getCellValue(Message rowValue) {
+            return rowValue.getReceivedDate();
+        }
 
-		@Override
-		public void setCellValue(Message rowValue, Date cellValue) {
-			rowValue.setReceivedDate(cellValue);
-		}
-		
-	}
+        @Override
+        public void setCellValue(Message rowValue, Date cellValue) {
+            rowValue.setReceivedDate(cellValue);
+        }
+        
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDataTableSelection()
-	 */
-	public HasRowSelectionHandlers getDataTableSelection() {
-		return mailTable.getDataTable();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#reloadData(org.apache.hupa.shared.data.User, org.apache.hupa.shared.data.IMAPFolder, java.lang.String)
-	 */
-	public void reloadData(User user, IMAPFolder folder,String searchValue) {
-		this.user = user;
-		this.folder = folder;
-		this.searchValue = searchValue;
-		cTableModel.clearCache();
-		mailTable.getTableModel().setRowCount(MutableTableModel.UNKNOWN_ROW_COUNT);
-		mailTable.reloadPage();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#reset()
-	 */
-	public void reset() {
-		this.user = null;
-		this.folder = null;
-		pageBox.setSelectedIndex(0);
-		cTableModel.clearCache();
-		cTableModel.setRowCount(0);
-		mailTable.reloadPage();
-		options.reset();
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDataTableSelection()
+     */
+    public HasRowSelectionHandlers getDataTableSelection() {
+        return mailTable.getDataTable();
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#reloadData(org.apache.hupa.shared.data.User, org.apache.hupa.shared.data.IMAPFolder, java.lang.String)
+     */
+    public void reloadData(User user, IMAPFolder folder,String searchValue) {
+        this.user = user;
+        this.folder = folder;
+        this.searchValue = searchValue;
+        cTableModel.clearCache();
+        mailTable.getTableModel().setRowCount(MutableTableModel.UNKNOWN_ROW_COUNT);
+        mailTable.reloadPage();
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#reset()
+     */
+    public void reset() {
+        this.user = null;
+        this.folder = null;
+        pageBox.setSelectedIndex(0);
+        cTableModel.clearCache();
+        cTableModel.setRowCount(0);
+        mailTable.reloadPage();
+        options.reset();
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDataTableLoad()
-	 */
-	public HasPageLoadHandlers getDataTableLoad() {
-		return mailTable;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDataTableLoad()
+     */
+    public HasPageLoadHandlers getDataTableLoad() {
+        return mailTable;
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.widget.WidgetDisplay#asWidget()
-	 */
-	public Widget asWidget() {
-		return this;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.widget.WidgetDisplay#asWidget()
+     */
+    public Widget asWidget() {
+        return this;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.Display#startProcessing()
-	 */
-	public void startProcessing() {
-		// TODO Auto-generated method stub
-		
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.Display#startProcessing()
+     */
+    public void startProcessing() {
+        // TODO Auto-generated method stub
+        
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.Display#stopProcessing()
-	 */
-	public void stopProcessing() {
-		// TODO Auto-generated method stub
-		
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.Display#stopProcessing()
+     */
+    public void stopProcessing() {
+        // TODO Auto-generated method stub
+        
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteClick()
-	 */
-	public HasClickHandlers getDeleteClick() {
-		return deleteMailButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteClick()
+     */
+    public HasClickHandlers getDeleteClick() {
+        return deleteMailButton;
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getNewClick()
-	 */
-	public HasClickHandlers getNewClick() {
-		return newMailButton;
-	}
-	
-	/**
-	 * Renderer which fill empty rows with a whitespace 
-	 *
-	 * @param <E> RowType
-	 */
-	private final class WhiteSpaceCellRenderer<E> implements CellRenderer<E, String> {
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getNewClick()
+     */
+    public HasClickHandlers getNewClick() {
+        return newMailButton;
+    }
+    
+    /**
+     * Renderer which fill empty rows with a whitespace 
+     *
+     * @param <E> RowType
+     */
+    private final class WhiteSpaceCellRenderer<E> implements CellRenderer<E, String> {
 
-		/*
-		 * (non-Javadoc)
-		 * @see com.google.gwt.gen2.table.client.CellRenderer#renderRowValue(java.lang.Object, com.google.gwt.gen2.table.client.ColumnDefinition, com.google.gwt.gen2.table.client.TableDefinition.AbstractCellView)
-		 */
-		public void renderRowValue(E rowValue,
-				ColumnDefinition<E, String> columnDef, AbstractCellView<E> view) {
-			String cellValue = columnDef.getCellValue(rowValue);
-			if (cellValue == null || cellValue.length() < 1) {
-				view.setHTML("&nbsp");
-			} else {
-				view.setHTML(cellValue);
-			}
-		}
+        /*
+         * (non-Javadoc)
+         * @see com.google.gwt.gen2.table.client.CellRenderer#renderRowValue(java.lang.Object, com.google.gwt.gen2.table.client.ColumnDefinition, com.google.gwt.gen2.table.client.TableDefinition.AbstractCellView)
+         */
+        public void renderRowValue(E rowValue,
+                ColumnDefinition<E, String> columnDef, AbstractCellView<E> view) {
+            String cellValue = columnDef.getCellValue(rowValue);
+            if (cellValue == null || cellValue.length() < 1) {
+                view.setHTML("&nbsp");
+            } else {
+                view.setHTML(cellValue);
+            }
+        }
 
-		
-	}
+        
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getData(int)
-	 */
-	public Message getData(int rowIndex) {
-		return mailTable.getRowValue(rowIndex);
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getData(int)
+     */
+    public Message getData(int rowIndex) {
+        return mailTable.getRowValue(rowIndex);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDialog()
-	 */
-	public HasDialog getConfirmDeleteDialog() {
-		return confirmBox;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDialog()
+     */
+    public HasDialog getConfirmDeleteDialog() {
+        return confirmBox;
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteDialogClick()
-	 */
-	public HasClickHandlers getConfirmDeleteDialogClick() {
-		return confirmBox;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteDialogClick()
+     */
+    public HasClickHandlers getConfirmDeleteDialogClick() {
+        return confirmBox;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteAllDialog()
-	 */
-	public HasDialog getConfirmDeleteAllDialog() {
-		return confirmDeleteAllBox;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteAllDialog()
+     */
+    public HasDialog getConfirmDeleteAllDialog() {
+        return confirmDeleteAllBox;
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteAllDialogClick()
-	 */
-	public HasClickHandlers getConfirmDeleteAllDialogClick() {
-		return confirmDeleteAllBox;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getConfirmDeleteAllDialogClick()
+     */
+    public HasClickHandlers getConfirmDeleteAllDialogClick() {
+        return confirmDeleteAllBox;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#deselectAllMessages()
-	 */
-	public void deselectAllMessages() {
-		mailTable.getDataTable().deselectAllRows();
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#deselectAllMessages()
+     */
+    public void deselectAllMessages() {
+        mailTable.getDataTable().deselectAllRows();
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getSelectAllClick()
-	 */
-	public HasClickHandlers getSelectAllClick() {
-		return allLink;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getSelectAllClick()
+     */
+    public HasClickHandlers getSelectAllClick() {
+        return allLink;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getSelectNoneClick()
-	 */
-	public HasClickHandlers getSelectNoneClick() {
-		return noneLink;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getSelectNoneClick()
+     */
+    public HasClickHandlers getSelectNoneClick() {
+        return noneLink;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#selectAllMessages()
-	 */
-	public void selectAllMessages() {
-		mailTable.getDataTable().selectAllRows();
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#selectAllMessages()
+     */
+    public void selectAllMessages() {
+        mailTable.getDataTable().selectAllRows();
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getSelectedMessages()
-	 */
-	public ArrayList<Message> getSelectedMessages() {
-		return mailTable.getSelectedRows();
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getSelectedMessages()
+     */
+    public ArrayList<Message> getSelectedMessages() {
+        return mailTable.getSelectedRows();
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#removeMessages(java.util.ArrayList)
-	 */
-	public void removeMessages(ArrayList<Message> messages) {
-		mailTable.removeRows(messages);
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#removeMessages(java.util.ArrayList)
+     */
+    public void removeMessages(ArrayList<Message> messages) {
+        mailTable.removeRows(messages);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#addTableListener(com.google.gwt.user.client.ui.TableListener)
-	 */
-	public void addTableListener(TableListener listener) {
-		dataTable.addTableListener(listener);
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#addTableListener(com.google.gwt.user.client.ui.TableListener)
+     */
+    public void addTableListener(TableListener listener) {
+        dataTable.addTableListener(listener);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#removeTableListener(com.google.gwt.user.client.ui.TableListener)
-	 */
-	public void removeTableListener(TableListener listener) {
-		dataTable.removeTableListener(listener);
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#removeTableListener(com.google.gwt.user.client.ui.TableListener)
+     */
+    public void removeTableListener(TableListener listener) {
+        dataTable.removeTableListener(listener);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#setPostFetchMessageCount(int)
-	 */
-	public void setPostFetchMessageCount(int count) {
-		cTableModel.setPostCachedRowCount(count);
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#setPostFetchMessageCount(int)
+     */
+    public void setPostFetchMessageCount(int count) {
+        cTableModel.setPostCachedRowCount(count);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#redraw()
-	 */
-	public void redraw() {
-		mailTable.reloadPage();
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#redraw()
+     */
+    public void redraw() {
+        mailTable.reloadPage();
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteAllClick()
-	 */
-	public HasClickHandlers getDeleteAllClick() {
-		return deleteAllMailButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteAllClick()
+     */
+    public HasClickHandlers getDeleteAllClick() {
+        return deleteAllMailButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkSeenClick()
-	 */
-	public HasClickHandlers getMarkSeenClick() {
-		return markSeenButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkSeenClick()
+     */
+    public HasClickHandlers getMarkSeenClick() {
+        return markSeenButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkUnseenClick()
-	 */
-	public HasClickHandlers getMarkUnseenClick() {
-		return markUnSeenButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkUnseenClick()
+     */
+    public HasClickHandlers getMarkUnseenClick() {
+        return markUnSeenButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteEnable()
-	 */
-	public HasEnable getDeleteEnable() {
-		return deleteMailButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getDeleteEnable()
+     */
+    public HasEnable getDeleteEnable() {
+        return deleteMailButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkSeenEnable()
-	 */
-	public HasEnable getMarkSeenEnable() {
-		return markSeenButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkSeenEnable()
+     */
+    public HasEnable getMarkSeenEnable() {
+        return markSeenButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkUnseenEnable()
-	 */
-	public HasEnable getMarkUnseenEnable() {
-		return markUnSeenButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.IMAPMessageListPresenter.Display#getMarkUnseenEnable()
+     */
+    public HasEnable getMarkUnseenEnable() {
+        return markUnSeenButton;
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/IMAPMessagePresenter.java	(working copy)
@@ -54,166 +54,166 @@
 
 public class IMAPMessagePresenter extends WidgetPresenter<IMAPMessagePresenter.Display>{
 
-	public interface Display extends WidgetDisplay{
-		public HasText getFrom();
+    public interface Display extends WidgetDisplay{
+        public HasText getFrom();
 
-		public HasText getTo();
+        public HasText getTo();
 
-		public HasText getCc();
+        public HasText getCc();
 
-		public HasText getSubject();
-		public Frame getShowRawMessageFrame();
-		public HasDialog getShowRawMessageDialog();
-		public HasHTML getContent();
-		public HasClickHandlers getShowRawMessageClick();
-		public HasClickHandlers getDeleteButtonClick();
-		public HasClickHandlers getReplyButtonClick();
-		public HasClickHandlers getReplyAllButtonClick();
-		public HasClickHandlers getForwardButtonClick();
-		public HasClickHandlers getBackButtonClick();
-		public void setAttachments(List<MessageAttachment> attachements, String folder,  long uid);
-	}
+        public HasText getSubject();
+        public Frame getShowRawMessageFrame();
+        public HasDialog getShowRawMessageDialog();
+        public HasHTML getContent();
+        public HasClickHandlers getShowRawMessageClick();
+        public HasClickHandlers getDeleteButtonClick();
+        public HasClickHandlers getReplyButtonClick();
+        public HasClickHandlers getReplyAllButtonClick();
+        public HasClickHandlers getForwardButtonClick();
+        public HasClickHandlers getBackButtonClick();
+        public void setAttachments(List<MessageAttachment> attachements, String folder,  long uid);
+    }
 
-	public static final Place PLACE = new Place("IMAPMessage");
-	private MessageDetails messageDetails;
-	private Message message;
-	private CachingDispatchAsync dispatcher;
-	private IMAPFolder folder;
-	private User user;
-	private boolean isBound = false;
+    public static final Place PLACE = new Place("IMAPMessage");
+    private MessageDetails messageDetails;
+    private Message message;
+    private CachingDispatchAsync dispatcher;
+    private IMAPFolder folder;
+    private User user;
+    private boolean isBound = false;
 
-	@Inject
-	private IMAPMessagePresenter(IMAPMessagePresenter.Display display,EventBus bus, CachingDispatchAsync dispatcher) {
-		super(display,bus);
-		this.dispatcher = dispatcher;
-	}
+    @Inject
+    private IMAPMessagePresenter(IMAPMessagePresenter.Display display,EventBus bus, CachingDispatchAsync dispatcher) {
+        super(display,bus);
+        this.dispatcher = dispatcher;
+    }
 
-	
-	public void bind(User user, IMAPFolder folder, Message message, MessageDetails messageDetails) {
-		this.message = message;
-		this.messageDetails = messageDetails;
-		this.folder = folder;
-		this.user = user;
-		if (isBound == false) { 
-			bind();
-		}
-		refreshDisplay();
-	}
+    
+    public void bind(User user, IMAPFolder folder, Message message, MessageDetails messageDetails) {
+        this.message = message;
+        this.messageDetails = messageDetails;
+        this.folder = folder;
+        this.user = user;
+        if (isBound == false) { 
+            bind();
+        }
+        refreshDisplay();
+    }
 
-	private void updateDisplay() {
-		display.getFrom().setText(message.getFrom());
-		display.getCc().setText(Util.arrayToString(message.getCc()));
-		display.getTo().setText(Util.arrayToString(message.getTo()));
-		display.getSubject().setText(message.getSubject());
-		String con = messageDetails.getText();
-		if (messageDetails.isHTML() == false) {
-			con = Util.toHtml(con);
-		}
-		display.getContent().setHTML(con);
-		display.setAttachments(messageDetails.getMessageAttachments(), folder.getFullName(),message.getUid());
-	}
-	
-	@Override
-	public Place getPlace() {
-		return PLACE;
-	}
+    private void updateDisplay() {
+        display.getFrom().setText(message.getFrom());
+        display.getCc().setText(Util.arrayToString(message.getCc()));
+        display.getTo().setText(Util.arrayToString(message.getTo()));
+        display.getSubject().setText(message.getSubject());
+        String con = messageDetails.getText();
+        if (messageDetails.isHTML() == false) {
+            con = Util.toHtml(con);
+        }
+        display.getContent().setHTML(con);
+        display.setAttachments(messageDetails.getMessageAttachments(), folder.getFullName(),message.getUid());
+    }
+    
+    @Override
+    public Place getPlace() {
+        return PLACE;
+    }
 
-	@Override
-	protected void onBind() {
-		registerHandler(display.getDeleteButtonClick().addClickHandler(new ClickHandler() {
+    @Override
+    protected void onBind() {
+        registerHandler(display.getDeleteButtonClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				ArrayList<Long> uidList = new ArrayList<Long>();
-				uidList.add(message.getUid());
-				dispatcher.execute(new DeleteMessageByUid(folder, uidList), new HupaCallback<DeleteMessageResult>(dispatcher, eventBus) {
-					public void callback(DeleteMessageResult result) {
-						eventBus.fireEvent(new LoadMessagesEvent(user,folder));
-					}
-				}); 
-			}
+            public void onClick(ClickEvent event) {
+                ArrayList<Long> uidList = new ArrayList<Long>();
+                uidList.add(message.getUid());
+                dispatcher.execute(new DeleteMessageByUid(folder, uidList), new HupaCallback<DeleteMessageResult>(dispatcher, eventBus) {
+                    public void callback(DeleteMessageResult result) {
+                        eventBus.fireEvent(new LoadMessagesEvent(user,folder));
+                    }
+                }); 
+            }
 
-		}));
-		
-		registerHandler(display.getForwardButtonClick().addClickHandler(new ClickHandler() {
+        }));
+        
+        registerHandler(display.getForwardButtonClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				eventBus.fireEvent(new ForwardMessageEvent(user,folder,message, messageDetails));
-			}
-			
-		}));
-		
-		registerHandler(display.getReplyButtonClick().addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                eventBus.fireEvent(new ForwardMessageEvent(user,folder,message, messageDetails));
+            }
+            
+        }));
+        
+        registerHandler(display.getReplyButtonClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				eventBus.fireEvent(new ReplyMessageEvent(user,folder,message, messageDetails, false));
-			}
-			
-		}));
-		
-		registerHandler(display.getReplyAllButtonClick().addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                eventBus.fireEvent(new ReplyMessageEvent(user,folder,message, messageDetails, false));
+            }
+            
+        }));
+        
+        registerHandler(display.getReplyAllButtonClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				eventBus.fireEvent(new ReplyMessageEvent(user,folder,message, messageDetails, true));
-			}
-			
-		}));
-		registerHandler(display.getBackButtonClick().addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                eventBus.fireEvent(new ReplyMessageEvent(user,folder,message, messageDetails, true));
+            }
+            
+        }));
+        registerHandler(display.getBackButtonClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				eventBus.fireEvent(new BackEvent());
-			}
-			
-		}));
-		registerHandler(display.getShowRawMessageClick().addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                eventBus.fireEvent(new BackEvent());
+            }
+            
+        }));
+        registerHandler(display.getShowRawMessageClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				String message_url = "/hupa/messageSourceServlet?uid=" + message.getUid() + "&folder=" + folder.getFullName();
-				display.getShowRawMessageFrame().setUrl(message_url);
-				display.getShowRawMessageDialog().center();
-			}
-			
-		}));
-		isBound = true;
-	}
+            public void onClick(ClickEvent event) {
+                String message_url = "/hupa/messageSourceServlet?uid=" + message.getUid() + "&folder=" + folder.getFullName();
+                display.getShowRawMessageFrame().setUrl(message_url);
+                display.getShowRawMessageDialog().center();
+            }
+            
+        }));
+        isBound = true;
+    }
 
-	@Override
-	protected void onPlaceRequest(PlaceRequest request) {
-		String from = request.getParameter("from", user.getName());
-		display.getFrom().setText(from);
+    @Override
+    protected void onPlaceRequest(PlaceRequest request) {
+        String from = request.getParameter("from", user.getName());
+        display.getFrom().setText(from);
 
-		
-		String to = request.getParameter("to", null);
-		if (to != null) {
-			display.getTo().setText(to);
-		}
-		
-		String cc = request.getParameter("cc", null);
-		if (cc != null) {
-			display.getCc().setText(cc);
-		}
-		
-		String subject = request.getParameter("subject", null);
-		if (subject != null) {
-			display.getSubject().setText(subject);
-		}
-		
-		String bodytext = request.getParameter("bodytext", null);
-		if (bodytext != null) {
-			display.getContent().setText(bodytext);
-		}
-	}
+        
+        String to = request.getParameter("to", null);
+        if (to != null) {
+            display.getTo().setText(to);
+        }
+        
+        String cc = request.getParameter("cc", null);
+        if (cc != null) {
+            display.getCc().setText(cc);
+        }
+        
+        String subject = request.getParameter("subject", null);
+        if (subject != null) {
+            display.getSubject().setText(subject);
+        }
+        
+        String bodytext = request.getParameter("bodytext", null);
+        if (bodytext != null) {
+            display.getContent().setText(bodytext);
+        }
+    }
 
-	@Override
-	protected void onUnbind() {
-		isBound = false;
-	}
+    @Override
+    protected void onUnbind() {
+        isBound = false;
+    }
 
-	public void refreshDisplay() {
-		updateDisplay();
-	}
+    public void refreshDisplay() {
+        updateDisplay();
+    }
 
-	public void revealDisplay() {
-		// TODO Auto-generated method stub
-		
-	}
+    public void revealDisplay() {
+        // TODO Auto-generated method stub
+        
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/LoginView.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/LoginView.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/LoginView.java	(working copy)
@@ -57,7 +57,7 @@
 
     public LoginView() {
     
-    	VerticalPanel vPanel = new VerticalPanel();
+        VerticalPanel vPanel = new VerticalPanel();
         vPanel.setSpacing(5);
         vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
         vPanel.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
@@ -149,67 +149,67 @@
      * (non-Javadoc)
      * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getErrorText()
      */
-	public HasText getErrorText() {
-		return errorLabel;
-	}
+    public HasText getErrorText() {
+        return errorLabel;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getLoginClick()
-	 */
-	public HasClickHandlers getLoginClick() {
-		return loginButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getLoginClick()
+     */
+    public HasClickHandlers getLoginClick() {
+        return loginButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getPasswordValue()
-	 */
-	public HasValue<String> getPasswordValue() {
-		return passwordTextBox;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getPasswordValue()
+     */
+    public HasValue<String> getPasswordValue() {
+        return passwordTextBox;
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getResetClick()
-	 */
-	public HasClickHandlers getResetClick() {
-		return resetButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getResetClick()
+     */
+    public HasClickHandlers getResetClick() {
+        return resetButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getUserNameValue()
-	 */
-	public HasValue<String> getUserNameValue() {
-		return usernameTextBox;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getUserNameValue()
+     */
+    public HasValue<String> getUserNameValue() {
+        return usernameTextBox;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getUserNameFocus()
-	 */
-	public Focusable getUserNameFocus() {
-		return usernameTextBox;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.LoginPresenter.Display#getUserNameFocus()
+     */
+    public Focusable getUserNameFocus() {
+        return usernameTextBox;
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.widget.WidgetDisplay#asWidget()
-	 */
-	public Widget asWidget() {
-		return this;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.widget.WidgetDisplay#asWidget()
+     */
+    public Widget asWidget() {
+        return this;
+    }
 
 
-	public void startProcessing() {
-		loading.show();
-	}
+    public void startProcessing() {
+        loading.show();
+    }
 
 
-	public void stopProcessing() {
-		loading.hide();
-	}
+    public void stopProcessing() {
+        loading.hide();
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/IMAPMessageView.java	(working copy)
@@ -56,220 +56,220 @@
 import com.google.gwt.user.client.ui.Widget;
 
 public class IMAPMessageView extends Composite implements Display{
-	
-	private HupaImageBundle imageBundle = GWT.create(HupaImageBundle.class);
-	private HupaConstants constants = GWT.create(HupaConstants.class);
-	private Grid detailGrid = new Grid(5, 2);
-	private Label from = new Label();
-	private Label cc = new Label();
-	private Label to = new Label();
-	private Label subject = new Label();
-	private HTML msgArea = new HTML();
-	private Button deleteMsgButton = new Button();
-	private Button replyMsgButton = new Button();
-	private Button replyAllMsgButton = new Button();
-	private Button forwardMsgButton = new Button();
-	private Hyperlink showRawButton = new Hyperlink(constants.rawButton(),"");
-	private Hyperlink backButton = new Hyperlink(constants.backButton(),"");
-	private FlowPanel attachments = new FlowPanel();
-	private MyDialogBox rawDialogBox = new MyDialogBox();
-	private Frame rawFrame = new Frame();
-	public final static int DELETE_BUTTON = 0;
-	public final static int REPLY_BUTTON = 1;
-	public final static int REPLY_ALL_BUTTON = 2;
-	private Loading loading  = new Loading(true);
-	private SimplePanel container = new SimplePanel();
-	public IMAPMessageView() {
-		final VerticalPanel mPanel = new VerticalPanel();
-		mPanel.setWidth(Window.getClientWidth() -200 +"px");
-		
-		Window.addResizeHandler(new ResizeHandler() {
+    
+    private HupaImageBundle imageBundle = GWT.create(HupaImageBundle.class);
+    private HupaConstants constants = GWT.create(HupaConstants.class);
+    private Grid detailGrid = new Grid(5, 2);
+    private Label from = new Label();
+    private Label cc = new Label();
+    private Label to = new Label();
+    private Label subject = new Label();
+    private HTML msgArea = new HTML();
+    private Button deleteMsgButton = new Button();
+    private Button replyMsgButton = new Button();
+    private Button replyAllMsgButton = new Button();
+    private Button forwardMsgButton = new Button();
+    private Hyperlink showRawButton = new Hyperlink(constants.rawButton(),"");
+    private Hyperlink backButton = new Hyperlink(constants.backButton(),"");
+    private FlowPanel attachments = new FlowPanel();
+    private MyDialogBox rawDialogBox = new MyDialogBox();
+    private Frame rawFrame = new Frame();
+    public final static int DELETE_BUTTON = 0;
+    public final static int REPLY_BUTTON = 1;
+    public final static int REPLY_ALL_BUTTON = 2;
+    private Loading loading  = new Loading(true);
+    private SimplePanel container = new SimplePanel();
+    public IMAPMessageView() {
+        final VerticalPanel mPanel = new VerticalPanel();
+        mPanel.setWidth(Window.getClientWidth() -200 +"px");
+        
+        Window.addResizeHandler(new ResizeHandler() {
 
-			public void onResize(ResizeEvent event) {
-				mPanel.setWidth(Window.getClientWidth() -200+"px");
-			}
-			
-		});
-		mPanel.setSpacing(5);
+            public void onResize(ResizeEvent event) {
+                mPanel.setWidth(Window.getClientWidth() -200+"px");
+            }
+            
+        });
+        mPanel.setSpacing(5);
 
-		detailGrid.setWidth("100%");
-		detailGrid.setStyleName("hupa-IMAPMessageWidget-Header");
-		detailGrid.setText(0, 0, constants.headerFrom() + ":");
-		detailGrid.setText(1, 0, constants.headerTo() + ":");
-		detailGrid.setText(2, 0, constants.headerCc() + ":");
-		detailGrid.setText(3, 0, constants.headerSubject() + ":");
-		detailGrid.setText(4, 0, constants.attachments() + ":");
-		detailGrid.setWidget(0, 1, from);
-		detailGrid.setWidget(1, 1, to);
-		detailGrid.setWidget(2, 1, cc);
-		detailGrid.setWidget(3, 1, subject);
-		detailGrid.setWidget(4, 1, attachments);
-		
-		detailGrid.getCellFormatter().setHorizontalAlignment(0, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(1, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(2, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(3, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(4, 0, HorizontalPanel.ALIGN_RIGHT);
-		
-		detailGrid.getCellFormatter().setStyleName(0,0,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(0,1,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(1,0,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(1,1,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(2,0,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(2,1,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(3,0,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(3,1,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(4,0,"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(4,1,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.setWidth("100%");
+        detailGrid.setStyleName("hupa-IMAPMessageWidget-Header");
+        detailGrid.setText(0, 0, constants.headerFrom() + ":");
+        detailGrid.setText(1, 0, constants.headerTo() + ":");
+        detailGrid.setText(2, 0, constants.headerCc() + ":");
+        detailGrid.setText(3, 0, constants.headerSubject() + ":");
+        detailGrid.setText(4, 0, constants.attachments() + ":");
+        detailGrid.setWidget(0, 1, from);
+        detailGrid.setWidget(1, 1, to);
+        detailGrid.setWidget(2, 1, cc);
+        detailGrid.setWidget(3, 1, subject);
+        detailGrid.setWidget(4, 1, attachments);
+        
+        detailGrid.getCellFormatter().setHorizontalAlignment(0, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(1, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(2, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(3, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(4, 0, HorizontalPanel.ALIGN_RIGHT);
+        
+        detailGrid.getCellFormatter().setStyleName(0,0,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(0,1,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(1,0,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(1,1,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(2,0,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(2,1,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(3,0,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(3,1,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(4,0,"hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(4,1,"hupa-IMAPMessageWidget-Header-Content");
 
-		detailGrid.getCellFormatter().setVerticalAlignment(0, 0, VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(1, 0, VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(2, 0, VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(3, 0, VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(4, 0, VerticalPanel.ALIGN_TOP);
-		detailGrid.getCellFormatter().setWidth(0, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(1, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(2, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(3, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(4, 0, "100px");
-		
-		mPanel.add(detailGrid);
+        detailGrid.getCellFormatter().setVerticalAlignment(0, 0, VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(1, 0, VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(2, 0, VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(3, 0, VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(4, 0, VerticalPanel.ALIGN_TOP);
+        detailGrid.getCellFormatter().setWidth(0, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(1, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(2, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(3, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(4, 0, "100px");
+        
+        mPanel.add(detailGrid);
 
-		deleteMsgButton.setText(constants.deleteMailButton());
-		replyMsgButton.setText(constants.replyMailButton());
-		replyAllMsgButton.setText(constants.replyAllMailButton());
-		forwardMsgButton.setText(constants.forwardMailButton());	
-		
-		HorizontalPanel buttonPanel = new HorizontalPanel();
-		buttonPanel.setWidth("100%");
-		buttonPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
-		buttonPanel.addStyleName("hupa-IMAPMessageWidget-ButtonBar");
+        deleteMsgButton.setText(constants.deleteMailButton());
+        replyMsgButton.setText(constants.replyMailButton());
+        replyAllMsgButton.setText(constants.replyAllMailButton());
+        forwardMsgButton.setText(constants.forwardMailButton());    
+        
+        HorizontalPanel buttonPanel = new HorizontalPanel();
+        buttonPanel.setWidth("100%");
+        buttonPanel.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
+        buttonPanel.addStyleName("hupa-IMAPMessageWidget-ButtonBar");
 
-		
-		container.setWidget(showRawButton);
-		
-		ButtonBar buttonBar = new ButtonBar();
-		buttonBar.add(replyMsgButton);
-		buttonBar.add(replyAllMsgButton);
-		buttonBar.add(deleteMsgButton);
-		buttonBar.add(forwardMsgButton);
-		buttonBar.setWidth("100%");
-		buttonPanel.add(buttonBar);
-		
-		buttonPanel.add(container);
-		buttonPanel.setCellHorizontalAlignment(container, HorizontalPanel.ALIGN_RIGHT);
-		buttonPanel.add(backButton);
-		buttonPanel.setCellHorizontalAlignment(backButton, HorizontalPanel.ALIGN_RIGHT);
-		mPanel.add(buttonPanel);
-		msgArea.setWidth("100%");
-		ScrollPanel sPanel = new ScrollPanel();
-		sPanel.setAlwaysShowScrollBars(false);
+        
+        container.setWidget(showRawButton);
+        
+        ButtonBar buttonBar = new ButtonBar();
+        buttonBar.add(replyMsgButton);
+        buttonBar.add(replyAllMsgButton);
+        buttonBar.add(deleteMsgButton);
+        buttonBar.add(forwardMsgButton);
+        buttonBar.setWidth("100%");
+        buttonPanel.add(buttonBar);
+        
+        buttonPanel.add(container);
+        buttonPanel.setCellHorizontalAlignment(container, HorizontalPanel.ALIGN_RIGHT);
+        buttonPanel.add(backButton);
+        buttonPanel.setCellHorizontalAlignment(backButton, HorizontalPanel.ALIGN_RIGHT);
+        mPanel.add(buttonPanel);
+        msgArea.setWidth("100%");
+        ScrollPanel sPanel = new ScrollPanel();
+        sPanel.setAlwaysShowScrollBars(false);
 
-		sPanel.add(msgArea);
-		mPanel.add(sPanel);
+        sPanel.add(msgArea);
+        mPanel.add(sPanel);
 
-	    // TODO: put this in css
-	    rawFrame.setHeight("600px");
-	    rawFrame.setWidth("600px");
-	    rawDialogBox.setText(constants.rawTitle());
-	    rawDialogBox.add(rawFrame);
-		rawDialogBox.setAnimationEnabled(true);
-		rawDialogBox.setAutoHideEnabled(true);
-		initWidget(mPanel);
-	}
+        // TODO: put this in css
+        rawFrame.setHeight("600px");
+        rawFrame.setWidth("600px");
+        rawDialogBox.setText(constants.rawTitle());
+        rawDialogBox.add(rawFrame);
+        rawDialogBox.setAnimationEnabled(true);
+        rawDialogBox.setAutoHideEnabled(true);
+        initWidget(mPanel);
+    }
 
-	public HasText getCc() {
-		return cc;
-	}
+    public HasText getCc() {
+        return cc;
+    }
 
-	public HasHTML getContent() {
-		return msgArea;
-	}
+    public HasHTML getContent() {
+        return msgArea;
+    }
 
-	public HasText getFrom() {
-		return from;
-	}
+    public HasText getFrom() {
+        return from;
+    }
 
-	public HasText getSubject() {
-		return subject;
-	}
+    public HasText getSubject() {
+        return subject;
+    }
 
-	public HasText getTo() {
-		return to;
-	}
+    public HasText getTo() {
+        return to;
+    }
 
-	public Widget asWidget() {
-		return this;
-	}
+    public Widget asWidget() {
+        return this;
+    }
 
-	public void startProcessing() {
-		container.setWidget(loading);
-		loading.show();
-	}
+    public void startProcessing() {
+        container.setWidget(loading);
+        loading.show();
+    }
 
-	public void stopProcessing() {
-		container.setWidget(showRawButton);
-		loading.hide();
-	}
+    public void stopProcessing() {
+        container.setWidget(showRawButton);
+        loading.hide();
+    }
 
-	public HasClickHandlers getDeleteButtonClick() {
-		return deleteMsgButton;
-	}
+    public HasClickHandlers getDeleteButtonClick() {
+        return deleteMsgButton;
+    }
 
-	public void setAttachments(List<MessageAttachment> attachements,
-			final String folder,
-			final long uid) {
-		attachments.clear();
-		if (attachements != null) {
-			for (int i = 0; i < attachements.size(); i++) {
-				final MessageAttachment a = attachements.get(i);
-				Hyperlink link = new Hyperlink(a.getName() + " (" + a.getSize() / 1024
-						+ "kB)", true, "");
-				link.addClickHandler(new ClickHandler() {
+    public void setAttachments(List<MessageAttachment> attachements,
+            final String folder,
+            final long uid) {
+        attachments.clear();
+        if (attachements != null) {
+            for (int i = 0; i < attachements.size(); i++) {
+                final MessageAttachment a = attachements.get(i);
+                Hyperlink link = new Hyperlink(a.getName() + " (" + a.getSize() / 1024
+                        + "kB)", true, "");
+                link.addClickHandler(new ClickHandler() {
 
-					public void onClick(ClickEvent event) {
-						 DOM.setElementAttribute(RootPanel.get("__download")
-	                             .getElement(), "src", GWT.getModuleBaseURL()
-	                             + "downloadAttachmentServlet?attachment_name="
-	                             + a.getName() + "&folder_name=" + folder
-	                             + "&message_uuid=" + uid);
-					}
+                    public void onClick(ClickEvent event) {
+                         DOM.setElementAttribute(RootPanel.get("__download")
+                                 .getElement(), "src", GWT.getModuleBaseURL()
+                                 + "downloadAttachmentServlet?attachment_name="
+                                 + a.getName() + "&folder_name=" + folder
+                                 + "&message_uuid=" + uid);
+                    }
 
-				});
-				HorizontalPanel aPanel = new HorizontalPanel();
-				aPanel.add(imageBundle.attachmentIcon().createImage());
-				aPanel.add(link);
-				attachments.add(aPanel);
-			}
-		}
-	}
+                });
+                HorizontalPanel aPanel = new HorizontalPanel();
+                aPanel.add(imageBundle.attachmentIcon().createImage());
+                aPanel.add(link);
+                attachments.add(aPanel);
+            }
+        }
+    }
 
-	public HasClickHandlers getForwardButtonClick() {
-		return forwardMsgButton;
-	}
+    public HasClickHandlers getForwardButtonClick() {
+        return forwardMsgButton;
+    }
 
-	public HasClickHandlers getReplyAllButtonClick() {
-		return replyAllMsgButton;
-	}
+    public HasClickHandlers getReplyAllButtonClick() {
+        return replyAllMsgButton;
+    }
 
-	public HasClickHandlers getReplyButtonClick() {
-		return replyMsgButton;
-	}
+    public HasClickHandlers getReplyButtonClick() {
+        return replyMsgButton;
+    }
 
-	public HasClickHandlers getBackButtonClick() {
-		return backButton;
-	}
+    public HasClickHandlers getBackButtonClick() {
+        return backButton;
+    }
 
-	public HasClickHandlers getShowRawMessageClick() {
-		return showRawButton;
-	}
+    public HasClickHandlers getShowRawMessageClick() {
+        return showRawButton;
+    }
 
-	public HasDialog getShowRawMessageDialog() {
-		return rawDialogBox;
-	}
+    public HasDialog getShowRawMessageDialog() {
+        return rawDialogBox;
+    }
 
-	public Frame getShowRawMessageFrame() {
-		return rawFrame;
-	}
-	
+    public Frame getShowRawMessageFrame() {
+        return rawFrame;
+    }
+    
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/MessageSendPresenter.java	(working copy)
@@ -70,309 +70,309 @@
 
 public class MessageSendPresenter extends WidgetPresenter<MessageSendPresenter.Display>{
 
-	private User user;
-	private DispatchAsync dispatcher;
-	public static final Place PLACE = new Place("MessageSend");
-	private ArrayList<MessageAttachment> attachments = new ArrayList<MessageAttachment>();
-	private Type type = Type.NEW;
-	private IMAPFolder folder;
-	private Message oldmessage;
-	private ValidationMessages vMessages = new ValidationMessages();
-	private ValidationProcessor validator = new DefaultValidationProcessor(vMessages);
-	@SuppressWarnings("unused")
+    private User user;
+    private DispatchAsync dispatcher;
+    public static final Place PLACE = new Place("MessageSend");
+    private ArrayList<MessageAttachment> attachments = new ArrayList<MessageAttachment>();
+    private Type type = Type.NEW;
+    private IMAPFolder folder;
+    private Message oldmessage;
+    private ValidationMessages vMessages = new ValidationMessages();
+    private ValidationProcessor validator = new DefaultValidationProcessor(vMessages);
+    @SuppressWarnings("unused")
     private MessageDetails oldDetails;
 
-	private OnFinishUploaderHandler onFinishUploadHandler = new OnFinishUploaderHandler() {
-		public void onFinish(IUploader uploader) {
-			if (uploader.getStatus() == Status.SUCCESS) {
-				String name =  uploader.getInputName();
-				MessageAttachment attachment = new MessageAttachment();
-				attachment.setName(name);
-				attachments.add(attachment);
-				display.getSendEnable().setEnabled(true);
-			}
+    private OnFinishUploaderHandler onFinishUploadHandler = new OnFinishUploaderHandler() {
+        public void onFinish(IUploader uploader) {
+            if (uploader.getStatus() == Status.SUCCESS) {
+                String name =  uploader.getInputName();
+                MessageAttachment attachment = new MessageAttachment();
+                attachment.setName(name);
+                attachments.add(attachment);
+                display.getSendEnable().setEnabled(true);
+            }
         }
-	};
-	
-	private OnStatusChangedHandler onStatusChangedHandler = new OnStatusChangedHandler() {
-		public void onStatusChanged(IUploader uploader) {
-			Status stat = display.getUploader().getStatus();
-			if (stat == Status.INPROGRESS)
-				display.getSendEnable().setEnabled(false);
-			else
-				display.getSendEnable().setEnabled(true);
+    };
+    
+    private OnStatusChangedHandler onStatusChangedHandler = new OnStatusChangedHandler() {
+        public void onStatusChanged(IUploader uploader) {
+            Status stat = display.getUploader().getStatus();
+            if (stat == Status.INPROGRESS)
+                display.getSendEnable().setEnabled(false);
+            else
+                display.getSendEnable().setEnabled(true);
         }
-	};
+    };
 
-	private OnCancelUploaderHandler onCancelUploadHandler = new OnCancelUploaderHandler() {
-		public void onCancel(IUploader uploader) {
-			for (MessageAttachment attachment: attachments) {
-				if (attachment.getName().equals(uploader.getInputName()))
-					attachments.remove(attachment);
-			}
+    private OnCancelUploaderHandler onCancelUploadHandler = new OnCancelUploaderHandler() {
+        public void onCancel(IUploader uploader) {
+            for (MessageAttachment attachment: attachments) {
+                if (attachment.getName().equals(uploader.getInputName()))
+                    attachments.remove(attachment);
+            }
         }
-	};
-	
-	@Inject
-	public MessageSendPresenter(Display display, EventBus eventBus, DispatchAsync dispatcher) {
-		super(display, eventBus);
-		this.dispatcher = dispatcher;		
-		
-		FocusAction fAction = new FocusAction();
-		validator.addValidators("cc", new EmailListValidator(display.getCcText())
-				.addActionForFailure(
-						new StyleAction("hupa-validationErrorBorder"))
-				.addActionForFailure(fAction));
-		validator.addValidators("bcc", new EmailListValidator(display.getBccText())
-				.addActionForFailure(
-						new StyleAction("hupa-validationErrorBorder"))
-				.addActionForFailure(fAction));
-		validator.addValidators("to", new EmailListValidator(display.getToText())
-				.addActionForFailure(
-						new StyleAction("hupa-validationErrorBorder"))
-				.addActionForFailure(fAction), new NotEmptyValidator(display.getToText())
-				.addActionForFailure(
-						new StyleAction("hupa-validationErrorBorder"))
-				.addActionForFailure(fAction));
-	}
+    };
+    
+    @Inject
+    public MessageSendPresenter(Display display, EventBus eventBus, DispatchAsync dispatcher) {
+        super(display, eventBus);
+        this.dispatcher = dispatcher;        
+        
+        FocusAction fAction = new FocusAction();
+        validator.addValidators("cc", new EmailListValidator(display.getCcText())
+                .addActionForFailure(
+                        new StyleAction("hupa-validationErrorBorder"))
+                .addActionForFailure(fAction));
+        validator.addValidators("bcc", new EmailListValidator(display.getBccText())
+                .addActionForFailure(
+                        new StyleAction("hupa-validationErrorBorder"))
+                .addActionForFailure(fAction));
+        validator.addValidators("to", new EmailListValidator(display.getToText())
+                .addActionForFailure(
+                        new StyleAction("hupa-validationErrorBorder"))
+                .addActionForFailure(fAction), new NotEmptyValidator(display.getToText())
+                .addActionForFailure(
+                        new StyleAction("hupa-validationErrorBorder"))
+                .addActionForFailure(fAction));
+    }
 
-	public enum Type {
-		NEW,
-		REPLY,
-		REPLY_ALL,
-		FORWARD
-	}
-	
-	public interface Display extends WidgetDisplay {
-		public HasText getFromText();
-		public HasText getToText();
-		public HasText getCcText();
-		public HasText getBccText();
-		public HasText getSubjectText();
-		public HasText getMessageText();
-		public HasClickHandlers getSendClick();
-		public HasEnable getSendEnable();
-		public IUploader getUploader();
-		public void resetUploader();
-		public HasClickHandlers getBackButtonClick();
-	}
+    public enum Type {
+        NEW,
+        REPLY,
+        REPLY_ALL,
+        FORWARD
+    }
+    
+    public interface Display extends WidgetDisplay {
+        public HasText getFromText();
+        public HasText getToText();
+        public HasText getCcText();
+        public HasText getBccText();
+        public HasText getSubjectText();
+        public HasText getMessageText();
+        public HasClickHandlers getSendClick();
+        public HasEnable getSendEnable();
+        public IUploader getUploader();
+        public void resetUploader();
+        public HasClickHandlers getBackButtonClick();
+    }
 
-	@Override
-	public Place getPlace() {
-		return PLACE;
-	}
+    @Override
+    public Place getPlace() {
+        return PLACE;
+    }
 
-	@Override
-	protected void onBind() {
-		registerHandler(eventBus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() {
+    @Override
+    protected void onBind() {
+        registerHandler(eventBus.addHandler(LoadMessagesEvent.TYPE, new LoadMessagesEventHandler() {
 
-			public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) {
-				reset();
-			}
-			
-		}));
-		registerHandler(eventBus.addHandler(FolderSelectionEvent.TYPE, new FolderSelectionEventHandler() {
+            public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent) {
+                reset();
+            }
+            
+        }));
+        registerHandler(eventBus.addHandler(FolderSelectionEvent.TYPE, new FolderSelectionEventHandler() {
 
-			public void onFolderSelectionEvent(FolderSelectionEvent event) {
-				reset();
-			}
-			
-		}));
+            public void onFolderSelectionEvent(FolderSelectionEvent event) {
+                reset();
+            }
+            
+        }));
 
-		registerHandler(display.getUploader().addOnStatusChangedHandler(onStatusChangedHandler));
-		registerHandler(display.getUploader().addOnFinishUploadHandler(onFinishUploadHandler));
-		registerHandler(display.getUploader().addOnCancelUploadHandler(onCancelUploadHandler));
-		
-		registerHandler(display.getSendClick().addClickHandler(new ClickHandler() {
+        registerHandler(display.getUploader().addOnStatusChangedHandler(onStatusChangedHandler));
+        registerHandler(display.getUploader().addOnFinishUploadHandler(onFinishUploadHandler));
+        registerHandler(display.getUploader().addOnCancelUploadHandler(onCancelUploadHandler));
+        
+        registerHandler(display.getSendClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				
-					if (validator.validate() == false) {
-						return;
-					}
-					SMTPMessage message = new SMTPMessage();
-								
-					message.setFrom(display.getFromText().getText());
-					
-					ArrayList<String> to = new ArrayList<String>();
-					String[] toRaw = display.getToText().getText().split(",");
-					if (toRaw != null) {
-						for (int i = 0; i < toRaw.length;i++) {
-							String toRecip = toRaw[i].trim();
-							if (toRecip.length() > 0) {
-								to.add(toRaw[i].trim());
-							}
-						}
-					}
-					message.setTo(to);
-					
-					ArrayList<String> cc = new ArrayList<String>();
-					String[] ccRaw = display.getCcText().getText().split(",");
-					if (ccRaw != null) {
-						for (int i = 0; i < ccRaw.length;i++) {
-							String ccRecip = ccRaw[i].trim();
-							if (ccRecip.length() > 0) {
-								cc.add(ccRaw[i].trim());
-							}
-						}
-					}
-					message.setCc(cc);
-					
-					message.setSubject(display.getSubjectText().getText());
-					message.setText(display.getMessageText().getText());
+            public void onClick(ClickEvent event) {
+                
+                    if (validator.validate() == false) {
+                        return;
+                    }
+                    SMTPMessage message = new SMTPMessage();
+                                
+                    message.setFrom(display.getFromText().getText());
+                    
+                    ArrayList<String> to = new ArrayList<String>();
+                    String[] toRaw = display.getToText().getText().split(",");
+                    if (toRaw != null) {
+                        for (int i = 0; i < toRaw.length;i++) {
+                            String toRecip = toRaw[i].trim();
+                            if (toRecip.length() > 0) {
+                                to.add(toRaw[i].trim());
+                            }
+                        }
+                    }
+                    message.setTo(to);
+                    
+                    ArrayList<String> cc = new ArrayList<String>();
+                    String[] ccRaw = display.getCcText().getText().split(",");
+                    if (ccRaw != null) {
+                        for (int i = 0; i < ccRaw.length;i++) {
+                            String ccRecip = ccRaw[i].trim();
+                            if (ccRecip.length() > 0) {
+                                cc.add(ccRaw[i].trim());
+                            }
+                        }
+                    }
+                    message.setCc(cc);
+                    
+                    message.setSubject(display.getSubjectText().getText());
+                    message.setText(display.getMessageText().getText());
 
-					message.setMessageAttachments(attachments);
+                    message.setMessageAttachments(attachments);
 
-					// TODO: good handling of error messages, and use an error widget instead of Window.alert
-					if (type.equals(Type.NEW)) {
-						dispatcher.execute(new SendMessage(message), new HupaCallback<GenericResult>(dispatcher, eventBus) {
+                    // TODO: good handling of error messages, and use an error widget instead of Window.alert
+                    if (type.equals(Type.NEW)) {
+                        dispatcher.execute(new SendMessage(message), new HupaCallback<GenericResult>(dispatcher, eventBus) {
                             public void callback(GenericResult result) {
-								if (result.isSuccess()) {
-									eventBus.fireEvent(new SentMessageEvent());
-									reset();
-								} else {
-									Window.alert(result.getMessage());
-								}	
+                                if (result.isSuccess()) {
+                                    eventBus.fireEvent(new SentMessageEvent());
+                                    reset();
+                                } else {
+                                    Window.alert(result.getMessage());
+                                }    
                             }
-						});
-					} else if(type.equals(Type.FORWARD)) {
-						dispatcher.execute(new ForwardMessage(message, folder, oldmessage.getUid()), new HupaCallback<GenericResult>(dispatcher, eventBus) {
+                        });
+                    } else if(type.equals(Type.FORWARD)) {
+                        dispatcher.execute(new ForwardMessage(message, folder, oldmessage.getUid()), new HupaCallback<GenericResult>(dispatcher, eventBus) {
                             public void callback(GenericResult result) {
-								if (result.isSuccess()) {
-									eventBus.fireEvent(new SentMessageEvent());
-									reset();
-								} else {
-									Window.alert(result.getMessage());
-								}	
+                                if (result.isSuccess()) {
+                                    eventBus.fireEvent(new SentMessageEvent());
+                                    reset();
+                                } else {
+                                    Window.alert(result.getMessage());
+                                }    
                             }
-						});
-					} else if(type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
-						boolean replyAll = type.equals(Type.REPLY_ALL);
-						dispatcher.execute(new ReplyMessage(message, folder, oldmessage.getUid(), replyAll), new HupaCallback<GenericResult>(dispatcher, eventBus) {
+                        });
+                    } else if(type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
+                        boolean replyAll = type.equals(Type.REPLY_ALL);
+                        dispatcher.execute(new ReplyMessage(message, folder, oldmessage.getUid(), replyAll), new HupaCallback<GenericResult>(dispatcher, eventBus) {
                             public void callback(GenericResult result) {
-								if (result.isSuccess()) {
-									eventBus.fireEvent(new SentMessageEvent());
-									reset();
-								} else {
-									Window.alert(result.getMessage());
-								}	
+                                if (result.isSuccess()) {
+                                    eventBus.fireEvent(new SentMessageEvent());
+                                    reset();
+                                } else {
+                                    Window.alert(result.getMessage());
+                                }    
                             }
-						});
-					}
-				}
-		}));
-		
-		registerHandler(display.getBackButtonClick().addClickHandler(new ClickHandler() {
+                        });
+                    }
+                }
+        }));
+        
+        registerHandler(display.getBackButtonClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				eventBus.fireEvent(new BackEvent());
-			}
-			
-		}));
-	}
+            public void onClick(ClickEvent event) {
+                eventBus.fireEvent(new BackEvent());
+            }
+            
+        }));
+    }
 
-	private void reset() {
-		display.resetUploader();
-		display.getBccText().setText("");
-		display.getCcText().setText("");
-		display.getToText().setText("");
-		display.getSubjectText().setText("");
-		attachments.clear();
-		folder = null;
-		oldmessage = null;
-		type = Type.NEW;
-	}
+    private void reset() {
+        display.resetUploader();
+        display.getBccText().setText("");
+        display.getCcText().setText("");
+        display.getToText().setText("");
+        display.getSubjectText().setText("");
+        attachments.clear();
+        folder = null;
+        oldmessage = null;
+        type = Type.NEW;
+    }
 
-	@Override
-	protected void onPlaceRequest(PlaceRequest request) {
-		String from = request.getParameter("from", user.getName());
-		display.getFromText().setText(from);
+    @Override
+    protected void onPlaceRequest(PlaceRequest request) {
+        String from = request.getParameter("from", user.getName());
+        display.getFromText().setText(from);
 
-		
-		String to = request.getParameter("to", null);
-		if (to != null) {
-			display.getToText().setText(to);
-		}
-		
-		String cc = request.getParameter("cc", null);
-		if (cc != null) {
-			display.getCcText().setText(cc);
-		}
-		
-		String bcc = request.getParameter("bcc", null);
-		if (bcc != null) {
-			display.getBccText().setText(bcc);
-		}
-		
-		String subject = request.getParameter("subject", null);
-		if (subject != null) {
-			display.getSubjectText().setText(subject);
-		}
-		
-		String bodytext = request.getParameter("bodytext", null);
-		if (bodytext != null) {
-			display.getMessageText().setText(bodytext);
-		}
-	}
+        
+        String to = request.getParameter("to", null);
+        if (to != null) {
+            display.getToText().setText(to);
+        }
+        
+        String cc = request.getParameter("cc", null);
+        if (cc != null) {
+            display.getCcText().setText(cc);
+        }
+        
+        String bcc = request.getParameter("bcc", null);
+        if (bcc != null) {
+            display.getBccText().setText(bcc);
+        }
+        
+        String subject = request.getParameter("subject", null);
+        if (subject != null) {
+            display.getSubjectText().setText(subject);
+        }
+        
+        String bodytext = request.getParameter("bodytext", null);
+        if (bodytext != null) {
+            display.getMessageText().setText(bodytext);
+        }
+    }
 
-	@Override
-	protected void onUnbind() {
-		// cancel the current upload when unbinding
-		display.getUploader().cancel();
-	}
+    @Override
+    protected void onUnbind() {
+        // cancel the current upload when unbinding
+        display.getUploader().cancel();
+    }
 
-	public void refreshDisplay() {
-		// TODO Auto-generated method stub
-		
-	}
+    public void refreshDisplay() {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void revealDisplay() {
-		// TODO Auto-generated method stub
-		
-	}
-	
-	public void bind(User user, IMAPFolder folder, Message oldmessage, MessageDetails oldDetails, Type type) {
-		this.oldmessage = oldmessage;
-		this.oldDetails = oldDetails;
-		this.folder = folder;
-		this.user = user;
-		this.type = type;
-		
-		bind();
-		
-		display.getFromText().setText(user.getName());
+    public void revealDisplay() {
+        // TODO Auto-generated method stub
+        
+    }
+    
+    public void bind(User user, IMAPFolder folder, Message oldmessage, MessageDetails oldDetails, Type type) {
+        this.oldmessage = oldmessage;
+        this.oldDetails = oldDetails;
+        this.folder = folder;
+        this.user = user;
+        this.type = type;
+        
+        bind();
+        
+        display.getFromText().setText(user.getName());
 
-		if (type.equals(Type.FORWARD)) {
-			display.getSubjectText().setText("Fwd: " + oldmessage.getSubject());
-			display.getMessageText().setText("\n\n-------- Original Message -------\n" );
-		} else if (type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
-			display.getSubjectText().setText("Re: " + oldmessage.getSubject());
-			
-			String oldMessageText = oldDetails.getText();
-			StringBuffer messageText = new StringBuffer("\n\n-------- Message -------\n");
-			if ( oldMessageText != null) {
-				messageText.append(oldMessageText);
-			}
-			display.getMessageText().setText(messageText.toString());
+        if (type.equals(Type.FORWARD)) {
+            display.getSubjectText().setText("Fwd: " + oldmessage.getSubject());
+            display.getMessageText().setText("\n\n-------- Original Message -------\n" );
+        } else if (type.equals(Type.REPLY) || type.equals(Type.REPLY_ALL)) {
+            display.getSubjectText().setText("Re: " + oldmessage.getSubject());
+            
+            String oldMessageText = oldDetails.getText();
+            StringBuffer messageText = new StringBuffer("\n\n-------- Message -------\n");
+            if ( oldMessageText != null) {
+                messageText.append(oldMessageText);
+            }
+            display.getMessageText().setText(messageText.toString());
 
-			if (type.equals(Type.REPLY)) {
-				display.getToText().setText(oldmessage.getFrom());
-			} else {
-				oldmessage.getCc().remove(user.getName());
-				display.getCcText().setText(Util.arrayToString(oldmessage.getCc()));
-				oldmessage.getTo().remove(user.getName());
+            if (type.equals(Type.REPLY)) {
+                display.getToText().setText(oldmessage.getFrom());
+            } else {
+                oldmessage.getCc().remove(user.getName());
+                display.getCcText().setText(Util.arrayToString(oldmessage.getCc()));
+                oldmessage.getTo().remove(user.getName());
 
-				display.getToText().setText(Util.arrayToString(oldmessage.getTo()));
+                display.getToText().setText(Util.arrayToString(oldmessage.getTo()));
 
-			}
-		}else {
-			display.getSubjectText().setText("");
-			display.getMessageText().setText("");
-		}
-	}
-	
-	public void bind(User user, Type type) {
-		bind(user,null,null,null, type);
-	}
-	
+            }
+        }else {
+            display.getSubjectText().setText("");
+            display.getMessageText().setText("");
+        }
+    }
+    
+    public void bind(User user, Type type) {
+        bind(user,null,null,null, type);
+    }
+    
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/AppPresenter.java	(working copy)
@@ -60,178 +60,178 @@
 
 public class AppPresenter extends WidgetPresenter<AppPresenter.Display>{
 
-	private static final int NOOP_INTERVAL = 15000;
+    private static final int NOOP_INTERVAL = 15000;
 
-	public interface Display extends WidgetDisplay {
-		public HasClickHandlers getLogoutClick();
-		public void showTopNavigation(boolean show);
-		public void setMain(Widget w);
-		public HasText getUserText();
-		public void setServerStatus(ServerStatus status);
-	}
-	
-	private LoginPresenter loginPresenter;
-	private MainPresenter mainPresenter;
-	private Timer noopTimer = new NoopTimer();
+    public interface Display extends WidgetDisplay {
+        public HasClickHandlers getLogoutClick();
+        public void showTopNavigation(boolean show);
+        public void setMain(Widget w);
+        public HasText getUserText();
+        public void setServerStatus(ServerStatus status);
+    }
+    
+    private LoginPresenter loginPresenter;
+    private MainPresenter mainPresenter;
+    private Timer noopTimer = new NoopTimer();
 
-	private DispatchAsync dispatcher;
-	private User user;
-	private ServerStatus serverStatus = ServerStatus.Available;
+    private DispatchAsync dispatcher;
+    private User user;
+    private ServerStatus serverStatus = ServerStatus.Available;
 
-	@Inject
-	public AppPresenter(Display display, DispatchAsync dispatcher,final EventBus bus, LoginPresenter loginPresenter, MainPresenter mainPresenter) {
-		super(display,bus);
-		this.dispatcher = dispatcher;
-		this.loginPresenter = loginPresenter;
-		this.mainPresenter = mainPresenter;		
-	}
+    @Inject
+    public AppPresenter(Display display, DispatchAsync dispatcher,final EventBus bus, LoginPresenter loginPresenter, MainPresenter mainPresenter) {
+        super(display,bus);
+        this.dispatcher = dispatcher;
+        this.loginPresenter = loginPresenter;
+        this.mainPresenter = mainPresenter;        
+    }
 
-	private void showMain(User user) {
-		loginPresenter.unbind();
-		mainPresenter.bind(user);
-		display.showTopNavigation(true);
-		display.setMain(mainPresenter.getDisplay().asWidget());
-	}
-	
-	
-	private void showLogin() {
-		mainPresenter.unbind();
-		loginPresenter.bind();
-		display.showTopNavigation(false);
-		display.setMain(loginPresenter.getDisplay().asWidget());
-	}
+    private void showMain(User user) {
+        loginPresenter.unbind();
+        mainPresenter.bind(user);
+        display.showTopNavigation(true);
+        display.setMain(mainPresenter.getDisplay().asWidget());
+    }
+    
+    
+    private void showLogin() {
+        mainPresenter.unbind();
+        loginPresenter.bind();
+        display.showTopNavigation(false);
+        display.setMain(loginPresenter.getDisplay().asWidget());
+    }
 
-	@Override
-	public Place getPlace() {
-		// TODO Auto-generated method stub
-		return null;
-	}
+    @Override
+    public Place getPlace() {
+        // TODO Auto-generated method stub
+        return null;
+    }
 
-	@Override
-	protected void onBind() {
-		registerHandler(eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
+    @Override
+    protected void onBind() {
+        registerHandler(eventBus.addHandler(LoginEvent.TYPE, new LoginEventHandler() {
 
-			public void onLogin(LoginEvent event) {
-				user = event.getUser();
-				display.getUserText().setText(event.getUser().getName());
-				noopTimer.scheduleRepeating(NOOP_INTERVAL);
-				showMain(user);
-			}
+            public void onLogin(LoginEvent event) {
+                user = event.getUser();
+                display.getUserText().setText(event.getUser().getName());
+                noopTimer.scheduleRepeating(NOOP_INTERVAL);
+                showMain(user);
+            }
 
-		}));
-		
-		registerHandler(eventBus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
+        }));
+        
+        registerHandler(eventBus.addHandler(LogoutEvent.TYPE, new LogoutEventHandler() {
 
-			public void onLogout(LogoutEvent event) {
-				showLogin();
-				noopTimer.cancel();
-			}
-			
-		}));
-		registerHandler(display.getLogoutClick().addClickHandler(new ClickHandler() {
+            public void onLogout(LogoutEvent event) {
+                showLogin();
+                noopTimer.cancel();
+            }
+            
+        }));
+        registerHandler(display.getLogoutClick().addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				doLogout();
-			}
-			
-		}));
-		registerHandler(Window.addWindowClosingHandler(new ClosingHandler() {
+            public void onClick(ClickEvent event) {
+                doLogout();
+            }
+            
+        }));
+        registerHandler(Window.addWindowClosingHandler(new ClosingHandler() {
 
-			public void onWindowClosing(ClosingEvent event) {
-				// TODO: When the application is loaded, it checks if there is already a valid session in the server.
-				// Executing here doLogout makes the application remove the user session when 
-			    // the user closes the window or reloads the application.
-				// It is better let the user decide when to logout instead of do it automatically
-				// doLogout();
-			}
-			
-		}));
-		registerHandler(eventBus.addHandler(SessionExpireEvent.TYPE, new SessionExpireEventHandler() {
+            public void onWindowClosing(ClosingEvent event) {
+                // TODO: When the application is loaded, it checks if there is already a valid session in the server.
+                // Executing here doLogout makes the application remove the user session when 
+                // the user closes the window or reloads the application.
+                // It is better let the user decide when to logout instead of do it automatically
+                // doLogout();
+            }
+            
+        }));
+        registerHandler(eventBus.addHandler(SessionExpireEvent.TYPE, new SessionExpireEventHandler() {
 
-			public void onSessionExpireEvent(SessionExpireEvent event) {
-				doLogout();
-			}
-			
-		}));
-		registerHandler(eventBus.addHandler(ServerStatusEvent.TYPE, new ServerStatusEventHandler() {
-			
-			public void onServerStatusChange(ServerStatusEvent event) {
-				if (event.getStatus() != serverStatus) {
-					GWT.log("Server status has hanged from " + serverStatus + " to" + event.getStatus(), null);
-					serverStatus = event.getStatus();
-					display.setServerStatus(serverStatus);
-				}
-			}
-			
-		}));
+            public void onSessionExpireEvent(SessionExpireEvent event) {
+                doLogout();
+            }
+            
+        }));
+        registerHandler(eventBus.addHandler(ServerStatusEvent.TYPE, new ServerStatusEventHandler() {
+            
+            public void onServerStatusChange(ServerStatusEvent event) {
+                if (event.getStatus() != serverStatus) {
+                    GWT.log("Server status has hanged from " + serverStatus + " to" + event.getStatus(), null);
+                    serverStatus = event.getStatus();
+                    display.setServerStatus(serverStatus);
+                }
+            }
+            
+        }));
 
-		checkSession();
-	}
-	
-	@Override
-	protected void onPlaceRequest(PlaceRequest request) {
-		// TODO Auto-generated method stub
-	}
+        checkSession();
+    }
+    
+    @Override
+    protected void onPlaceRequest(PlaceRequest request) {
+        // TODO Auto-generated method stub
+    }
 
-	@Override
-	protected void onUnbind() {
-		loginPresenter.unbind();
-		mainPresenter.unbind();
-	}
+    @Override
+    protected void onUnbind() {
+        loginPresenter.unbind();
+        mainPresenter.unbind();
+    }
 
-	public void refreshDisplay() {
-		// TODO Auto-generated method stub
-		
-	}
+    public void refreshDisplay() {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void revealDisplay() {
-		// TODO Auto-generated method stub
-		
-	}
+    public void revealDisplay() {
+        // TODO Auto-generated method stub
+        
+    }
 
-	private void doLogout() {
-		if (user != null) {
-			dispatcher.execute(new LogoutUser(), new HupaCallback<LogoutUserResult>(dispatcher, eventBus) {
-				public void callback(LogoutUserResult result) {
-					eventBus.fireEvent(new LogoutEvent(result.getUser()));
-				}
-			});
-		}
-	}
+    private void doLogout() {
+        if (user != null) {
+            dispatcher.execute(new LogoutUser(), new HupaCallback<LogoutUserResult>(dispatcher, eventBus) {
+                public void callback(LogoutUserResult result) {
+                    eventBus.fireEvent(new LogoutEvent(result.getUser()));
+                }
+            });
+        }
+    }
 
-	private void checkSession() {
-		dispatcher.execute(new CheckSession(), new AsyncCallback<CheckSessionResult>() {
-			public void onFailure(Throwable caught) {
-				serverStatus = ServerStatus.Unavailable;
-				display.setServerStatus(serverStatus);
-				showLogin();
-			}
-			public void onSuccess(CheckSessionResult result) {
-				serverStatus = ServerStatus.Available;
-				display.setServerStatus(serverStatus);
-				if (result.isValid()) {
-					eventBus.fireEvent(new LoginEvent(result.getUser()));
-				} else {
-					showLogin();
-				}
-			}
-		});
-	}
-	
-	private class NoopTimer extends Timer {
-		boolean running = false;
-		public void run() {
-			if (!running) {
-				running = true;
-				dispatcher.execute(new Noop(), new HupaCallback<NoopResult>(dispatcher, eventBus) {
-					public void callback(NoopResult result) {
-						running = false;
-						// Noop
-						// TODO: put code here to read new events from server (new messages ...)
-					}
-				});
-			}
-		}
-	};
+    private void checkSession() {
+        dispatcher.execute(new CheckSession(), new AsyncCallback<CheckSessionResult>() {
+            public void onFailure(Throwable caught) {
+                serverStatus = ServerStatus.Unavailable;
+                display.setServerStatus(serverStatus);
+                showLogin();
+            }
+            public void onSuccess(CheckSessionResult result) {
+                serverStatus = ServerStatus.Available;
+                display.setServerStatus(serverStatus);
+                if (result.isValid()) {
+                    eventBus.fireEvent(new LoginEvent(result.getUser()));
+                } else {
+                    showLogin();
+                }
+            }
+        });
+    }
+    
+    private class NoopTimer extends Timer {
+        boolean running = false;
+        public void run() {
+            if (!running) {
+                running = true;
+                dispatcher.execute(new Noop(), new HupaCallback<NoopResult>(dispatcher, eventBus) {
+                    public void callback(NoopResult result) {
+                        running = false;
+                        // Noop
+                        // TODO: put code here to read new events from server (new messages ...)
+                    }
+                });
+            }
+        }
+    };
 
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/MessageSendView.java	(working copy)
@@ -45,248 +45,248 @@
 import com.google.gwt.user.client.ui.Widget;
 
 public class MessageSendView extends Composite implements
-		MessageSendPresenter.Display {
-	private HupaConstants constants = GWT.create(HupaConstants.class);
-	private Grid detailGrid = new Grid(6, 3);
-	private Label from = new Label();
-	private TextBox to = new TextBox();
-	private TextBox cc = new TextBox();
-	private TextBox bcc = new TextBox();
-	private TextBox subject = new TextBox();
-	private BaseUploadStatus uploadStatus = new BaseUploadStatus();
-	private MultiUploader uploader = new MultiUploader(uploadStatus);
-	private TextArea text = new TextArea();
-	private MyButton sendButton = new MyButton(constants.sendButton());
-	private Hyperlink backButton = new Hyperlink(constants.backButton(),"");
+        MessageSendPresenter.Display {
+    private HupaConstants constants = GWT.create(HupaConstants.class);
+    private Grid detailGrid = new Grid(6, 3);
+    private Label from = new Label();
+    private TextBox to = new TextBox();
+    private TextBox cc = new TextBox();
+    private TextBox bcc = new TextBox();
+    private TextBox subject = new TextBox();
+    private BaseUploadStatus uploadStatus = new BaseUploadStatus();
+    private MultiUploader uploader = new MultiUploader(uploadStatus);
+    private TextArea text = new TextArea();
+    private MyButton sendButton = new MyButton(constants.sendButton());
+    private Hyperlink backButton = new Hyperlink(constants.backButton(),"");
 
 
-	public MessageSendView() {
-		final VerticalPanel mPanel = new VerticalPanel();
-		//mPanel.setWidth("100%");
-		mPanel.setWidth(Window.getClientWidth() -200 +"px");
-		
-		Window.addResizeHandler(new ResizeHandler() {
+    public MessageSendView() {
+        final VerticalPanel mPanel = new VerticalPanel();
+        //mPanel.setWidth("100%");
+        mPanel.setWidth(Window.getClientWidth() -200 +"px");
+        
+        Window.addResizeHandler(new ResizeHandler() {
 
-			public void onResize(ResizeEvent event) {
-				mPanel.setWidth(Window.getClientWidth() -200+"px");
-			}
-			
-		});
-		mPanel.setSpacing(5);
+            public void onResize(ResizeEvent event) {
+                mPanel.setWidth(Window.getClientWidth() -200+"px");
+            }
+            
+        });
+        mPanel.setSpacing(5);
 
-		detailGrid.setWidth("100%");
-		detailGrid.setStyleName("hupa-IMAPMessageWidget-Header");
-		detailGrid.setText(0, 0, constants.headerFrom() + ":");
-		detailGrid.setText(1, 0, constants.headerTo() + ":");
-		detailGrid.setText(2, 0, constants.headerCc() + ":");
-		detailGrid.setText(3, 0, constants.headerBcc() + ":");
-		detailGrid.setText(4, 0, constants.headerSubject() + ":");
-		detailGrid.setText(5, 0, constants.attachments() + ":");
-		detailGrid.setWidget(0, 1, from);
-		detailGrid.setWidget(1, 1, to);
-		detailGrid.setWidget(2, 1, cc);
-		detailGrid.setWidget(3, 1, bcc);
-		detailGrid.setWidget(4, 1, subject);
-		detailGrid.setWidget(5, 1, uploader);
-		detailGrid.getCellFormatter().setHorizontalAlignment(0, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(1, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(2, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(3, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(4, 0, HorizontalPanel.ALIGN_RIGHT);
-		detailGrid.getCellFormatter().setHorizontalAlignment(5, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.setWidth("100%");
+        detailGrid.setStyleName("hupa-IMAPMessageWidget-Header");
+        detailGrid.setText(0, 0, constants.headerFrom() + ":");
+        detailGrid.setText(1, 0, constants.headerTo() + ":");
+        detailGrid.setText(2, 0, constants.headerCc() + ":");
+        detailGrid.setText(3, 0, constants.headerBcc() + ":");
+        detailGrid.setText(4, 0, constants.headerSubject() + ":");
+        detailGrid.setText(5, 0, constants.attachments() + ":");
+        detailGrid.setWidget(0, 1, from);
+        detailGrid.setWidget(1, 1, to);
+        detailGrid.setWidget(2, 1, cc);
+        detailGrid.setWidget(3, 1, bcc);
+        detailGrid.setWidget(4, 1, subject);
+        detailGrid.setWidget(5, 1, uploader);
+        detailGrid.getCellFormatter().setHorizontalAlignment(0, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(1, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(2, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(3, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(4, 0, HorizontalPanel.ALIGN_RIGHT);
+        detailGrid.getCellFormatter().setHorizontalAlignment(5, 0, HorizontalPanel.ALIGN_RIGHT);
 
-		detailGrid.getCellFormatter().setStyleName(0, 0,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(0, 1,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(1, 0,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(1, 1,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(2, 0,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(2, 1,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(3, 0,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(3, 1,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(4, 0,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(4, 1,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(5, 0,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setStyleName(5, 1,
-				"hupa-IMAPMessageWidget-Header-Content");
-		detailGrid.getCellFormatter().setVerticalAlignment(0, 0,
-				VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(1, 0,
-				VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(2, 0,
-				VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(3, 0,
-				VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(4, 0,
-				VerticalPanel.ALIGN_MIDDLE);
-		detailGrid.getCellFormatter().setVerticalAlignment(5, 0,
-				VerticalPanel.ALIGN_TOP);
-		detailGrid.getCellFormatter().setWidth(0, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(1, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(2, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(3, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(4, 0, "100px");
-		detailGrid.getCellFormatter().setWidth(5, 0, "100px");
+        detailGrid.getCellFormatter().setStyleName(0, 0,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(0, 1,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(1, 0,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(1, 1,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(2, 0,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(2, 1,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(3, 0,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(3, 1,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(4, 0,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(4, 1,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(5, 0,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setStyleName(5, 1,
+                "hupa-IMAPMessageWidget-Header-Content");
+        detailGrid.getCellFormatter().setVerticalAlignment(0, 0,
+                VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(1, 0,
+                VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(2, 0,
+                VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(3, 0,
+                VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(4, 0,
+                VerticalPanel.ALIGN_MIDDLE);
+        detailGrid.getCellFormatter().setVerticalAlignment(5, 0,
+                VerticalPanel.ALIGN_TOP);
+        detailGrid.getCellFormatter().setWidth(0, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(1, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(2, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(3, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(4, 0, "100px");
+        detailGrid.getCellFormatter().setWidth(5, 0, "100px");
 
-		from.setWidth("100%");
-		cc.setWidth("100%");
-		bcc.setWidth("100%");
-		to.setWidth("100%");
+        from.setWidth("100%");
+        cc.setWidth("100%");
+        bcc.setWidth("100%");
+        to.setWidth("100%");
 
-		subject.setWidth("100%");
+        subject.setWidth("100%");
 
-		text.setWidth("100%");
-		text.setHeight("400px");
-		text.setVisibleLines(50);
+        text.setWidth("100%");
+        text.setHeight("400px");
+        text.setVisibleLines(50);
 
-		uploadStatus.setCancelConfiguration(IUploadStatus.GMAIL_CANCEL_CFG);
-		uploader.setServletPath(GWT.getModuleBaseURL() + "uploadAttachmentServlet");
-		uploader.avoidRepeatFiles(true);
-		uploader.setI18Constants(constants);
-		
-		mPanel.add(detailGrid);
+        uploadStatus.setCancelConfiguration(IUploadStatus.GMAIL_CANCEL_CFG);
+        uploader.setServletPath(GWT.getModuleBaseURL() + "uploadAttachmentServlet");
+        uploader.avoidRepeatFiles(true);
+        uploader.setI18Constants(constants);
+        
+        mPanel.add(detailGrid);
 
-		HorizontalPanel buttonBar = new HorizontalPanel();
-		buttonBar.addStyleName("hupa-IMAPMessageWidget-ButtonBar");
-		buttonBar.setWidth("100%");
-		buttonBar.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
-		buttonBar.add(sendButton);
-		buttonBar.add(backButton);
-		buttonBar.setCellHorizontalAlignment(backButton, HorizontalPanel.ALIGN_RIGHT);
+        HorizontalPanel buttonBar = new HorizontalPanel();
+        buttonBar.addStyleName("hupa-IMAPMessageWidget-ButtonBar");
+        buttonBar.setWidth("100%");
+        buttonBar.setHorizontalAlignment(HorizontalPanel.ALIGN_LEFT);
+        buttonBar.add(sendButton);
+        buttonBar.add(backButton);
+        buttonBar.setCellHorizontalAlignment(backButton, HorizontalPanel.ALIGN_RIGHT);
 
-		mPanel.add(buttonBar);
+        mPanel.add(buttonBar);
 
-		mPanel.add(text);
-		initWidget(mPanel);
+        mPanel.add(text);
+        initWidget(mPanel);
 
-	}
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.widget.WidgetDisplay#asWidget()
-	 */
-	public Widget asWidget() {
-		return this;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.widget.WidgetDisplay#asWidget()
+     */
+    public Widget asWidget() {
+        return this;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.Display#startProcessing()
-	 */
-	public void startProcessing() {
-		// TODO Auto-generated method stub
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.Display#startProcessing()
+     */
+    public void startProcessing() {
+        // TODO Auto-generated method stub
 
-	}
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.presenter.client.Display#stopProcessing()
-	 */
-	public void stopProcessing() {
-		// TODO Auto-generated method stub
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.presenter.client.Display#stopProcessing()
+     */
+    public void stopProcessing() {
+        // TODO Auto-generated method stub
 
-	}
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getBccText()
-	 */
-	public HasText getBccText() {
-		return bcc;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getBccText()
+     */
+    public HasText getBccText() {
+        return bcc;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getCcText()
-	 */
-	public HasText getCcText() {
-		return cc;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getCcText()
+     */
+    public HasText getCcText() {
+        return cc;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getFromText()
-	 */
-	public HasText getFromText() {
-		return from;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getFromText()
+     */
+    public HasText getFromText() {
+        return from;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getMessageText()
-	 */
-	public HasText getMessageText() {
-		return text;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getMessageText()
+     */
+    public HasText getMessageText() {
+        return text;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getSubjectText()
-	 */
-	public HasText getSubjectText() {
-		return subject;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getSubjectText()
+     */
+    public HasText getSubjectText() {
+        return subject;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getToText()
-	 */
-	public HasText getToText() {
-		return to;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getToText()
+     */
+    public HasText getToText() {
+        return to;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getSendClick()
-	 */
-	public HasClickHandlers getSendClick() {
-		return sendButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getSendClick()
+     */
+    public HasClickHandlers getSendClick() {
+        return sendButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getUploader()
-	 */
-	public IUploader getUploader() {
-		return uploader;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getUploader()
+     */
+    public IUploader getUploader() {
+        return uploader;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#resetUploader()
-	 */
-	public void resetUploader() {
-		uploader.removeFromParent();
-		uploader = new MultiUploader();
-		uploader.setServletPath(GWT.getModuleBaseURL()
-				+ "uploadAttachmentServlet");
-		uploader.avoidRepeatFiles(true);
-		detailGrid.setWidget(5, 1, uploader);		
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#resetUploader()
+     */
+    public void resetUploader() {
+        uploader.removeFromParent();
+        uploader = new MultiUploader();
+        uploader.setServletPath(GWT.getModuleBaseURL()
+                + "uploadAttachmentServlet");
+        uploader.avoidRepeatFiles(true);
+        detailGrid.setWidget(5, 1, uploader);        
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getSendEnable()
-	 */
-	public HasEnable getSendEnable() {
-		return sendButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getSendEnable()
+     */
+    public HasEnable getSendEnable() {
+        return sendButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getBackButtonClick()
-	 */
-	public HasClickHandlers getBackButtonClick() {
-		return backButton;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.mvp.MessageSendPresenter.Display#getBackButtonClick()
+     */
+    public HasClickHandlers getBackButtonClick() {
+        return backButton;
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/AppView.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/AppView.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/AppView.java	(working copy)
@@ -36,133 +36,133 @@
 import com.google.gwt.user.client.ui.Widget;
 
 public class AppView extends Composite implements AppPresenter.Display {
-	private SimplePanel mainPanel = new SimplePanel();
-	private HupaConstants constants = GWT.create(HupaConstants.class);
-	private HorizontalPanel northTop = new HorizontalPanel();
-	private Hyperlink logoutButton = new Hyperlink(constants.logoutButton(),"");
-	private SimplePanel topNavigatorPanel = new SimplePanel();
-	private HTML dummy = new HTML("&nbsp");
-	private Label userName = new Label();
-	private HorizontalPanel loginInfoPanel = new HorizontalPanel();
-	private ServerStatusPanel serverStatusPanel  = new ServerStatusPanel();
-	
-	private class ServerStatusPanel extends PopupPanel {
-		HTML messageLabel = new HTML("");
-		ServerStatusPanel() {
-			add(messageLabel);
-			addStyleName("hupa-server-status");
-			setPopupPosition(400, 1);
-			setAnimationEnabled(true);
-		}
-		// TODO: i18n (take a look to gmail's messages when the server is unacessible)
-		public void setStatus(ServerStatus status) {
-			if (status == ServerStatus.Available) {
-				messageLabel.setHTML("<h2>Server is available now.</h2>");
-				hide();
-			} else {
-				messageLabel.setHTML("<h2>Server unavailable</h2>");
-				show();
-			}
-		}
-	}
+    private SimplePanel mainPanel = new SimplePanel();
+    private HupaConstants constants = GWT.create(HupaConstants.class);
+    private HorizontalPanel northTop = new HorizontalPanel();
+    private Hyperlink logoutButton = new Hyperlink(constants.logoutButton(),"");
+    private SimplePanel topNavigatorPanel = new SimplePanel();
+    private HTML dummy = new HTML("&nbsp");
+    private Label userName = new Label();
+    private HorizontalPanel loginInfoPanel = new HorizontalPanel();
+    private ServerStatusPanel serverStatusPanel  = new ServerStatusPanel();
+    
+    private class ServerStatusPanel extends PopupPanel {
+        HTML messageLabel = new HTML("");
+        ServerStatusPanel() {
+            add(messageLabel);
+            addStyleName("hupa-server-status");
+            setPopupPosition(400, 1);
+            setAnimationEnabled(true);
+        }
+        // TODO: i18n (take a look to gmail's messages when the server is unacessible)
+        public void setStatus(ServerStatus status) {
+            if (status == ServerStatus.Available) {
+                messageLabel.setHTML("<h2>Server is available now.</h2>");
+                hide();
+            } else {
+                messageLabel.setHTML("<h2>Server unavailable</h2>");
+                show();
+            }
+        }
+    }
 
-	public AppView() {
-		VerticalPanel vPanel = new VerticalPanel();
+    public AppView() {
+        VerticalPanel vPanel = new VerticalPanel();
 
-		vPanel.setSpacing(3);
-		vPanel.setWidth("100%");
-		vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
-		vPanel.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
+        vPanel.setSpacing(3);
+        vPanel.setWidth("100%");
+        vPanel.setHorizontalAlignment(VerticalPanel.ALIGN_CENTER);
+        vPanel.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
 
-		topNavigatorPanel.setHeight("20px");
-		vPanel.add(topNavigatorPanel);
+        topNavigatorPanel.setHeight("20px");
+        vPanel.add(topNavigatorPanel);
 
-		loginInfoPanel.setSpacing(5);
-		loginInfoPanel.add(new Label(constants.loginAs() + ":"));
-		loginInfoPanel.add(userName);
-		userName.getElement().getStyle().setProperty("textDecoration",
-				"underline");
-		userName.getElement().getStyle().setProperty("fontWeight", "bold");
+        loginInfoPanel.setSpacing(5);
+        loginInfoPanel.add(new Label(constants.loginAs() + ":"));
+        loginInfoPanel.add(userName);
+        userName.getElement().getStyle().setProperty("textDecoration",
+                "underline");
+        userName.getElement().getStyle().setProperty("fontWeight", "bold");
 
-		//northTop.setSpacing(5);
-		northTop.setStyleName("hupa-MainButtonBar");
-		northTop.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
-		northTop.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
+        //northTop.setSpacing(5);
+        northTop.setStyleName("hupa-MainButtonBar");
+        northTop.setHorizontalAlignment(HorizontalPanel.ALIGN_RIGHT);
+        northTop.setVerticalAlignment(VerticalPanel.ALIGN_MIDDLE);
 
-		northTop.setWidth("100%");
-		northTop.setHeight("100%");
-		northTop.add(loginInfoPanel);
-		northTop.setCellHorizontalAlignment(loginInfoPanel,
-				HorizontalPanel.ALIGN_LEFT);
-		northTop.add(logoutButton);
+        northTop.setWidth("100%");
+        northTop.setHeight("100%");
+        northTop.add(loginInfoPanel);
+        northTop.setCellHorizontalAlignment(loginInfoPanel,
+                HorizontalPanel.ALIGN_LEFT);
+        northTop.add(logoutButton);
 
-		Label header = new Label(constants.productName());
-		header.setHeight("25px");
-		header.setStyleName("hupa-Header");
-		vPanel.add(header);
-		vPanel.setCellHorizontalAlignment(header, VerticalPanel.ALIGN_LEFT);
-		vPanel.setCellVerticalAlignment(header, VerticalPanel.ALIGN_MIDDLE);
+        Label header = new Label(constants.productName());
+        header.setHeight("25px");
+        header.setStyleName("hupa-Header");
+        vPanel.add(header);
+        vPanel.setCellHorizontalAlignment(header, VerticalPanel.ALIGN_LEFT);
+        vPanel.setCellVerticalAlignment(header, VerticalPanel.ALIGN_MIDDLE);
 
-		vPanel.add(mainPanel);
+        vPanel.add(mainPanel);
 
-		dummy.setHeight("100%");
-		showTopNavigation(false);
-		initWidget(vPanel);
-	}
+        dummy.setHeight("100%");
+        showTopNavigation(false);
+        initWidget(vPanel);
+    }
 
-	public void setMain(Widget w) {
-		mainPanel.setWidget(w);
-	}
+    public void setMain(Widget w) {
+        mainPanel.setWidget(w);
+    }
 
-	public Widget asWidget() {
-		return this;
-	}
+    public Widget asWidget() {
+        return this;
+    }
 
-	public void startProcessing() {
-		// TODO Auto-generated method stub
+    public void startProcessing() {
+        // TODO Auto-generated method stub
 
-	}
+    }
 
-	public void stopProcessing() {
-		// TODO Auto-generated method stub
+    public void stopProcessing() {
+        // TODO Auto-generated method stub
 
-	}
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.apache.hupa.client.mvp.AppPresenter.Display#getLogoutClick()
-	 */
-	public HasClickHandlers getLogoutClick() {
-		return logoutButton;
-	}
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.hupa.client.mvp.AppPresenter.Display#getLogoutClick()
+     */
+    public HasClickHandlers getLogoutClick() {
+        return logoutButton;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.apache.hupa.client.mvp.AppPresenter.Display#showTopNavigation(boolean
-	 * )
-	 */
-	public void showTopNavigation(boolean show) {
-		if (show) {
-			topNavigatorPanel.setWidget(northTop);
-		} else {
-			topNavigatorPanel.setWidget(dummy);
-		}
-	}
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.apache.hupa.client.mvp.AppPresenter.Display#showTopNavigation(boolean
+     * )
+     */
+    public void showTopNavigation(boolean show) {
+        if (show) {
+            topNavigatorPanel.setWidget(northTop);
+        } else {
+            topNavigatorPanel.setWidget(dummy);
+        }
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see org.apache.hupa.client.mvp.AppPresenter.Display#getUserText()
-	 */
-	public HasText getUserText() {
-		return userName;
-	}
+    /*
+     * (non-Javadoc)
+     * 
+     * @see org.apache.hupa.client.mvp.AppPresenter.Display#getUserText()
+     */
+    public HasText getUserText() {
+        return userName;
+    }
 
-	public void setServerStatus(ServerStatus status) {
-		serverStatusPanel.setStatus(status);
-	}
+    public void setServerStatus(ServerStatus status) {
+        serverStatusPanel.setStatus(status);
+    }
 
 }
Index: client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/mvp/MainPresenter.java	(working copy)
@@ -153,13 +153,13 @@
 
     protected void loadTreeItems() {
         cachingDispatcher.execute(new FetchFolders(), new HupaCallback<FetchFoldersResult>(cachingDispatcher, eventBus, display) {
-			public void callback(FetchFoldersResult result) {
+            public void callback(FetchFoldersResult result) {
                 display.bindTreeItems(createTreeNodes(result.getFolders()));
                 // disable
                 display.getDeleteEnable().setEnabled(false);
                 display.getRenameEnable().setEnabled(false);
-			}
-		});
+            }
+        });
     }
 
     /**
@@ -183,13 +183,13 @@
                         final String newName = (String) event.getNewValue();
                         if (iFolder.getFullName().equalsIgnoreCase(newName) == false) {
                             cachingDispatcher.execute(new RenameFolder(iFolder, newName), new HupaCallback<GenericResult>(cachingDispatcher, eventBus) {
-                				public void callback(GenericResult result) {
+                                public void callback(GenericResult result) {
                                     folder.setFullName(newName);
-                				}
-                				public void callbackError(Throwable caught) {
+                                }
+                                public void callbackError(Throwable caught) {
                                     record.cancelEdit();
-                				}
-                			}); 
+                                }
+                            }); 
                         }
                     }
                 }
@@ -327,13 +327,13 @@
                     decreaseUnseen = false;
                 }
                 cachingDispatcher.executeWithCache(new GetMessageDetails(event.getFolder(), message.getUid()), new HupaCallback<GetMessageDetailsResult>(cachingDispatcher, eventBus, display) {
-    				public void callback(GetMessageDetailsResult result) {
+                    public void callback(GetMessageDetailsResult result) {
                         if (decreaseUnseen) {
                             eventBus.fireEvent(new DecreaseUnseenEvent(user, folder));
                         }
                         showMessage(user, folder, message, result.getMessageDetails());
-    				}
-    			});
+                    }
+                });
             }
 
         }));
Index: client/src/main/java/org/apache/hupa/client/dnd/PagingScrollTableRowDragController.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/dnd/PagingScrollTableRowDragController.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/dnd/PagingScrollTableRowDragController.java	(working copy)
@@ -39,111 +39,111 @@
 public class PagingScrollTableRowDragController extends PickupDragController {
 
 
-	private HupaMessages messages = GWT.create(HupaMessages.class);
-	private HupaImageBundle bundle =GWT.create(HupaImageBundle.class);
-	private FixedWidthGrid draggableTable;
-	private PagingScrollTable parentTable;
-	private int dragRow;
-	private RowDragProxy proxyWidget;
+    private HupaMessages messages = GWT.create(HupaMessages.class);
+    private HupaImageBundle bundle =GWT.create(HupaImageBundle.class);
+    private FixedWidthGrid draggableTable;
+    private PagingScrollTable parentTable;
+    private int dragRow;
+    private RowDragProxy proxyWidget;
 
-	public PagingScrollTableRowDragController() {
-		this(RootPanel.get());
-		
-	}
-	public PagingScrollTableRowDragController(AbsolutePanel boundaryPanel) {
-		super(boundaryPanel, false);
-		setBehaviorDragProxy(true);
-		setBehaviorMultipleSelection(false);
-	}
+    public PagingScrollTableRowDragController() {
+        this(RootPanel.get());
+        
+    }
+    public PagingScrollTableRowDragController(AbsolutePanel boundaryPanel) {
+        super(boundaryPanel, false);
+        setBehaviorDragProxy(true);
+        setBehaviorMultipleSelection(false);
+    }
 
-	@Override
-	public void dragEnd() {
-		super.dragEnd();
+    @Override
+    public void dragEnd() {
+        super.dragEnd();
 
-		// cleanup
-		draggableTable = null;
-		parentTable = null;
-		dragRow = -1;
-		proxyWidget = null;
-	}
+        // cleanup
+        draggableTable = null;
+        parentTable = null;
+        dragRow = -1;
+        proxyWidget = null;
+    }
 
-	@Override
-	public void setBehaviorDragProxy(boolean dragProxyEnabled) {
-		if (!dragProxyEnabled) {
-			// TODO implement drag proxy behavior
-			throw new IllegalArgumentException();
-		}
-		super.setBehaviorDragProxy(dragProxyEnabled);
-	}
+    @Override
+    public void setBehaviorDragProxy(boolean dragProxyEnabled) {
+        if (!dragProxyEnabled) {
+            // TODO implement drag proxy behavior
+            throw new IllegalArgumentException();
+        }
+        super.setBehaviorDragProxy(dragProxyEnabled);
+    }
 
-	@Override
-	protected BoundaryDropController newBoundaryDropController(
-			AbsolutePanel boundaryPanel, boolean allowDroppingOnBoundaryPanel) {
-		if (allowDroppingOnBoundaryPanel) {
-			throw new IllegalArgumentException();
-		}
-		return super.newBoundaryDropController(boundaryPanel,
-				allowDroppingOnBoundaryPanel);
-	}
+    @Override
+    protected BoundaryDropController newBoundaryDropController(
+            AbsolutePanel boundaryPanel, boolean allowDroppingOnBoundaryPanel) {
+        if (allowDroppingOnBoundaryPanel) {
+            throw new IllegalArgumentException();
+        }
+        return super.newBoundaryDropController(boundaryPanel,
+                allowDroppingOnBoundaryPanel);
+    }
 
-	
-	@SuppressWarnings("unchecked")
-	protected Widget newDragProxy(DragContext context) {
-		
-		draggableTable = (FixedWidthGrid) context.draggable.getParent();
-		parentTable = (PagingScrollTable)draggableTable.getParent();
-		
-	    dragRow = getWidgetRow(context.draggable);
-	    
-	    proxyWidget = new RowDragProxy();
-		return proxyWidget;
-	}
+    
+    @SuppressWarnings("unchecked")
+    protected Widget newDragProxy(DragContext context) {
+        
+        draggableTable = (FixedWidthGrid) context.draggable.getParent();
+        parentTable = (PagingScrollTable)draggableTable.getParent();
+        
+        dragRow = getWidgetRow(context.draggable);
+        
+        proxyWidget = new RowDragProxy();
+        return proxyWidget;
+    }
 
-	private int getWidgetRow(Widget widget) {
-		FixedWidthGrid grid = draggableTable;
-	    for (int row = 0; row < grid.getRowCount(); row++) {
-	        for (int col = 0; col < grid.getCellCount(row); col++) {
-	            Widget w = grid.getWidget(row, col);
-	            if (w == widget) {
-	                return row;
-	            }
-	        }
-		}
-	    throw new RuntimeException("Unable to determine widget row");
-	}
-	
+    private int getWidgetRow(Widget widget) {
+        FixedWidthGrid grid = draggableTable;
+        for (int row = 0; row < grid.getRowCount(); row++) {
+            for (int col = 0; col < grid.getCellCount(row); col++) {
+                Widget w = grid.getWidget(row, col);
+                if (w == widget) {
+                    return row;
+                }
+            }
+        }
+        throw new RuntimeException("Unable to determine widget row");
+    }
+    
 
-	
-	public RowDragProxy getCurrentProxy() {
-		return proxyWidget;
-	}
-	
-	public Object getDragValue() {
-		return parentTable.getRowValue(dragRow);
-	}
+    
+    public RowDragProxy getCurrentProxy() {
+        return proxyWidget;
+    }
+    
+    public Object getDragValue() {
+        return parentTable.getRowValue(dragRow);
+    }
 
-	public class RowDragProxy extends Composite {
-		private String styleName = "hupa-droptarget-invalid";
-		private HorizontalPanel proxy = new HorizontalPanel();
-		public RowDragProxy() {
-			RoundedPanel proxyPanel = new RoundedPanel(RoundedPanel.ALL,1);
-			setIsValid(false);
-			proxy.add(bundle.moveMailIcon().createImage());
-			proxy.add(new Label(" " + messages.moveMessage()));
-		    proxyPanel.add(proxy);
-		    proxyPanel.setBorder();
-		    proxyPanel.setWidth("150px");		
-		    initWidget(proxyPanel);
-		}
-		
-		
-		public void setIsValid(boolean valid) {
-			if (valid) {
-				proxy.removeStyleName(styleName);
-			} else {
-				proxy.addStyleName(styleName);
-			}
-		}
-	}
+    public class RowDragProxy extends Composite {
+        private String styleName = "hupa-droptarget-invalid";
+        private HorizontalPanel proxy = new HorizontalPanel();
+        public RowDragProxy() {
+            RoundedPanel proxyPanel = new RoundedPanel(RoundedPanel.ALL,1);
+            setIsValid(false);
+            proxy.add(bundle.moveMailIcon().createImage());
+            proxy.add(new Label(" " + messages.moveMessage()));
+            proxyPanel.add(proxy);
+            proxyPanel.setBorder();
+            proxyPanel.setWidth("150px");        
+            initWidget(proxyPanel);
+        }
+        
+        
+        public void setIsValid(boolean valid) {
+            if (valid) {
+                proxy.removeStyleName(styleName);
+            } else {
+                proxy.addStyleName(styleName);
+            }
+        }
+    }
 
 }
\ No newline at end of file
Index: client/src/main/java/org/apache/hupa/client/HupaMessages.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/HupaMessages.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/HupaMessages.java	(working copy)
@@ -23,16 +23,16 @@
 
 public interface HupaMessages extends Messages{
 
-	@DefaultMessage("Are you sure you want to delete the selected messages?")
-	public String confirmDeleteMessages();
-	
-	@DefaultMessage("Are you sure you want to delete all messages in the selected folder?")
-	public String confirmDeleteAllMessages();
-	
-	@DefaultMessage("Moving message")
-	public String moveMessage();
-	
-	@DefaultMessage("Are you sure you want to delete the selected folder ?")
-	public String confirmDeleteFolder();
-	
+    @DefaultMessage("Are you sure you want to delete the selected messages?")
+    public String confirmDeleteMessages();
+    
+    @DefaultMessage("Are you sure you want to delete all messages in the selected folder?")
+    public String confirmDeleteAllMessages();
+    
+    @DefaultMessage("Moving message")
+    public String moveMessage();
+    
+    @DefaultMessage("Are you sure you want to delete the selected folder ?")
+    public String confirmDeleteFolder();
+    
 }
Index: client/src/main/java/org/apache/hupa/client/widgets/MyButton.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/widgets/MyButton.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/widgets/MyButton.java	(working copy)
@@ -24,11 +24,11 @@
 
 public class MyButton extends Button implements HasEnable{
 
-	public MyButton(String sendButton) {
-		super(sendButton);
-	}
+    public MyButton(String sendButton) {
+        super(sendButton);
+    }
 
-	public MyButton() {
-		super();
-	}
+    public MyButton() {
+        super();
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/widgets/PagingOptions.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/widgets/PagingOptions.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/widgets/PagingOptions.java	(working copy)
@@ -41,185 +41,185 @@
 import com.google.gwt.user.client.ui.SimplePanel;
 
 public class PagingOptions extends Composite {
-	private HupaConstants constants = GWT.create(HupaConstants.class);
-	
-	private HorizontalPanel pagingPanel = new HorizontalPanel();
-	private EnableHyperlink firstLink = new EnableHyperlink("<< " + constants.pageFirst(),"");
-	private EnableHyperlink prevLink = new EnableHyperlink("< " + constants.pagePrev(),"");
-	private EnableHyperlink lastLink = new EnableHyperlink(constants.pageLast() + " >>","");
-	private EnableHyperlink nextLink = new EnableHyperlink(constants.pageNext() + " >","");
-	private Label text = new Label();
-	private int currentPage = 1;
-	private Loading loading = new Loading(true);
-	private SimplePanel panel = new SimplePanel();
-	
-	public PagingOptions(final PagingScrollTable<?> table) {
-		pagingPanel.setSpacing(3);
+    private HupaConstants constants = GWT.create(HupaConstants.class);
+    
+    private HorizontalPanel pagingPanel = new HorizontalPanel();
+    private EnableHyperlink firstLink = new EnableHyperlink("<< " + constants.pageFirst(),"");
+    private EnableHyperlink prevLink = new EnableHyperlink("< " + constants.pagePrev(),"");
+    private EnableHyperlink lastLink = new EnableHyperlink(constants.pageLast() + " >>","");
+    private EnableHyperlink nextLink = new EnableHyperlink(constants.pageNext() + " >","");
+    private Label text = new Label();
+    private int currentPage = 1;
+    private Loading loading = new Loading(true);
+    private SimplePanel panel = new SimplePanel();
+    
+    public PagingOptions(final PagingScrollTable<?> table) {
+        pagingPanel.setSpacing(3);
 
-		pagingPanel.add(panel);
-		pagingPanel.add(firstLink);
-		pagingPanel.add(prevLink);
-		pagingPanel.add(nextLink);
-		pagingPanel.add(lastLink);
-		loading.hide();
-		panel.setWidget(text);
-		panel.setWidth("100px");
-		pagingPanel.setCellHorizontalAlignment(panel, HorizontalPanel.ALIGN_CENTER);
-		firstLink.setEnabled(false);
-		prevLink.setEnabled(false);
-		lastLink.setEnabled(false);
-		nextLink.setEnabled(false);
-		
-		table.addPageCountChangeHandler(new PageCountChangeHandler() {
+        pagingPanel.add(panel);
+        pagingPanel.add(firstLink);
+        pagingPanel.add(prevLink);
+        pagingPanel.add(nextLink);
+        pagingPanel.add(lastLink);
+        loading.hide();
+        panel.setWidget(text);
+        panel.setWidth("100px");
+        pagingPanel.setCellHorizontalAlignment(panel, HorizontalPanel.ALIGN_CENTER);
+        firstLink.setEnabled(false);
+        prevLink.setEnabled(false);
+        lastLink.setEnabled(false);
+        nextLink.setEnabled(false);
+        
+        table.addPageCountChangeHandler(new PageCountChangeHandler() {
 
-			public void onPageCountChange(PageCountChangeEvent event) {
-				int startCount =  currentPage * table.getPageSize();
-				
-				if (currentPage == 0) {
-					startCount = 0;
-				}
-				
-				int endCount  = startCount + table.getPageSize();
-				
-				int rows = table.getTableModel().getRowCount();
-				updateControl(startCount, endCount, rows);
-			}
-			
-		});
-		
-		
-		table.addPageChangeHandler(new PageChangeHandler() {
+            public void onPageCountChange(PageCountChangeEvent event) {
+                int startCount =  currentPage * table.getPageSize();
+                
+                if (currentPage == 0) {
+                    startCount = 0;
+                }
+                
+                int endCount  = startCount + table.getPageSize();
+                
+                int rows = table.getTableModel().getRowCount();
+                updateControl(startCount, endCount, rows);
+            }
+            
+        });
+        
+        
+        table.addPageChangeHandler(new PageChangeHandler() {
 
-			public void onPageChange(PageChangeEvent event) {
-				loading(true);
-			
-				currentPage = event.getNewPage();
-				int startCount =  currentPage * table.getPageSize();
-				
-				if (currentPage == 0) {
-					startCount = 0;
-				}
-				
-				int endCount  = startCount + table.getPageSize();
-				int rows = table.getTableModel().getRowCount();
-			
-				
-				updateControl(startCount, endCount, rows);
-			}
-		});
-		
-		table.addPageLoadHandler(new PageLoadHandler() {
+            public void onPageChange(PageChangeEvent event) {
+                loading(true);
+            
+                currentPage = event.getNewPage();
+                int startCount =  currentPage * table.getPageSize();
+                
+                if (currentPage == 0) {
+                    startCount = 0;
+                }
+                
+                int endCount  = startCount + table.getPageSize();
+                int rows = table.getTableModel().getRowCount();
+            
+                
+                updateControl(startCount, endCount, rows);
+            }
+        });
+        
+        table.addPageLoadHandler(new PageLoadHandler() {
 
-			public void onPageLoad(PageLoadEvent event) {
-				loading(false);
-			}
-			
-		});
-		
-		table.addPagingFailureHandler(new PagingFailureHandler() {
+            public void onPageLoad(PageLoadEvent event) {
+                loading(false);
+            }
+            
+        });
+        
+        table.addPagingFailureHandler(new PagingFailureHandler() {
 
-			public void onPagingFailure(PagingFailureEvent event) {
-				loading(false);
-			}
-			
-		});
-		
-		firstLink.addClickHandler(new ClickHandler() {
+            public void onPagingFailure(PagingFailureEvent event) {
+                loading(false);
+            }
+            
+        });
+        
+        firstLink.addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				table.gotoFirstPage();
-			}
-			
-		});
-		
-		prevLink.addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                table.gotoFirstPage();
+            }
+            
+        });
+        
+        prevLink.addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				table.gotoPreviousPage();
-			}
-			
-		});
-		
-		nextLink.addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                table.gotoPreviousPage();
+            }
+            
+        });
+        
+        nextLink.addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				table.gotoNextPage();
-			}
-			
-		});
-		
-		lastLink.addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                table.gotoNextPage();
+            }
+            
+        });
+        
+        lastLink.addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				table.gotoLastPage();
-			}
-			
-		});
-		initWidget(pagingPanel);
-	}
-	
-	private void loading(boolean isLoading) {
-		if (isLoading) {
-			loading.show();
-			panel.setWidget(loading);
-		} else {
-			loading.hide();
-			panel.setWidget(text);
-		}
-	
-	}
-	private void updateControl(int startCount, int endCount, int rows) {
-		if (rows == TableModel.UNKNOWN_ROW_COUNT) {
-			startCount = 0;
-			endCount = 0;
-			rows = 0;
-		} 
-		
-		if (rows < endCount) {
-			endCount = rows;
-		}
-		
-		if (endCount == 0) {
-			startCount = 0;
-		}
-		
-		if (startCount <= 0) {
-			firstLink.setEnabled(false);
-			prevLink.setEnabled(false);
-		} else {
-			firstLink.setEnabled(true);
-			prevLink.setEnabled(true);
-		}
-		
-		if (rows > endCount) {
-			lastLink.setEnabled(true);
-			nextLink.setEnabled(true);
-		} else {
-			lastLink.setEnabled(false);
-			nextLink.setEnabled(false);
-		}
-		text.setText(startCount + " - " + endCount + " of " + rows);
+            public void onClick(ClickEvent event) {
+                table.gotoLastPage();
+            }
+            
+        });
+        initWidget(pagingPanel);
+    }
+    
+    private void loading(boolean isLoading) {
+        if (isLoading) {
+            loading.show();
+            panel.setWidget(loading);
+        } else {
+            loading.hide();
+            panel.setWidget(text);
+        }
+    
+    }
+    private void updateControl(int startCount, int endCount, int rows) {
+        if (rows == TableModel.UNKNOWN_ROW_COUNT) {
+            startCount = 0;
+            endCount = 0;
+            rows = 0;
+        } 
+        
+        if (rows < endCount) {
+            endCount = rows;
+        }
+        
+        if (endCount == 0) {
+            startCount = 0;
+        }
+        
+        if (startCount <= 0) {
+            firstLink.setEnabled(false);
+            prevLink.setEnabled(false);
+        } else {
+            firstLink.setEnabled(true);
+            prevLink.setEnabled(true);
+        }
+        
+        if (rows > endCount) {
+            lastLink.setEnabled(true);
+            nextLink.setEnabled(true);
+        } else {
+            lastLink.setEnabled(false);
+            nextLink.setEnabled(false);
+        }
+        text.setText(startCount + " - " + endCount + " of " + rows);
 
-	}
-	public void reset() {
-		currentPage = 0;
-		text.setText("0 - 0 of 0");
-	}
-	
-	public EnableHyperlink getFirstLink() {
-		return firstLink;
-	}
-	
-	public EnableHyperlink getPrevLink() {
-		return prevLink;
-	}
-	
-	public EnableHyperlink getNextLink() {
-		return nextLink;
-	}
-	
-	public EnableHyperlink getLastLink() {
-		return lastLink;
-	}
+    }
+    public void reset() {
+        currentPage = 0;
+        text.setText("0 - 0 of 0");
+    }
+    
+    public EnableHyperlink getFirstLink() {
+        return firstLink;
+    }
+    
+    public EnableHyperlink getPrevLink() {
+        return prevLink;
+    }
+    
+    public EnableHyperlink getNextLink() {
+        return nextLink;
+    }
+    
+    public EnableHyperlink getLastLink() {
+        return lastLink;
+    }
 
 }
Index: client/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/widgets/IMAPTreeItem.java	(working copy)
@@ -23,136 +23,136 @@
 import org.apache.hupa.widgets.event.EditEvent;
 import org.apache.hupa.widgets.ui.EditableTreeItem;
 
-public class IMAPTreeItem extends EditableTreeItem {	
-	protected String oldFullName;
-	protected String oldName;
+public class IMAPTreeItem extends EditableTreeItem {    
+    protected String oldFullName;
+    protected String oldName;
 
-	public IMAPTreeItem(IMAPFolder folder) {
-		setUserObject(folder);
-		setFolderText(folder);	
-	}
+    public IMAPTreeItem(IMAPFolder folder) {
+        setUserObject(folder);
+        setFolderText(folder);    
+    }
 
-	@Override
-	public void setSelected(boolean selected) {
-		super.setSelected(selected);
-		if (isSelected()) {
-			getWidget().addStyleName("hupa-IMAPFolder-selected");
-		} else {
-			getWidget().removeStyleName("hupa-IMAPFolder-selected");
-		}
-	}
-	
-	/**
-	 * Decrease the unseen messagecount of this folder
-	 */
-	public void decreaseUnseenMessageCount() {
-		descreaseUnseenMessageCount(1);
-	}
-	
-	public void setUnseenMessageCount(int cound) {
-		IMAPFolder folder = (IMAPFolder) getUserObject();
-		int count = folder.getUnseeMessageCount();
-		folder.setUnseenMessageCount(count);
-		setFolderText(folder);
-		
-	}
-	
-	
-	/**
-	 * Decrease the unseen messagecount of this folder
-	 * 
-	 * @param decreaseCount
-	 */
-	public void descreaseUnseenMessageCount(int decreaseCount) {
-		IMAPFolder folder = (IMAPFolder) getUserObject();
-		int count = folder.getUnseeMessageCount();
-		if (count > 0) { 
-			count = count - decreaseCount;
-			if (count < 0) {
-				count = 0;
-			}
-			folder.setUnseenMessageCount(count);
-			setFolderText(folder);
-		} 
-	}
-	/**
-	 * Increase the unseen messagecount of this folder
-	 * 
-	 * @param increaseCount
-	 */
-	public void increaseUnseenMessageCount() {
-		increaseUnseenMessageCount(1);
-	}
-	
-	/**
-	 * Increase the unseen messagecount of this folder
-	 * 
-	 */
-	public void increaseUnseenMessageCount( int increaseCount) {
-		IMAPFolder folder = (IMAPFolder) getUserObject();
-		int count = folder.getUnseeMessageCount(); 
-		count = count+ increaseCount;
-		folder.setUnseenMessageCount(count);
-		setFolderText(folder);
-	}
-	
-	private void setFolderText(IMAPFolder folder) {
-		setText(getFolderName(folder));
-	}
-	
-	/**
-	 * Return the folder name to display in the TreeItem for the given IMAPFolder
-	 * 
-	 * @param folder
-	 * @return name
-	 */
-	private String getFolderName(IMAPFolder folder) {
-		return folder.getName() + " ("+folder.getUnseeMessageCount()+")";
-	}
-	
-	@Override
-	public void setUserObject(Object obj) {
-		if ((obj instanceof IMAPFolder) == false) {
-			throw new IllegalArgumentException("UserObject needs to be an instance of IMAPFolder");
-		}		
-		setFolderText((IMAPFolder)obj);
+    @Override
+    public void setSelected(boolean selected) {
+        super.setSelected(selected);
+        if (isSelected()) {
+            getWidget().addStyleName("hupa-IMAPFolder-selected");
+        } else {
+            getWidget().removeStyleName("hupa-IMAPFolder-selected");
+        }
+    }
+    
+    /**
+     * Decrease the unseen messagecount of this folder
+     */
+    public void decreaseUnseenMessageCount() {
+        descreaseUnseenMessageCount(1);
+    }
+    
+    public void setUnseenMessageCount(int cound) {
+        IMAPFolder folder = (IMAPFolder) getUserObject();
+        int count = folder.getUnseeMessageCount();
+        folder.setUnseenMessageCount(count);
+        setFolderText(folder);
+        
+    }
+    
+    
+    /**
+     * Decrease the unseen messagecount of this folder
+     * 
+     * @param decreaseCount
+     */
+    public void descreaseUnseenMessageCount(int decreaseCount) {
+        IMAPFolder folder = (IMAPFolder) getUserObject();
+        int count = folder.getUnseeMessageCount();
+        if (count > 0) { 
+            count = count - decreaseCount;
+            if (count < 0) {
+                count = 0;
+            }
+            folder.setUnseenMessageCount(count);
+            setFolderText(folder);
+        } 
+    }
+    /**
+     * Increase the unseen messagecount of this folder
+     * 
+     * @param increaseCount
+     */
+    public void increaseUnseenMessageCount() {
+        increaseUnseenMessageCount(1);
+    }
+    
+    /**
+     * Increase the unseen messagecount of this folder
+     * 
+     */
+    public void increaseUnseenMessageCount( int increaseCount) {
+        IMAPFolder folder = (IMAPFolder) getUserObject();
+        int count = folder.getUnseeMessageCount(); 
+        count = count+ increaseCount;
+        folder.setUnseenMessageCount(count);
+        setFolderText(folder);
+    }
+    
+    private void setFolderText(IMAPFolder folder) {
+        setText(getFolderName(folder));
+    }
+    
+    /**
+     * Return the folder name to display in the TreeItem for the given IMAPFolder
+     * 
+     * @param folder
+     * @return name
+     */
+    private String getFolderName(IMAPFolder folder) {
+        return folder.getName() + " ("+folder.getUnseeMessageCount()+")";
+    }
+    
+    @Override
+    public void setUserObject(Object obj) {
+        if ((obj instanceof IMAPFolder) == false) {
+            throw new IllegalArgumentException("UserObject needs to be an instance of IMAPFolder");
+        }        
+        setFolderText((IMAPFolder)obj);
 
-		super.setUserObject(obj);
-	}
+        super.setUserObject(obj);
+    }
 
-	@Override
-	public void startEdit() {
-		IMAPFolder folder = (IMAPFolder) getUserObject();
-		oldFullName = folder.getFullName();
-		oldName = folder.getName();
-		showEditBox(oldName);
-		manager.fireEvent(new EditEvent(EditEvent.EventType.Start,oldFullName,null));
-	}
-	
-	@Override
-	public void cancelEdit() {
-		IMAPFolder folder = ((IMAPFolder) getUserObject());
-		folder.setFullName(oldFullName);
-		showItem(getFolderName(folder));
+    @Override
+    public void startEdit() {
+        IMAPFolder folder = (IMAPFolder) getUserObject();
+        oldFullName = folder.getFullName();
+        oldName = folder.getName();
+        showEditBox(oldName);
+        manager.fireEvent(new EditEvent(EditEvent.EventType.Start,oldFullName,null));
+    }
+    
+    @Override
+    public void cancelEdit() {
+        IMAPFolder folder = ((IMAPFolder) getUserObject());
+        folder.setFullName(oldFullName);
+        showItem(getFolderName(folder));
 
-		manager.fireEvent(new EditEvent(EditEvent.EventType.Cancel,oldFullName,null));
+        manager.fireEvent(new EditEvent(EditEvent.EventType.Cancel,oldFullName,null));
 
-	}
-	
-	@Override
-	public void stopEdit() {
-		if (editBox.getText().length() < 1) {
-			// Empty folder name is not allowed!
-			cancelEdit();
-		} else {
-			String newFolderName = editBox.getText();
-			String newFullFolderName = oldFullName.substring(0, oldFullName.length() - oldName.length())  + newFolderName; 
-			IMAPFolder folder = ((IMAPFolder) getUserObject());
-			folder.setFullName(newFullFolderName);
-			showItem(getFolderName(folder));
+    }
+    
+    @Override
+    public void stopEdit() {
+        if (editBox.getText().length() < 1) {
+            // Empty folder name is not allowed!
+            cancelEdit();
+        } else {
+            String newFolderName = editBox.getText();
+            String newFullFolderName = oldFullName.substring(0, oldFullName.length() - oldName.length())  + newFolderName; 
+            IMAPFolder folder = ((IMAPFolder) getUserObject());
+            folder.setFullName(newFullFolderName);
+            showItem(getFolderName(folder));
 
-			manager.fireEvent(new EditEvent(EditEvent.EventType.Stop,oldFullName,newFullFolderName));
-		}
+            manager.fireEvent(new EditEvent(EditEvent.EventType.Stop,oldFullName,newFullFolderName));
+        }
 
-	}
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/widgets/ConfirmDialogBox.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/widgets/ConfirmDialogBox.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/widgets/ConfirmDialogBox.java	(working copy)
@@ -32,54 +32,54 @@
 import com.google.gwt.user.client.ui.VerticalPanel;
 
 public class ConfirmDialogBox extends MyDialogBox implements HasClickHandlers {
-	private HupaConstants constants = GWT.create(HupaConstants.class);
-	private Label text = new Label();
-	private ButtonBar bar = new ButtonBar();
-	private VerticalPanel panel = new VerticalPanel();
-	private Button okButton = new Button(constants.okButton());
-	private Button cancelButton = new Button(constants.cancelButton());
-	
-	public ConfirmDialogBox() {	
-		super();
-		setModal(true);
-		setAnimationEnabled(true);
-		setAutoHideEnabled(false);
-		panel.setSpacing(10);
-		panel.add(text);
-		bar.add(okButton);
-		bar.add(cancelButton);
-		panel.add(bar);
-		panel.setCellHorizontalAlignment(bar, VerticalPanel.ALIGN_RIGHT);
-		
-		cancelButton.addClickHandler(new ClickHandler() {
+    private HupaConstants constants = GWT.create(HupaConstants.class);
+    private Label text = new Label();
+    private ButtonBar bar = new ButtonBar();
+    private VerticalPanel panel = new VerticalPanel();
+    private Button okButton = new Button(constants.okButton());
+    private Button cancelButton = new Button(constants.cancelButton());
+    
+    public ConfirmDialogBox() {    
+        super();
+        setModal(true);
+        setAnimationEnabled(true);
+        setAutoHideEnabled(false);
+        panel.setSpacing(10);
+        panel.add(text);
+        bar.add(okButton);
+        bar.add(cancelButton);
+        panel.add(bar);
+        panel.setCellHorizontalAlignment(bar, VerticalPanel.ALIGN_RIGHT);
+        
+        cancelButton.addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				hide();
-			}
-			
-		});
-		okButton.addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                hide();
+            }
+            
+        });
+        okButton.addClickHandler(new ClickHandler() {
 
-			public void onClick(ClickEvent event) {
-				hide();
-			}
-			
-		});
-		add(panel);
-	}
-	
-	public void setText(String value) {
-		text.setText(value);
-	}
+            public void onClick(ClickEvent event) {
+                hide();
+            }
+            
+        });
+        add(panel);
+    }
+    
+    public void setText(String value) {
+        text.setText(value);
+    }
 
-	public HandlerRegistration addClickHandler(ClickHandler handler) {
-		return okButton.addClickHandler(handler);
-	}
-	
-	public void show() {
-		super.show();
-		center();
+    public HandlerRegistration addClickHandler(ClickHandler handler) {
+        return okButton.addClickHandler(handler);
+    }
+    
+    public void show() {
+        super.show();
+        center();
 
-	}
+    }
 
 }
Index: client/src/main/java/org/apache/hupa/client/widgets/DragRefetchPagingScrollTable.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/widgets/DragRefetchPagingScrollTable.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/widgets/DragRefetchPagingScrollTable.java	(working copy)
@@ -34,84 +34,84 @@
 import com.google.gwt.user.client.ui.Widget;
 
 public class DragRefetchPagingScrollTable<RowType> extends RefetchPagingScrollTable<RowType>{
-	private DragHandlerFactory factory;
-	private int cellIndex =-1;
-	private PagingScrollTableRowDragController tableRowDragController;
-	public DragRefetchPagingScrollTable(MutableTableModel<RowType> tableModel,
-			FixedWidthGrid dataTable, FixedWidthFlexTable headerTable,
-			DefaultTableDefinition<RowType> tableDefinition, PagingScrollTableRowDragController tableRowDragController,int dragColumn) {
-		super(tableModel, dataTable, headerTable, tableDefinition);
-		this.tableRowDragController = tableRowDragController;
-		tableRowDragController.addDragHandler(new DragHandlerAdapter() {
+    private DragHandlerFactory factory;
+    private int cellIndex =-1;
+    private PagingScrollTableRowDragController tableRowDragController;
+    public DragRefetchPagingScrollTable(MutableTableModel<RowType> tableModel,
+            FixedWidthGrid dataTable, FixedWidthFlexTable headerTable,
+            DefaultTableDefinition<RowType> tableDefinition, PagingScrollTableRowDragController tableRowDragController,int dragColumn) {
+        super(tableModel, dataTable, headerTable, tableDefinition);
+        this.tableRowDragController = tableRowDragController;
+        tableRowDragController.addDragHandler(new DragHandlerAdapter() {
 
-			@Override
-			public void onDragStart(DragStartEvent event) {
-				getDataTable().deselectAllRows();
-			}
-			
-		});
-	}
+            @Override
+            public void onDragStart(DragStartEvent event) {
+                getDataTable().deselectAllRows();
+            }
+            
+        });
+    }
 
-	/**
-	 * Factory which will create new Handler Widgets 
-	 * 	 */
-	public interface DragHandlerFactory {
-		public Widget createHandler();
-	}
+    /**
+     * Factory which will create new Handler Widgets 
+     *      */
+    public interface DragHandlerFactory {
+        public Widget createHandler();
+    }
 
-	@SuppressWarnings("unchecked")
-	public void setDragHandler(int newCellIndex,int cellWidth,DragHandlerFactory factory) {
-		this.factory = factory;
-		
-		if (newCellIndex < 0) {
-			throw new IllegalArgumentException("cellIndex needs to be higher then 0");
-		}
-		
-		DefaultTableDefinition tableDef = (DefaultTableDefinition) getTableDefinition();
-		
-		// remove old definition 
-		if (cellIndex != -1) {
-			tableDef.removeColumnDefinition(tableDef.getColumnDefinition(cellIndex));
-		}
-		
-		this.cellIndex = newCellIndex;
-		
-		// Create new ghost definition which will get used later to add the drag widget
-		DragColumnDefinition def = new DragColumnDefinition();
-		def.setColumnSortable(false);
-		def.setColumnTruncatable(false);
-		def.setMaximumColumnWidth(cellWidth);
-		def.setPreferredColumnWidth(cellWidth);
-		def.setMinimumColumnWidth(cellWidth);
-		tableDef.addColumnDefinition(cellIndex,def);
-	}
-	
-	
-	@Override
-	protected void setData(int firstRow, Iterator<RowType> rows) {
-		super.setData(firstRow, rows);
-		
-		if (getRowValues().size() >0 && factory != null && cellIndex > -1) {
-			for (int i = 0; i < getRowValues().size();i++) {
-				Widget handler = factory.createHandler();
-				getDataTable().setWidget(i, cellIndex, handler);
-				tableRowDragController.makeDraggable(handler);
-			}
-		}
-	}
-	
-	private final class DragColumnDefinition extends AbstractColumnDefinition<RowType, Boolean> {
-		
-		@Override
-		public Boolean getCellValue(RowType rowValue) {
-			return true;
-		}
+    @SuppressWarnings("unchecked")
+    public void setDragHandler(int newCellIndex,int cellWidth,DragHandlerFactory factory) {
+        this.factory = factory;
+        
+        if (newCellIndex < 0) {
+            throw new IllegalArgumentException("cellIndex needs to be higher then 0");
+        }
+        
+        DefaultTableDefinition tableDef = (DefaultTableDefinition) getTableDefinition();
+        
+        // remove old definition 
+        if (cellIndex != -1) {
+            tableDef.removeColumnDefinition(tableDef.getColumnDefinition(cellIndex));
+        }
+        
+        this.cellIndex = newCellIndex;
+        
+        // Create new ghost definition which will get used later to add the drag widget
+        DragColumnDefinition def = new DragColumnDefinition();
+        def.setColumnSortable(false);
+        def.setColumnTruncatable(false);
+        def.setMaximumColumnWidth(cellWidth);
+        def.setPreferredColumnWidth(cellWidth);
+        def.setMinimumColumnWidth(cellWidth);
+        tableDef.addColumnDefinition(cellIndex,def);
+    }
+    
+    
+    @Override
+    protected void setData(int firstRow, Iterator<RowType> rows) {
+        super.setData(firstRow, rows);
+        
+        if (getRowValues().size() >0 && factory != null && cellIndex > -1) {
+            for (int i = 0; i < getRowValues().size();i++) {
+                Widget handler = factory.createHandler();
+                getDataTable().setWidget(i, cellIndex, handler);
+                tableRowDragController.makeDraggable(handler);
+            }
+        }
+    }
+    
+    private final class DragColumnDefinition extends AbstractColumnDefinition<RowType, Boolean> {
+        
+        @Override
+        public Boolean getCellValue(RowType rowValue) {
+            return true;
+        }
 
-		@Override
-		public void setCellValue(RowType rowValue, Boolean cellValue) {
-		
-		}
-		
-	}
-	
+        @Override
+        public void setCellValue(RowType rowValue, Boolean cellValue) {
+        
+        }
+        
+    }
+    
 }
Index: client/src/main/java/org/apache/hupa/client/widgets/HasDialog.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/widgets/HasDialog.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/widgets/HasDialog.java	(working copy)
@@ -20,7 +20,7 @@
 package org.apache.hupa.client.widgets;
 
 public interface HasDialog {
-	public void show();
-	public void hide();
-	public void center();
+    public void show();
+    public void hide();
+    public void center();
 }
Index: client/src/main/java/org/apache/hupa/client/widgets/Loading.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/widgets/Loading.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/widgets/Loading.java	(working copy)
@@ -30,28 +30,28 @@
 import com.google.gwt.user.client.ui.SimplePanel;
 
 public class Loading extends Composite{
-	private HupaConstants constants = GWT.create(HupaConstants.class);
-	private SimplePanel sPanel = new SimplePanel();
-	private HorizontalPanel panel = new HorizontalPanel();
-	public Loading(boolean small) {
-		panel.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER);
-		panel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
-		panel.add(new Image(GWT.getModuleBaseURL() + "../images/ajax-loader.gif"));
-		if (small == false) {
-			panel.add(new Label(" " + constants.loading()));
-		}
-		
-		initWidget(sPanel);
-	}
-	
-	public void show() {
-		sPanel.clear();
-		sPanel.add(panel);
-	}
-	
-	public void hide() {
-		sPanel.clear();
-		sPanel.add(new HTML("&nbsp"));
-	}
+    private HupaConstants constants = GWT.create(HupaConstants.class);
+    private SimplePanel sPanel = new SimplePanel();
+    private HorizontalPanel panel = new HorizontalPanel();
+    public Loading(boolean small) {
+        panel.setHorizontalAlignment(HorizontalPanel.ALIGN_CENTER);
+        panel.setVerticalAlignment(HorizontalPanel.ALIGN_MIDDLE);
+        panel.add(new Image(GWT.getModuleBaseURL() + "../images/ajax-loader.gif"));
+        if (small == false) {
+            panel.add(new Label(" " + constants.loading()));
+        }
+        
+        initWidget(sPanel);
+    }
+    
+    public void show() {
+        sPanel.clear();
+        sPanel.add(panel);
+    }
+    
+    public void hide() {
+        sPanel.clear();
+        sPanel.add(new HTML("&nbsp"));
+    }
 
 }
Index: client/src/main/java/org/apache/hupa/client/widgets/MyDialogBox.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/widgets/MyDialogBox.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/widgets/MyDialogBox.java	(working copy)
@@ -3,5 +3,5 @@
 import com.google.gwt.user.client.ui.DialogBox;
 
 public class MyDialogBox extends DialogBox implements HasDialog{
-	
+    
 }
Index: client/src/main/java/org/apache/hupa/client/validation/NotEmptyValidator.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/validation/NotEmptyValidator.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/validation/NotEmptyValidator.java	(working copy)
@@ -28,24 +28,24 @@
 import eu.maydu.gwt.validation.client.i18n.ValidationMessages;
 
 public class NotEmptyValidator extends Validator<NotEmptyValidator> {
-	private HasText text;
+    private HasText text;
 
-	public NotEmptyValidator(HasText text) {
-		this.text = text;
-	}
-	@Override
-	public void invokeActions(ValidationResult result) {
-		for (ValidationAction<HasText> action : getFailureActions())
-			action.invoke(result, text);
-	}
+    public NotEmptyValidator(HasText text) {
+        this.text = text;
+    }
+    @Override
+    public void invokeActions(ValidationResult result) {
+        for (ValidationAction<HasText> action : getFailureActions())
+            action.invoke(result, text);
+    }
 
-	@Override
-	public <V extends ValidationMessages> ValidationResult validate(
-			V messages) {
-		if (text.getText().trim().length() < 1) {
-			return new ValidationResult();
-		}
-		return null;
-	}
-	
+    @Override
+    public <V extends ValidationMessages> ValidationResult validate(
+            V messages) {
+        if (text.getText().trim().length() < 1) {
+            return new ValidationResult();
+        }
+        return null;
+    }
+    
 }
Index: client/src/main/java/org/apache/hupa/client/validation/EmailListValidator.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/validation/EmailListValidator.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/validation/EmailListValidator.java	(working copy)
@@ -27,44 +27,44 @@
 import eu.maydu.gwt.validation.client.i18n.ValidationMessages;
 
 public class EmailListValidator extends Validator<EmailListValidator>{
-	private HasText text;
-	private String emailRegex = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$";
-	public EmailListValidator(HasText text) {
-		this.text = text;
-	}
+    private HasText text;
+    private String emailRegex = "^[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\\.[A-Za-z]{2,}$";
+    public EmailListValidator(HasText text) {
+        this.text = text;
+    }
 
-	@Override
-	public void invokeActions(ValidationResult result) {
-		for (ValidationAction<HasText> action : getFailureActions())
-			action.invoke(result, text);
-	}
+    @Override
+    public void invokeActions(ValidationResult result) {
+        for (ValidationAction<HasText> action : getFailureActions())
+            action.invoke(result, text);
+    }
 
-	@Override
-	public <V extends ValidationMessages> ValidationResult validate(
-			V messages) {
-		if (isValidAddressList(text.getText()) == false) {
-			return new ValidationResult();
-		}
-		return null;
-	}
+    @Override
+    public <V extends ValidationMessages> ValidationResult validate(
+            V messages) {
+        if (isValidAddressList(text.getText()) == false) {
+            return new ValidationResult();
+        }
+        return null;
+    }
 
-	private boolean isValidAddressList(String text) {
-		if (text.length() > 0) {
-			String[] addresses = text.split(",");
-			if (addresses == null || addresses.length == 0) {
-				return isValidAddress(text);
-			} else {
-				for (int i = 0; i < addresses.length; i++) {
-					if (isValidAddress(addresses[i]) == false) {
-						return false;
-					}
-				}
-			}
-		}
-		return true;
-	}
+    private boolean isValidAddressList(String text) {
+        if (text.length() > 0) {
+            String[] addresses = text.split(",");
+            if (addresses == null || addresses.length == 0) {
+                return isValidAddress(text);
+            } else {
+                for (int i = 0; i < addresses.length; i++) {
+                    if (isValidAddress(addresses[i]) == false) {
+                        return false;
+                    }
+                }
+            }
+        }
+        return true;
+    }
 
-	private boolean isValidAddress(String email) {
-		return email.matches(emailRegex);
-	}
+    private boolean isValidAddress(String email) {
+        return email.matches(emailRegex);
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/CachingDispatchAsync.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/CachingDispatchAsync.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/CachingDispatchAsync.java	(working copy)
@@ -35,58 +35,58 @@
  */
 public class CachingDispatchAsync implements DispatchAsync {
 
-	private DispatchAsync dispatcher;
-	private Map<Action<Result>, Result> cache = new HashMap<Action<Result>, Result>();
+    private DispatchAsync dispatcher;
+    private Map<Action<Result>, Result> cache = new HashMap<Action<Result>, Result>();
 
-	@Inject
-	public CachingDispatchAsync(DispatchAsync dispatcher) {
-		this.dispatcher = dispatcher;
-	}
+    @Inject
+    public CachingDispatchAsync(DispatchAsync dispatcher) {
+        this.dispatcher = dispatcher;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.client.DispatchAsync#execute(A, com.google.gwt.user.client.rpc.AsyncCallback)
-	 */
-	public <A extends Action<R>, R extends Result> void execute(final A action,
-			final AsyncCallback<R> callback) {
-		dispatcher.execute(action, callback);
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.client.DispatchAsync#execute(A, com.google.gwt.user.client.rpc.AsyncCallback)
+     */
+    public <A extends Action<R>, R extends Result> void execute(final A action,
+            final AsyncCallback<R> callback) {
+        dispatcher.execute(action, callback);
+    }
 
-	/**
-	 * Execute the give Action. If the Action was executed before it will get fetched from the cache
-	 * 
-	 * @param <A> Action implementation
-	 * @param <R> Result implementation
-	 * @param action the action
-	 * @param callback the callback
-	 */
-	@SuppressWarnings("unchecked")
-	public <A extends Action<R>, R extends Result> void executeWithCache(
-			final A action, final AsyncCallback<R> callback) {
-		Result r = cache.get(action);
-		if (r != null) {
-			callback.onSuccess((R) r);
-		} else {
-			dispatcher.execute(action, new AsyncCallback<R>() {
+    /**
+     * Execute the give Action. If the Action was executed before it will get fetched from the cache
+     * 
+     * @param <A> Action implementation
+     * @param <R> Result implementation
+     * @param action the action
+     * @param callback the callback
+     */
+    @SuppressWarnings("unchecked")
+    public <A extends Action<R>, R extends Result> void executeWithCache(
+            final A action, final AsyncCallback<R> callback) {
+        Result r = cache.get(action);
+        if (r != null) {
+            callback.onSuccess((R) r);
+        } else {
+            dispatcher.execute(action, new AsyncCallback<R>() {
 
-				public void onFailure(Throwable caught) {
-					callback.onFailure(caught);
-				}
+                public void onFailure(Throwable caught) {
+                    callback.onFailure(caught);
+                }
 
-				public void onSuccess(R result) {
-					cache.put((Action) action, (Result) result);
-					callback.onSuccess(result);
-				}
+                public void onSuccess(R result) {
+                    cache.put((Action) action, (Result) result);
+                    callback.onSuccess(result);
+                }
 
-			});
-		}
-	}
+            });
+        }
+    }
 
-	/**
-	 * Clear the cache
-	 */
-	public void clear() {
-		cache.clear();
-	}
+    /**
+     * Clear the cache
+     */
+    public void clear() {
+        cache.clear();
+    }
 
 }
Index: client/src/main/java/org/apache/hupa/client/HupaCallback.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/HupaCallback.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/HupaCallback.java	(working copy)
@@ -15,88 +15,88 @@
 import com.google.inject.Inject;
 
 public abstract class HupaCallback<T> implements AsyncCallback<T> {
-	
-	private DispatchAsync dispatcher = null;
-	private EventBus eventBus = null;
-	private ServerStatusEvent available = new ServerStatusEvent(ServerStatus.Available); 
-	private ServerStatusEvent unavailable = new ServerStatusEvent(ServerStatus.Unavailable); 
+    
+    private DispatchAsync dispatcher = null;
+    private EventBus eventBus = null;
+    private ServerStatusEvent available = new ServerStatusEvent(ServerStatus.Available); 
+    private ServerStatusEvent unavailable = new ServerStatusEvent(ServerStatus.Unavailable); 
     private Display display = null;
 
-	@Inject
-	public HupaCallback(DispatchAsync dispatcher, EventBus bus, Display display) {
-		this(dispatcher, bus);
-		this.display = display;
-		this.display.startProcessing();
-	}
-	
-	@Inject
-	public HupaCallback(DispatchAsync dispatcher, EventBus bus) {
-		this.dispatcher = dispatcher;
-		this.eventBus = bus;
-	}
+    @Inject
+    public HupaCallback(DispatchAsync dispatcher, EventBus bus, Display display) {
+        this(dispatcher, bus);
+        this.display = display;
+        this.display.startProcessing();
+    }
+    
+    @Inject
+    public HupaCallback(DispatchAsync dispatcher, EventBus bus) {
+        this.dispatcher = dispatcher;
+        this.eventBus = bus;
+    }
 
-	/**
-	 * If you override this method, remember to call super.onFailure() 
-	 */
-	public void onFailure(final Throwable originalCaught) {
-		// Server's response is invalid due to:
-		// server unaccessible, session error or server exception
-		dispatcher.execute(new CheckSession(), new AsyncCallback<CheckSessionResult>() {
-			public void onFailure(Throwable caught) {
-				if (caught instanceof InvalidSessionException) {
-					eventBus.fireEvent(new LogoutEvent(null));
-				} else {
-					// The server is unaccessible
-					eventBus.fireEvent(unavailable);
-				}
-				finish();
-			}
-			public void onSuccess(CheckSessionResult result) {
-				if (!result.isValid()) {
-					// Server's connection is fine, but the user has not a valid session
-					eventBus.fireEvent(new LogoutEvent(null));
-				} else {
-					// Server's connection is fine, and the user has a valid session
-					// So the original action failed because a server's exception 
-					eventBus.fireEvent(available);
-				}
-				finish();
-			}
+    /**
+     * If you override this method, remember to call super.onFailure() 
+     */
+    public void onFailure(final Throwable originalCaught) {
+        // Server's response is invalid due to:
+        // server unaccessible, session error or server exception
+        dispatcher.execute(new CheckSession(), new AsyncCallback<CheckSessionResult>() {
+            public void onFailure(Throwable caught) {
+                if (caught instanceof InvalidSessionException) {
+                    eventBus.fireEvent(new LogoutEvent(null));
+                } else {
+                    // The server is unaccessible
+                    eventBus.fireEvent(unavailable);
+                }
+                finish();
+            }
+            public void onSuccess(CheckSessionResult result) {
+                if (!result.isValid()) {
+                    // Server's connection is fine, but the user has not a valid session
+                    eventBus.fireEvent(new LogoutEvent(null));
+                } else {
+                    // Server's connection is fine, and the user has a valid session
+                    // So the original action failed because a server's exception 
+                    eventBus.fireEvent(available);
+                }
+                finish();
+            }
 
-			private void finish() {
-				callbackError(originalCaught);
-				if (display != null)
-					display.stopProcessing();
-			}
-		});
-	}
-	
-	/**
-	 * If you override this method, remember to call super.onSuccess() 
-	 */
-	public void onSuccess(T result) {
-		// Server's response is valid,
-		eventBus.fireEvent(available);
-		// Execute the original method
-		callback(result);
-		// If display is being used, stop it
-		if (display != null)
-			display.stopProcessing();
-	}
-	
-	/**
-	 * The callback code which the user has to implement
-	 * @param result
-	 */
-	public abstract void callback(T result); 
+            private void finish() {
+                callbackError(originalCaught);
+                if (display != null)
+                    display.stopProcessing();
+            }
+        });
+    }
+    
+    /**
+     * If you override this method, remember to call super.onSuccess() 
+     */
+    public void onSuccess(T result) {
+        // Server's response is valid,
+        eventBus.fireEvent(available);
+        // Execute the original method
+        callback(result);
+        // If display is being used, stop it
+        if (display != null)
+            display.stopProcessing();
+    }
+    
+    /**
+     * The callback code which the user has to implement
+     * @param result
+     */
+    public abstract void callback(T result); 
 
-	/**
-	 * The callback code in the case of error
-	 * Override this method, if you need this feature.
-	 *  
-	 * @param result
-	 */
-	public void callbackError(Throwable caught) {
-		System.out.println("HupaCallBack Error: " + caught);
-	}
+    /**
+     * The callback code in the case of error
+     * Override this method, if you need this feature.
+     *  
+     * @param result
+     */
+    public void callbackError(Throwable caught) {
+        System.out.println("HupaCallBack Error: " + caught);
+    }
 }
Index: client/src/main/java/org/apache/hupa/client/HupaConstants.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/HupaConstants.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/HupaConstants.java	(working copy)
@@ -25,90 +25,90 @@
 
 public interface HupaConstants extends Constants, UploaderConstants {
 
-	public String usernameLabel();
+    public String usernameLabel();
 
-	public String passwordLabel();
+    public String passwordLabel();
 
-	public String saveLoginLabel();
+    public String saveLoginLabel();
 
-	public String loginButton();
+    public String loginButton();
 
-	public String resetButton();
+    public String resetButton();
 
-	public String logoutButton();
+    public String logoutButton();
 
-	public String deleteMailButton();
+    public String deleteMailButton();
 
-	public String newMailButton();
+    public String newMailButton();
 
-	public String replyMailButton();
+    public String replyMailButton();
 
-	public String replyAllMailButton();
+    public String replyAllMailButton();
 
-	public String headerTo();
+    public String headerTo();
 
-	public String headerCc();
+    public String headerCc();
 
-	public String headerSubject();
+    public String headerSubject();
 
-	public String headerReceivedDate();
+    public String headerReceivedDate();
 
-	public String productName();
+    public String productName();
 
-	public String headerFrom();
-	public String mailTableFrom();
-	public String mailTableSubject();
-	public String mailTableDate();
-	
-	public String loginInvalid();
+    public String headerFrom();
+    public String mailTableFrom();
+    public String mailTableSubject();
+    public String mailTableDate();
+    
+    public String loginInvalid();
 
-	public String searchButton();
+    public String searchButton();
 
-	public String emptyMailTable();
+    public String emptyMailTable();
 
-	public String attachments();
+    public String attachments();
 
-	public String headerBcc();
+    public String headerBcc();
 
-	public String sendButton();
+    public String sendButton();
 
-	public String forwardMailButton();
-	
-	public String loading();
+    public String forwardMailButton();
+    
+    public String loading();
 
-	public String okButton();
+    public String okButton();
 
-	public String cancelButton();
+    public String cancelButton();
 
-	public String select();
+    public String select();
 
-	public String all();
+    public String all();
 
-	public String none();
+    public String none();
 
-	public String newFolder();
-	public String renameFolder();
-	public String deleteFolder();
+    public String newFolder();
+    public String renameFolder();
+    public String deleteFolder();
 
-	public String pageNext();
+    public String pageNext();
 
-	public String pageLast();
+    public String pageLast();
 
-	public String pagePrev();
+    public String pagePrev();
 
-	public String pageFirst();
-	
-	public String loginAs();
+    public String pageFirst();
+    
+    public String loginAs();
 
-	public String backButton();
+    public String backButton();
 
-	public String rawButton();
-	
-	public String sessionTimedOut();
-	public String rawTitle();
-	
-	public String deleteAll();
-	
-	public String markSeen();
-	public String markUnseen();
+    public String rawButton();
+    
+    public String sessionTimedOut();
+    public String rawTitle();
+    
+    public String deleteAll();
+    
+    public String markSeen();
+    public String markUnseen();
 }
Index: client/src/main/java/org/apache/hupa/client/bundles/HupaImageBundle.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/bundles/HupaImageBundle.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/bundles/HupaImageBundle.java	(working copy)
@@ -24,12 +24,12 @@
 
 public interface HupaImageBundle extends ImageBundle{
 
-	@Resource("attach.png")
-	public AbstractImagePrototype attachmentIcon();
-	
-	@Resource("email_link.png")
-	public AbstractImagePrototype readyToMoveMailIcon();
-	
-	@Resource("email.png")
-	public AbstractImagePrototype moveMailIcon();
+    @Resource("attach.png")
+    public AbstractImagePrototype attachmentIcon();
+    
+    @Resource("email_link.png")
+    public AbstractImagePrototype readyToMoveMailIcon();
+    
+    @Resource("email.png")
+    public AbstractImagePrototype moveMailIcon();
 }
Index: client/src/main/java/org/apache/hupa/client/bundles/IMAPTreeImages.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/bundles/IMAPTreeImages.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/bundles/IMAPTreeImages.java	(working copy)
@@ -24,25 +24,25 @@
 
 public interface IMAPTreeImages extends TreeImages {
 
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.user.client.ui.TreeImages#treeOpen()
-	 */
-	@Resource("folder_add.png")
-	AbstractImagePrototype treeOpen();
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.user.client.ui.TreeImages#treeOpen()
+     */
+    @Resource("folder_add.png")
+    AbstractImagePrototype treeOpen();
 
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.user.client.ui.TreeImages#treeClosed()
-	 */
-	@Resource("folder_add.png")
-	AbstractImagePrototype treeClosed();
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.user.client.ui.TreeImages#treeClosed()
+     */
+    @Resource("folder_add.png")
+    AbstractImagePrototype treeClosed();
 
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.user.client.ui.TreeImages#treeLeaf()
-	 */
-	@Resource("folder.png")
-	AbstractImagePrototype treeLeaf();
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.user.client.ui.TreeImages#treeLeaf()
+     */
+    @Resource("folder.png")
+    AbstractImagePrototype treeLeaf();
 
 }
Index: client/src/main/java/org/apache/hupa/client/gin/HupaClientModule.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/gin/HupaClientModule.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/gin/HupaClientModule.java	(working copy)
@@ -43,18 +43,18 @@
 
 public class HupaClientModule extends AbstractPresenterModule {
 
-	@Override
-	protected void configure() {		
-		bind(EventBus.class).to(DefaultEventBus.class).in(Singleton.class);
-		bind(PlaceManager.class).in(Singleton.class);
-		bindPresenter(LoginPresenter.class,LoginPresenter.Display.class, LoginView.class);
-		bindPresenter(IMAPMessageListPresenter.class,IMAPMessageListPresenter.Display.class,IMAPMessageListView.class);
-		bindPresenter(IMAPMessagePresenter.class,IMAPMessagePresenter.Display.class,IMAPMessageView.class);
-		bindPresenter(MainPresenter.class,MainPresenter.Display.class,MainView.class);
-		bindPresenter(MessageSendPresenter.class, MessageSendPresenter.Display.class, MessageSendView.class);
-		bindPresenter(AppPresenter.class, AppPresenter.Display.class, AppView.class);
-		bind(CachingDispatchAsync.class);
-		bind(PagingScrollTableRowDragController.class).in(Singleton.class);
-	}
+    @Override
+    protected void configure() {        
+        bind(EventBus.class).to(DefaultEventBus.class).in(Singleton.class);
+        bind(PlaceManager.class).in(Singleton.class);
+        bindPresenter(LoginPresenter.class,LoginPresenter.Display.class, LoginView.class);
+        bindPresenter(IMAPMessageListPresenter.class,IMAPMessageListPresenter.Display.class,IMAPMessageListView.class);
+        bindPresenter(IMAPMessagePresenter.class,IMAPMessagePresenter.Display.class,IMAPMessageView.class);
+        bindPresenter(MainPresenter.class,MainPresenter.Display.class,MainView.class);
+        bindPresenter(MessageSendPresenter.class, MessageSendPresenter.Display.class, MessageSendView.class);
+        bindPresenter(AppPresenter.class, AppPresenter.Display.class, AppView.class);
+        bind(CachingDispatchAsync.class);
+        bind(PagingScrollTableRowDragController.class).in(Singleton.class);
+    }
 
 }
Index: client/src/main/java/org/apache/hupa/client/gin/HupaGinjector.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/gin/HupaGinjector.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/gin/HupaGinjector.java	(working copy)
@@ -29,7 +29,7 @@
 
 @GinModules({ClientDispatchModule.class,HupaClientModule.class})
 public interface HupaGinjector extends Ginjector {
-	public AppPresenter getAppPresenter();
-	public PlaceManager getPlaceManager();
-	public EventBus getEventBus();
+    public AppPresenter getAppPresenter();
+    public PlaceManager getPlaceManager();
+    public EventBus getEventBus();
 }
Index: client/src/main/java/org/apache/hupa/client/Hupa.java
===================================================================
--- client/src/main/java/org/apache/hupa/client/Hupa.java	(revision 825462)
+++ client/src/main/java/org/apache/hupa/client/Hupa.java	(working copy)
@@ -31,14 +31,14 @@
 import com.google.gwt.user.client.ui.RootPanel;
 
 public class Hupa implements EntryPoint{
-	private final HupaGinjector injector = GWT.create(HupaGinjector.class);
-	
-	public void onModuleLoad() {
-		
-		AppPresenter aPres = injector.getAppPresenter();
-		aPres.bind();
+    private final HupaGinjector injector = GWT.create(HupaGinjector.class);
+    
+    public void onModuleLoad() {
+        
+        AppPresenter aPres = injector.getAppPresenter();
+        aPres.bind();
        
-		RootPanel.get().add(aPres.getDisplay().asWidget());
+        RootPanel.get().add(aPres.getDisplay().asWidget());
         EventBus bus = injector.getEventBus();
         // Needed because of this bug:
         // http://code.google.com/p/gwt-presenter/issues/detail?id=6
Index: server/src/test/java/org/apache/hupa/server/mock/MockIMAPStoreCache.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/mock/MockIMAPStoreCache.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/mock/MockIMAPStoreCache.java	(working copy)
@@ -33,45 +33,45 @@
 import com.sun.mail.imap.IMAPStore;
 
 public class MockIMAPStoreCache implements IMAPStoreCache{
-	private Provider<Session> provider;
-	private Map<String,String> users = new HashMap<String, String>();
-	private Map<String,MockIMAPStore> stores = new HashMap<String, MockIMAPStore>();
-	public MockIMAPStoreCache(Provider<Session> provider) {
-		this.provider = provider;
-	}
-	
-	public void addValidUser(String username, String password) {
-		users.put(username, password);
-		try {
-			stores.put(username, (MockIMAPStore) provider.get().getStore("mockimap"));
-		} catch (NoSuchProviderException e) {
-			throw new RuntimeException("Invalid store");
-		}
-	}
-	
-	public void clear() {
-		users.clear();
-	}
-	
-	public void delete(User user) {
-		users.remove(user.getName());
-	}
+    private Provider<Session> provider;
+    private Map<String,String> users = new HashMap<String, String>();
+    private Map<String,MockIMAPStore> stores = new HashMap<String, MockIMAPStore>();
+    public MockIMAPStoreCache(Provider<Session> provider) {
+        this.provider = provider;
+    }
+    
+    public void addValidUser(String username, String password) {
+        users.put(username, password);
+        try {
+            stores.put(username, (MockIMAPStore) provider.get().getStore("mockimap"));
+        } catch (NoSuchProviderException e) {
+            throw new RuntimeException("Invalid store");
+        }
+    }
+    
+    public void clear() {
+        users.clear();
+    }
+    
+    public void delete(User user) {
+        users.remove(user.getName());
+    }
 
-	public void delete(String username) {
-		users.remove(username);
-	}
+    public void delete(String username) {
+        users.remove(username);
+    }
 
-	public IMAPStore get(User user) throws MessagingException {
-		return get(user.getName(),user.getPassword());
-	}
+    public IMAPStore get(User user) throws MessagingException {
+        return get(user.getName(),user.getPassword());
+    }
 
-	public IMAPStore get(String username, String password)
-			throws MessagingException {
-		String pass = users.get(username);
-		if (pass != null && pass.equals(password)) {
-			return stores.get(username);
-		} else {
-			throw new MessagingException("Invalid user");
-		}
-	}
+    public IMAPStore get(String username, String password)
+            throws MessagingException {
+        String pass = users.get(username);
+        if (pass != null && pass.equals(password)) {
+            return stores.get(username);
+        } else {
+            throw new MessagingException("Invalid user");
+        }
+    }
 }
Index: server/src/test/java/org/apache/hupa/server/mock/MockLog.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/mock/MockLog.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/mock/MockLog.java	(working copy)
@@ -23,97 +23,97 @@
 
 public class MockLog implements Log{
 
-	public void debug(Object arg0) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void debug(Object arg0) {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void debug(Object arg0, Throwable arg1) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void debug(Object arg0, Throwable arg1) {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void error(Object arg0) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void error(Object arg0) {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void error(Object arg0, Throwable arg1) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void error(Object arg0, Throwable arg1) {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void fatal(Object arg0) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void fatal(Object arg0) {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void fatal(Object arg0, Throwable arg1) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void fatal(Object arg0, Throwable arg1) {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void info(Object arg0) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void info(Object arg0) {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public void info(Object arg0, Throwable arg1) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void info(Object arg0, Throwable arg1) {
+        // TODO Auto-generated method stub
+        
+    }
 
-	public boolean isDebugEnabled() {
-		// TODO Auto-generated method stub
-		return false;
-	}
+    public boolean isDebugEnabled() {
+        // TODO Auto-generated method stub
+        return false;
+    }
 
-	public boolean isErrorEnabled() {
-		// TODO Auto-generated method stub
-		return false;
-	}
+    public boolean isErrorEnabled() {
+        // TODO Auto-generated method stub
+        return false;
+    }
 
-	public boolean isFatalEnabled() {
-		// TODO Auto-generated method stub
-		return false;
-	}
+    public boolean isFatalEnabled() {
+        // TODO Auto-generated method stub
+        return false;
+    }
 
-	public boolean isInfoEnabled() {
-		// TODO Auto-generated method stub
-		return false;
-	}
+    public boolean isInfoEnabled() {
+        // TODO Auto-generated method stub
+        return false;
+    }
 
-	public boolean isTraceEnabled() {
-		// TODO Auto-generated method stub
-		return false;
-	}
+    public boolean isTraceEnabled() {
+        // TODO Auto-generated method stub
+        return false;
+    }
 
-	public boolean isWarnEnabled() {
-		// TODO Auto-generated method stub
-		return true;
-	}
+    public boolean isWarnEnabled() {
+        // TODO Auto-generated method stub
+        return true;
+    }
 
-	public void trace(Object arg0) {
-		log(arg0);
+    public void trace(Object arg0) {
+        log(arg0);
 
-	}
+    }
 
-	public void trace(Object arg0, Throwable arg1) {
-		log(arg0);
+    public void trace(Object arg0, Throwable arg1) {
+        log(arg0);
 
-	}
+    }
 
-	public void warn(Object arg0) {
-		log(arg0);
+    public void warn(Object arg0) {
+        log(arg0);
 
-	}
+    }
 
-	public void warn(Object arg0, Throwable arg1) {
-		log(arg0);
-	}
-	
-	private void log(Object msg) {
-		System.out.println(msg);
-	}
+    public void warn(Object arg0, Throwable arg1) {
+        log(arg0);
+    }
+    
+    private void log(Object msg) {
+        System.out.println(msg);
+    }
 
 }
Index: server/src/test/java/org/apache/hupa/server/mock/MockIMAPFolder.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/mock/MockIMAPFolder.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/mock/MockIMAPFolder.java	(working copy)
@@ -37,296 +37,296 @@
 
 public class MockIMAPFolder extends IMAPFolder {
 
-	private boolean closed;
-	private boolean exists;
-	public final static char SEPERATOR = '.';
+    private boolean closed;
+    private boolean exists;
+    public final static char SEPERATOR = '.';
 
-	public MockIMAPFolder(String fullName, IMAPStore store) {
-		super(fullName, SEPERATOR, store);
-	}
+    public MockIMAPFolder(String fullName, IMAPStore store) {
+        super(fullName, SEPERATOR, store);
+    }
 
-	public List<Message> messages = new ArrayList<Message>();
+    public List<Message> messages = new ArrayList<Message>();
 
-	@Override
-	public synchronized Message[] addMessages(Message[] mArray)
-			throws MessagingException {
-		checkExists();
-		messages.addAll(Arrays.asList(mArray));
-		return mArray;
-	}
+    @Override
+    public synchronized Message[] addMessages(Message[] mArray)
+            throws MessagingException {
+        checkExists();
+        messages.addAll(Arrays.asList(mArray));
+        return mArray;
+    }
 
-	@Override
-	public synchronized void close(boolean expunge) throws MessagingException {
-		checkExists();
-		closed = true;
-	}
+    @Override
+    public synchronized void close(boolean expunge) throws MessagingException {
+        checkExists();
+        closed = true;
+    }
 
-	@Override
-	public Folder[] list() throws MessagingException {
-		List<MockIMAPFolder> folders = ((MockIMAPStore) store).getChilds(this);
-		return folders.toArray(new Folder[folders.size()]);
-	}
+    @Override
+    public Folder[] list() throws MessagingException {
+        List<MockIMAPFolder> folders = ((MockIMAPStore) store).getChilds(this);
+        return folders.toArray(new Folder[folders.size()]);
+    }
 
-	@Override
-	public synchronized void copyMessages(Message[] messages, Folder folder)
-			throws MessagingException {
-		checkExists();
-		((MockIMAPFolder) folder).addMessages(messages);
+    @Override
+    public synchronized void copyMessages(Message[] messages, Folder folder)
+            throws MessagingException {
+        checkExists();
+        ((MockIMAPFolder) folder).addMessages(messages);
 
-	}
+    }
 
-	@Override
-	public synchronized boolean create(int type) throws MessagingException {
-		if (exists()) {
-			throw new MessagingException("Folder already exists!");
-		}
-		exists = true;
-		return ((MockIMAPStore) store).save(this);
-	}
+    @Override
+    public synchronized boolean create(int type) throws MessagingException {
+        if (exists()) {
+            throw new MessagingException("Folder already exists!");
+        }
+        exists = true;
+        return ((MockIMAPStore) store).save(this);
+    }
 
-	@Override
-	public synchronized boolean delete(boolean recursive)
-			throws MessagingException {
-		exists = false;
-		return ((MockIMAPStore) store).delete(this, recursive);
-	}
+    @Override
+    public synchronized boolean delete(boolean recursive)
+            throws MessagingException {
+        exists = false;
+        return ((MockIMAPStore) store).delete(this, recursive);
+    }
 
-	@Override
-	public synchronized boolean exists() throws MessagingException {
-		return exists;
-	}
+    @Override
+    public synchronized boolean exists() throws MessagingException {
+        return exists;
+    }
 
-	@Override
-	public synchronized void fetch(Message[] msgs, FetchProfile fp)
-			throws MessagingException {
-		// nothing todo
-		checkExists();
-	}
+    @Override
+    public synchronized void fetch(Message[] msgs, FetchProfile fp)
+            throws MessagingException {
+        // nothing todo
+        checkExists();
+    }
 
-	@Override
-	public synchronized int getDeletedMessageCount() throws MessagingException {
-		return 0;
-	}
+    @Override
+    public synchronized int getDeletedMessageCount() throws MessagingException {
+        return 0;
+    }
 
-	@Override
-	public Folder getFolder(String name) throws MessagingException {
-		return super.getFolder(name);
-	}
+    @Override
+    public Folder getFolder(String name) throws MessagingException {
+        return super.getFolder(name);
+    }
 
-	@Override
-	public synchronized String getFullName() {
-		return fullName;
-	}
+    @Override
+    public synchronized String getFullName() {
+        return fullName;
+    }
 
-	@Override
-	public synchronized Message getMessage(int msgnum)
-			throws MessagingException {
-		checkExists();
-		if (messages.size() < msgnum) {
-			throw new MessagingException();
-		}
-		return messages.get(msgnum - 1);
-	}
+    @Override
+    public synchronized Message getMessage(int msgnum)
+            throws MessagingException {
+        checkExists();
+        if (messages.size() < msgnum) {
+            throw new MessagingException();
+        }
+        return messages.get(msgnum - 1);
+    }
 
-	@Override
-	public synchronized Message getMessageByUID(long uid)
-			throws MessagingException {
-		checkExists();
-		return getMessage(new Long(uid).intValue());
-	}
+    @Override
+    public synchronized Message getMessageByUID(long uid)
+            throws MessagingException {
+        checkExists();
+        return getMessage(new Long(uid).intValue());
+    }
 
-	@Override
-	public synchronized int getMessageCount() throws MessagingException {
-		checkExists();
-		return messages.size();
-	}
+    @Override
+    public synchronized int getMessageCount() throws MessagingException {
+        checkExists();
+        return messages.size();
+    }
 
-	@Override
-	public synchronized Message[] getMessagesByUID(long uidstart, long uidend)
-			throws MessagingException {
-		checkExists();
-		return getMessages(new Long(uidstart).intValue(), new Long(uidend)
-				.intValue());
-	}
+    @Override
+    public synchronized Message[] getMessagesByUID(long uidstart, long uidend)
+            throws MessagingException {
+        checkExists();
+        return getMessages(new Long(uidstart).intValue(), new Long(uidend)
+                .intValue());
+    }
 
-	@Override
-	public synchronized Message[] getMessagesByUID(long[] uids)
-			throws MessagingException {
-		checkExists();
-		int ints[] = new int[uids.length];
-		for (int i = 0; i < uids.length; i++) {
-			ints[i] = new Long(uids[i]).intValue();
-		}
-		return getMessages(ints);
-	}
+    @Override
+    public synchronized Message[] getMessagesByUID(long[] uids)
+            throws MessagingException {
+        checkExists();
+        int ints[] = new int[uids.length];
+        for (int i = 0; i < uids.length; i++) {
+            ints[i] = new Long(uids[i]).intValue();
+        }
+        return getMessages(ints);
+    }
 
-	@Override
-	public synchronized String getName() {
-		return name;
-	}
+    @Override
+    public synchronized String getName() {
+        return name;
+    }
 
-	@Override
-	public synchronized int getNewMessageCount() throws MessagingException {
-		checkExists();
-		return 0;
-	}
+    @Override
+    public synchronized int getNewMessageCount() throws MessagingException {
+        checkExists();
+        return 0;
+    }
 
-	@Override
-	public synchronized Folder getParent() throws MessagingException {
-		return ((MockIMAPStore) store).getParent(this);
-	}
+    @Override
+    public synchronized Folder getParent() throws MessagingException {
+        return ((MockIMAPStore) store).getParent(this);
+    }
 
-	@Override
-	public void idle() throws MessagingException {
-		checkExists();
-	}
+    @Override
+    public void idle() throws MessagingException {
+        checkExists();
+    }
 
-	@Override
-	public synchronized boolean isOpen() {
-		return closed == false;
-	}
+    @Override
+    public synchronized boolean isOpen() {
+        return closed == false;
+    }
 
-	@Override
-	public synchronized boolean isSubscribed() {
-		return true;
-	}
+    @Override
+    public synchronized boolean isSubscribed() {
+        return true;
+    }
 
-	@Override
-	public synchronized void open(int arg0) throws MessagingException {
-		checkExists();
-		closed = false;
-	}
+    @Override
+    public synchronized void open(int arg0) throws MessagingException {
+        checkExists();
+        closed = false;
+    }
 
-	@Override
-	public synchronized boolean renameTo(Folder f) throws MessagingException {
-		checkExists();
-		return false;
-	}
+    @Override
+    public synchronized boolean renameTo(Folder f) throws MessagingException {
+        checkExists();
+        return false;
+    }
 
-	@Override
-	public synchronized Message[] search(SearchTerm arg0, Message[] arg1)
-			throws MessagingException {
-		checkExists();
-		return arg1;
-	}
+    @Override
+    public synchronized Message[] search(SearchTerm arg0, Message[] arg1)
+            throws MessagingException {
+        checkExists();
+        return arg1;
+    }
 
-	@Override
-	public synchronized Message[] expunge() throws MessagingException {
-		checkExists();
-		return expunge(messages.toArray(new Message[messages.size()]));
-	}
+    @Override
+    public synchronized Message[] expunge() throws MessagingException {
+        checkExists();
+        return expunge(messages.toArray(new Message[messages.size()]));
+    }
 
-	@Override
-	public synchronized Message[] expunge(Message[] msgs)
-			throws MessagingException {
-		checkExists();
-		List<Message> mList = new ArrayList<Message>();
-		for (int i = 0; i < msgs.length; i++) {
-			Message m = msgs[i];
-			if (m.getFlags().contains(Flag.DELETED)) {
-				if (messages.remove(m)) {
-					mList.add(m);
-				}
-			}
-		}
-		return mList.toArray(new Message[mList.size()]);
-	}
+    @Override
+    public synchronized Message[] expunge(Message[] msgs)
+            throws MessagingException {
+        checkExists();
+        List<Message> mList = new ArrayList<Message>();
+        for (int i = 0; i < msgs.length; i++) {
+            Message m = msgs[i];
+            if (m.getFlags().contains(Flag.DELETED)) {
+                if (messages.remove(m)) {
+                    mList.add(m);
+                }
+            }
+        }
+        return mList.toArray(new Message[mList.size()]);
+    }
 
-	@Override
-	public synchronized Message[] search(SearchTerm arg0)
-			throws MessagingException {
-		checkExists();
-		return getMessages();
-	}
+    @Override
+    public synchronized Message[] search(SearchTerm arg0)
+            throws MessagingException {
+        checkExists();
+        return getMessages();
+    }
 
-	@Override
-	public synchronized void setFlags(Message[] mArray, Flags flags,
-			boolean value) throws MessagingException {
-		checkExists();
-		for (int i = 0; i < mArray.length; i++) {
-			Message m = mArray[i];
-			for (int a = 0; a < messages.size(); a++) {
-				Message m2 = messages.get(a);
-				if (m2.equals(m)) {
-					m2.setFlags(flags, value);
-					break;
-				}
-			}
-		}
-	}
+    @Override
+    public synchronized void setFlags(Message[] mArray, Flags flags,
+            boolean value) throws MessagingException {
+        checkExists();
+        for (int i = 0; i < mArray.length; i++) {
+            Message m = mArray[i];
+            for (int a = 0; a < messages.size(); a++) {
+                Message m2 = messages.get(a);
+                if (m2.equals(m)) {
+                    m2.setFlags(flags, value);
+                    break;
+                }
+            }
+        }
+    }
 
-	@Override
-	public synchronized Message[] getMessages() throws MessagingException {
-		checkExists();
-		return messages.toArray(new Message[messages.size()]);
+    @Override
+    public synchronized Message[] getMessages() throws MessagingException {
+        checkExists();
+        return messages.toArray(new Message[messages.size()]);
 
-	}
+    }
 
-	@Override
-	public synchronized Message[] getMessages(int start, int end)
-			throws MessagingException {
-		checkExists();
-		int realStart = start - 1;
-		int realEnd = end - 1;
-		int range = realEnd - realStart;
-		int count = 0;
-		Message[] array = new Message[range];
-		while (realStart < realEnd) {
-			array[count] = messages.get(realStart);
-			realStart++;
-			count++;
-		}
-		return array;
-	}
+    @Override
+    public synchronized Message[] getMessages(int start, int end)
+            throws MessagingException {
+        checkExists();
+        int realStart = start - 1;
+        int realEnd = end - 1;
+        int range = realEnd - realStart;
+        int count = 0;
+        Message[] array = new Message[range];
+        while (realStart < realEnd) {
+            array[count] = messages.get(realStart);
+            realStart++;
+            count++;
+        }
+        return array;
+    }
 
-	@Override
-	public synchronized Message[] getMessages(int[] ints)
-			throws MessagingException {
-		checkExists();
-		Message[] array = new Message[ints.length];
+    @Override
+    public synchronized Message[] getMessages(int[] ints)
+            throws MessagingException {
+        checkExists();
+        Message[] array = new Message[ints.length];
 
-		for (int i = 0; i < ints.length; i++) {
-			int mInt = ints[i] - 1;
-			if (mInt > messages.size() || mInt < messages.size()) {
-				throw new MessagingException();
-			}
-			array[i] = messages.get(i);
-		}
-		return array;
-	}
+        for (int i = 0; i < ints.length; i++) {
+            int mInt = ints[i] - 1;
+            if (mInt > messages.size() || mInt < messages.size()) {
+                throw new MessagingException();
+            }
+            array[i] = messages.get(i);
+        }
+        return array;
+    }
 
-	@Override
-	public Store getStore() {
-		return store;
-	}
+    @Override
+    public Store getStore() {
+        return store;
+    }
 
-	@Override
-	public synchronized void setFlags(int arg0, int arg1, Flags arg2,
-			boolean arg3) throws MessagingException {
-		checkExists();
-	}
+    @Override
+    public synchronized void setFlags(int arg0, int arg1, Flags arg2,
+            boolean arg3) throws MessagingException {
+        checkExists();
+    }
 
-	@Override
-	public synchronized void setFlags(int[] arg0, Flags arg1, boolean arg2)
-			throws MessagingException {
-		checkExists();
-	}
+    @Override
+    public synchronized void setFlags(int[] arg0, Flags arg1, boolean arg2)
+            throws MessagingException {
+        checkExists();
+    }
 
-	@Override
-	public synchronized long getUID(Message message) throws MessagingException {
-		checkExists();
-		return messages.indexOf(message);
-	}
+    @Override
+    public synchronized long getUID(Message message) throws MessagingException {
+        checkExists();
+        return messages.indexOf(message);
+    }
 
-	@Override
-	public synchronized int getUnreadMessageCount() throws MessagingException {
-		return 1900;
-	}
+    @Override
+    public synchronized int getUnreadMessageCount() throws MessagingException {
+        return 1900;
+    }
 
-	private void checkExists() throws MessagingException {
-		if (exists() == false) {
-			throw new MessagingException("Folder not exists");
-		}
-	}
+    private void checkExists() throws MessagingException {
+        if (exists() == false) {
+            throw new MessagingException("Folder not exists");
+        }
+    }
 
 }
Index: server/src/test/java/org/apache/hupa/server/mock/MockHttpSession.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/mock/MockHttpSession.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/mock/MockHttpSession.java	(working copy)
@@ -32,100 +32,100 @@
 
 @SuppressWarnings("deprecation")
 public class MockHttpSession implements HttpSession{
-	private Map<String,Object> attributeMap = new HashMap<String, Object>();
-	private Map<String,Object> valueMap = new HashMap<String, Object>();
-	private long cTime;
-	private String id;
-	
-	public MockHttpSession(String id) {
-		cTime = System.currentTimeMillis();
-		this.id = id;
-	}
-	
-	public Object getAttribute(String name) {
-		return attributeMap.get(name);
-	}
+    private Map<String,Object> attributeMap = new HashMap<String, Object>();
+    private Map<String,Object> valueMap = new HashMap<String, Object>();
+    private long cTime;
+    private String id;
+    
+    public MockHttpSession(String id) {
+        cTime = System.currentTimeMillis();
+        this.id = id;
+    }
+    
+    public Object getAttribute(String name) {
+        return attributeMap.get(name);
+    }
 
-	
-	@SuppressWarnings("unchecked")
-	public Enumeration getAttributeNames() {
-		return new Enumeration() {
-			Iterator it = attributeMap.keySet().iterator();
-			public boolean hasMoreElements() {
-				return it.hasNext();
-			}
+    
+    @SuppressWarnings("unchecked")
+    public Enumeration getAttributeNames() {
+        return new Enumeration() {
+            Iterator it = attributeMap.keySet().iterator();
+            public boolean hasMoreElements() {
+                return it.hasNext();
+            }
 
-			public Object nextElement() {
-				return it.next();
-			}
-			
-		};
-	}
+            public Object nextElement() {
+                return it.next();
+            }
+            
+        };
+    }
 
-	public long getCreationTime() {
-		return cTime;
-	}
+    public long getCreationTime() {
+        return cTime;
+    }
 
-	public String getId() {
-		return id;
-	}
+    public String getId() {
+        return id;
+    }
 
-	public long getLastAccessedTime() {
-		return 0;
-	}
+    public long getLastAccessedTime() {
+        return 0;
+    }
 
-	public int getMaxInactiveInterval() {
-		return 0;
-	}
+    public int getMaxInactiveInterval() {
+        return 0;
+    }
 
-	public ServletContext getServletContext() {
-		return null;
-	}
+    public ServletContext getServletContext() {
+        return null;
+    }
 
-	public HttpSessionContext getSessionContext() {
-		return null;
-	}
+    public HttpSessionContext getSessionContext() {
+        return null;
+    }
 
-	public Object getValue(String name) {
-		return valueMap.get(name);
-	}
+    public Object getValue(String name) {
+        return valueMap.get(name);
+    }
 
-	public String[] getValueNames() {
-		List<String> names = new ArrayList<String>();
-		Iterator<String> it = valueMap.keySet().iterator();
-		while (it.hasNext()) {
-			names.add(it.next());
-		}
-		return names.toArray(new String[names.size()]);
-	}
+    public String[] getValueNames() {
+        List<String> names = new ArrayList<String>();
+        Iterator<String> it = valueMap.keySet().iterator();
+        while (it.hasNext()) {
+            names.add(it.next());
+        }
+        return names.toArray(new String[names.size()]);
+    }
 
-	public void invalidate() {
-	}
+    public void invalidate() {
+    }
 
-	public boolean isNew() {
-		return false;
-	}
+    public boolean isNew() {
+        return false;
+    }
 
-	public void putValue(String name, Object value) {
-		valueMap.put(name, value);
-	}
+    public void putValue(String name, Object value) {
+        valueMap.put(name, value);
+    }
 
-	public void removeAttribute(String name) {
-		attributeMap.remove(name);
-	}
+    public void removeAttribute(String name) {
+        attributeMap.remove(name);
+    }
 
-	public void removeValue(String name) {
-		valueMap.remove(name);
-	
-	}
+    public void removeValue(String name) {
+        valueMap.remove(name);
+    
+    }
 
-	public void setAttribute(String name, Object value) {
-		attributeMap.put(name, value);
-	}
+    public void setAttribute(String name, Object value) {
+        attributeMap.put(name, value);
+    }
 
-	public void setMaxInactiveInterval(int interval) {
-		// TODO Auto-generated method stub
-		
-	}
+    public void setMaxInactiveInterval(int interval) {
+        // TODO Auto-generated method stub
+        
+    }
 
 }
Index: server/src/test/java/org/apache/hupa/server/mock/MockIMAPStore.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/mock/MockIMAPStore.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/mock/MockIMAPStore.java	(working copy)
@@ -34,145 +34,145 @@
 
 public class MockIMAPStore extends IMAPStore{
 
-	private Map<String, String> validLogins = new HashMap<String, String>();
-	private Map<String, Integer> validServers = new HashMap<String, Integer>();
-	private boolean connected = false;
-	private List<MockIMAPFolder> folders = new ArrayList<MockIMAPFolder>();
-	
-	public MockIMAPStore(Session session, URLName url) {
-		super(session, url);
-	}
+    private Map<String, String> validLogins = new HashMap<String, String>();
+    private Map<String, Integer> validServers = new HashMap<String, Integer>();
+    private boolean connected = false;
+    private List<MockIMAPFolder> folders = new ArrayList<MockIMAPFolder>();
+    
+    public MockIMAPStore(Session session, URLName url) {
+        super(session, url);
+    }
 
-	public static Provider getProvider() {
-		return new Provider(Provider.Type.STORE,"mockimap",MockIMAPStore.class.getName(),"","");
-	}
-	
-	public boolean save(MockIMAPFolder folder) {
-		for (int i= 0; i < folders.size(); i++) {
-			if (folders.get(i).getFullName().equals(folder.getFullName())) {
-				return false;
-			}
-		}
-		folders.add(folder);
-		return true;
-	} 
-	
-	public boolean delete(MockIMAPFolder folder, boolean recursive) {
-		boolean found = false;
-		for (int i= 0; i < folders.size(); i++) {
-			if (folders.get(i).getFullName().equals(folder.getFullName())) {
-				folders.remove(i);
-				found = true;
-				if(recursive == false) {
-					break;
-				}
-			} else if (folders.get(i).getFullName().startsWith(folder.getFullName() + MockIMAPFolder.SEPERATOR)) {
-				folders.remove(i);
-			}
-			
-		}
-		return found;
-	} 
-	
-	public MockIMAPFolder getParent(MockIMAPFolder folder) {
-		for (int i = 0; i < folders.size(); i++) {
-			MockIMAPFolder f = folders.get(i);
-			if ((f.getFullName() +MockIMAPFolder.SEPERATOR + folder.getName()).equals(folder.getFullName())) {
-				return f;
-			}
-		}
-		return null;
-	}
-	
-	public List<MockIMAPFolder> getChilds(MockIMAPFolder folder) {
-		List<MockIMAPFolder> childs = new ArrayList<MockIMAPFolder>();
-		for (int i = 0; i < folders.size(); i++) {
-			MockIMAPFolder f = folders.get(i);
-			if (f.getFullName().startsWith(folder.getFullName() + MockIMAPFolder.SEPERATOR)) {
-				childs.add(f);
-			}
-		}
-		return childs;
-	}
-	public void setValidLogins(Map<String,String> validLogins) {
-		this.validLogins = validLogins;
-	}
+    public static Provider getProvider() {
+        return new Provider(Provider.Type.STORE,"mockimap",MockIMAPStore.class.getName(),"","");
+    }
+    
+    public boolean save(MockIMAPFolder folder) {
+        for (int i= 0; i < folders.size(); i++) {
+            if (folders.get(i).getFullName().equals(folder.getFullName())) {
+                return false;
+            }
+        }
+        folders.add(folder);
+        return true;
+    } 
+    
+    public boolean delete(MockIMAPFolder folder, boolean recursive) {
+        boolean found = false;
+        for (int i= 0; i < folders.size(); i++) {
+            if (folders.get(i).getFullName().equals(folder.getFullName())) {
+                folders.remove(i);
+                found = true;
+                if(recursive == false) {
+                    break;
+                }
+            } else if (folders.get(i).getFullName().startsWith(folder.getFullName() + MockIMAPFolder.SEPERATOR)) {
+                folders.remove(i);
+            }
+            
+        }
+        return found;
+    } 
+    
+    public MockIMAPFolder getParent(MockIMAPFolder folder) {
+        for (int i = 0; i < folders.size(); i++) {
+            MockIMAPFolder f = folders.get(i);
+            if ((f.getFullName() +MockIMAPFolder.SEPERATOR + folder.getName()).equals(folder.getFullName())) {
+                return f;
+            }
+        }
+        return null;
+    }
+    
+    public List<MockIMAPFolder> getChilds(MockIMAPFolder folder) {
+        List<MockIMAPFolder> childs = new ArrayList<MockIMAPFolder>();
+        for (int i = 0; i < folders.size(); i++) {
+            MockIMAPFolder f = folders.get(i);
+            if (f.getFullName().startsWith(folder.getFullName() + MockIMAPFolder.SEPERATOR)) {
+                childs.add(f);
+            }
+        }
+        return childs;
+    }
+    public void setValidLogins(Map<String,String> validLogins) {
+        this.validLogins = validLogins;
+    }
 
-	public void setValidServers(Map<String,Integer> validServers) {
-		this.validServers = validServers;
-	}
-	
-	public void clear() {
-		validLogins.clear();
-		validServers.clear();
-		folders.clear();
-		connected = false;
-	}
-	
-	@Override
-	public synchronized void close() throws MessagingException {
-		connected = false;
-	}
+    public void setValidServers(Map<String,Integer> validServers) {
+        this.validServers = validServers;
+    }
+    
+    public void clear() {
+        validLogins.clear();
+        validServers.clear();
+        folders.clear();
+        connected = false;
+    }
+    
+    @Override
+    public synchronized void close() throws MessagingException {
+        connected = false;
+    }
 
-	@Override
-	public synchronized Folder getDefaultFolder() throws MessagingException {
-		return getFolder("INBOX");
-	}
+    @Override
+    public synchronized Folder getDefaultFolder() throws MessagingException {
+        return getFolder("INBOX");
+    }
 
-	@Override
-	public synchronized Folder getFolder(String name) throws MessagingException {
-		for (int i = 0; i < folders.size(); i++) {
-			MockIMAPFolder mfolder = folders.get(i);
-			if (mfolder.getFullName().equals(name)) {
-				return mfolder;
-			}
-		}
-		return new MockIMAPFolder(name,this);
-	}
+    @Override
+    public synchronized Folder getFolder(String name) throws MessagingException {
+        for (int i = 0; i < folders.size(); i++) {
+            MockIMAPFolder mfolder = folders.get(i);
+            if (mfolder.getFullName().equals(name)) {
+                return mfolder;
+            }
+        }
+        return new MockIMAPFolder(name,this);
+    }
 
-	@Override
-	public void idle() throws MessagingException {
-		// nothing todo
-	}
+    @Override
+    public void idle() throws MessagingException {
+        // nothing todo
+    }
 
-	@Override
-	public synchronized boolean isConnected() {
-		return connected;
-	}
+    @Override
+    public synchronized boolean isConnected() {
+        return connected;
+    }
 
-	@Override
-	public void connect() throws MessagingException {
-		connected = true;
-	}
+    @Override
+    public void connect() throws MessagingException {
+        connected = true;
+    }
 
-	@Override
-	public synchronized void connect(String host, int port, String username,
-			String password) throws MessagingException {
-		Integer myPort = validServers.get(host);
-		if (myPort != null && myPort.intValue() == port) {
-			connect(username,password);
-		}
-		throw new MessagingException("Can't connect to host");
+    @Override
+    public synchronized void connect(String host, int port, String username,
+            String password) throws MessagingException {
+        Integer myPort = validServers.get(host);
+        if (myPort != null && myPort.intValue() == port) {
+            connect(username,password);
+        }
+        throw new MessagingException("Can't connect to host");
 
-	}
+    }
 
-	@Override
-	public void connect(String host, String user, String password)
-			throws MessagingException {
-		if (validServers.containsKey(host) == false) {
-			throw new MessagingException("Can't connect to host");
-		}
-		connect(user,password);
-	}
+    @Override
+    public void connect(String host, String user, String password)
+            throws MessagingException {
+        if (validServers.containsKey(host) == false) {
+            throw new MessagingException("Can't connect to host");
+        }
+        connect(user,password);
+    }
 
-	@Override
-	public void connect(String user, String password) throws MessagingException {
-		String pass = validLogins.get(user);
-		if (pass != null && validLogins.get(user).equals(password)) {
-			connect();
-			return;
-		} 
-		throw new AuthenticationFailedException("Invalid login");
-	}
+    @Override
+    public void connect(String user, String password) throws MessagingException {
+        String pass = validLogins.get(user);
+        if (pass != null && validLogins.get(user).equals(password)) {
+            connect();
+            return;
+        } 
+        throw new AuthenticationFailedException("Invalid login");
+    }
 
 }
Index: server/src/test/java/org/apache/hupa/server/guice/ServerModulTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/guice/ServerModulTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/guice/ServerModulTest.java	(working copy)
@@ -27,54 +27,54 @@
 import org.junit.Test;
 
 public class ServerModulTest {
-	private String tmpDir = System.getProperty("java.io.tmpdir");
-	private ServerModul module = new ServerModul(tmpDir);
+    private String tmpDir = System.getProperty("java.io.tmpdir");
+    private ServerModul module = new ServerModul(tmpDir);
 
-	@Before
-	public void setUp() {
-		// create config directory
-		File f = new File(tmpDir + File.separator + ServerModul.CONF_DIR);
-		f.delete();
-		f.deleteOnExit();
-		f.mkdirs();
-	}
-	
-	@Test
-	public void testLoadProperties() throws Exception {
+    @Before
+    public void setUp() {
+        // create config directory
+        File f = new File(tmpDir + File.separator + ServerModul.CONF_DIR);
+        f.delete();
+        f.deleteOnExit();
+        f.mkdirs();
+    }
+    
+    @Test
+    public void testLoadProperties() throws Exception {
 
-		String fileName = tmpDir + File.separator +"foo.properties";
-		File file = new File(fileName);
-		file.createNewFile();
-		Properties p = module.loadProperties(fileName);
-		Assert.assertNotNull(p);
-		Assert.assertNull(p.get("IMAPServerAddress"));
-		file.delete();
-		
-		// load file from not absolute file
-		fileName = tmpDir + File.separator + ServerModul.CONF_DIR + File.separator + "foo2.properties";
-		file = new File(fileName);
-		file.createNewFile();
-		p = module.loadProperties(file.getName());
-		Assert.assertNotNull(p);
-		Assert.assertNull(p.get("IMAPServerAddress"));
-		file.delete();
-	}
+        String fileName = tmpDir + File.separator +"foo.properties";
+        File file = new File(fileName);
+        file.createNewFile();
+        Properties p = module.loadProperties(fileName);
+        Assert.assertNotNull(p);
+        Assert.assertNull(p.get("IMAPServerAddress"));
+        file.delete();
+        
+        // load file from not absolute file
+        fileName = tmpDir + File.separator + ServerModul.CONF_DIR + File.separator + "foo2.properties";
+        file = new File(fileName);
+        file.createNewFile();
+        p = module.loadProperties(file.getName());
+        Assert.assertNotNull(p);
+        Assert.assertNull(p.get("IMAPServerAddress"));
+        file.delete();
+    }
 
-	@Test
-	public void testLoadPropertiesWithEmptyFile() throws Exception {
-		File tmp = File.createTempFile("foo", ".properties");
-		tmp.deleteOnExit();
+    @Test
+    public void testLoadPropertiesWithEmptyFile() throws Exception {
+        File tmp = File.createTempFile("foo", ".properties");
+        tmp.deleteOnExit();
 
-		Properties p = module.loadProperties(tmp.toString());
-		Assert.assertNotNull(p);
-		Assert.assertNull(p.get("IMAPServerAddress"));
+        Properties p = module.loadProperties(tmp.toString());
+        Assert.assertNotNull(p);
+        Assert.assertNull(p.get("IMAPServerAddress"));
 
-		System.setProperty(ServerModul.SYS_PROP_CONFIG_FILE, tmp.toString());
-		p = module.loadProperties();
-		Assert.assertNotNull(p);
-		Assert.assertNull(p.get("IMAPServerAddress"));
-		System.clearProperty(ServerModul.SYS_PROP_CONFIG_FILE);
+        System.setProperty(ServerModul.SYS_PROP_CONFIG_FILE, tmp.toString());
+        p = module.loadProperties();
+        Assert.assertNotNull(p);
+        Assert.assertNull(p.get("IMAPServerAddress"));
+        System.clearProperty(ServerModul.SYS_PROP_CONFIG_FILE);
 
-	}
+    }
 
 }
Index: server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/handler/AbstractHandlerTest.java	(working copy)
@@ -36,36 +36,36 @@
 import junit.framework.TestCase;
 
 public abstract class AbstractHandlerTest extends TestCase{
-	public final static String VALID_ID ="VALID_ID";
-	
-	protected HttpSession session = new MockHttpSession(VALID_ID);
-	
-	protected MockIMAPStoreCache storeCache = new MockIMAPStoreCache( new Provider<Session>() {
+    public final static String VALID_ID ="VALID_ID";
+    
+    protected HttpSession session = new MockHttpSession(VALID_ID);
+    
+    protected MockIMAPStoreCache storeCache = new MockIMAPStoreCache( new Provider<Session>() {
 
-		public Session get() {
-			Session session = Session.getDefaultInstance(new Properties());
-			session.addProvider(MockIMAPStore.getProvider());
-			return session;
-		}
-		
-	});
-	
-	protected Provider<HttpSession> sessionProvider = new Provider<HttpSession>() {
-		public HttpSession get() {
-			return session;
-		}
-		
-	};
-	
-	public void tearDown() {
-		storeCache.clear();
-	}
-	
-	protected User createUser() {
-		User user = new User();
-		user.setName("test");
-		user.setPassword("password");
-		user.setSettings(new Settings());
-		return user;
-	}
+        public Session get() {
+            Session session = Session.getDefaultInstance(new Properties());
+            session.addProvider(MockIMAPStore.getProvider());
+            return session;
+        }
+        
+    });
+    
+    protected Provider<HttpSession> sessionProvider = new Provider<HttpSession>() {
+        public HttpSession get() {
+            return session;
+        }
+        
+    };
+    
+    public void tearDown() {
+        storeCache.clear();
+    }
+    
+    protected User createUser() {
+        User user = new User();
+        user.setName("test");
+        user.setPassword("password");
+        user.setSettings(new Settings());
+        return user;
+    }
 }
Index: server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/handler/DeleteMessageByUidHandlerTest.java	(working copy)
@@ -40,90 +40,90 @@
 
 public class DeleteMessageByUidHandlerTest extends AbstractHandlerTest{
 
-	
-	public void testDeleteFolderNotExists() throws MessagingException {
-		DeleteMessageByUidHandler handler = new DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
-	
-		User user = createUser();
-		storeCache.addValidUser(user.getName(), user.getPassword());
-		session.setAttribute("user", user);
-		IMAPFolder folder = new IMAPFolder();
-		folder.setFullName("NOT_EXISTS");
-		DeleteMessageByUid action = new DeleteMessageByUid(folder,new ArrayList<Long>());
+    
+    public void testDeleteFolderNotExists() throws MessagingException {
+        DeleteMessageByUidHandler handler = new DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
+    
+        User user = createUser();
+        storeCache.addValidUser(user.getName(), user.getPassword());
+        session.setAttribute("user", user);
+        IMAPFolder folder = new IMAPFolder();
+        folder.setFullName("NOT_EXISTS");
+        DeleteMessageByUid action = new DeleteMessageByUid(folder,new ArrayList<Long>());
 
-		try {
-			handler.execute(action, null);
-			fail("Folder should not exists!");
-		} catch (ActionException e) {
-			//e.printStackTrace();
-		}
-	}
-	
-	public void testDeleteFolderExistsAndNotTrash() throws MessagingException {
-		Session s = Session.getInstance(new Properties());
-		DeleteMessageByUidHandler handler = new DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
-	
-		User user = createUser();
-		storeCache.addValidUser(user.getName(), user.getPassword());
-		session.setAttribute("user", user);
-		IMAPFolder folder = new IMAPFolder();
-		folder.setFullName("EXISTS");
-		MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
-		store.clear();
+        try {
+            handler.execute(action, null);
+            fail("Folder should not exists!");
+        } catch (ActionException e) {
+            //e.printStackTrace();
+        }
+    }
+    
+    public void testDeleteFolderExistsAndNotTrash() throws MessagingException {
+        Session s = Session.getInstance(new Properties());
+        DeleteMessageByUidHandler handler = new DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
+    
+        User user = createUser();
+        storeCache.addValidUser(user.getName(), user.getPassword());
+        session.setAttribute("user", user);
+        IMAPFolder folder = new IMAPFolder();
+        folder.setFullName("EXISTS");
+        MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
+        store.clear();
 
-		MockIMAPFolder f = (MockIMAPFolder)store.getFolder(folder.getFullName());
-		f.create(Folder.HOLDS_FOLDERS);
-		f.addMessages(new Message[] { new MimeMessage(s), new MimeMessage(s), new MimeMessage(s)});
-		ArrayList<Long> uids = new ArrayList<Long>();
-		uids.add(new Long(1));
-		uids.add(new Long(3));
-		DeleteMessageByUid action = new DeleteMessageByUid(folder, uids);
+        MockIMAPFolder f = (MockIMAPFolder)store.getFolder(folder.getFullName());
+        f.create(Folder.HOLDS_FOLDERS);
+        f.addMessages(new Message[] { new MimeMessage(s), new MimeMessage(s), new MimeMessage(s)});
+        ArrayList<Long> uids = new ArrayList<Long>();
+        uids.add(new Long(1));
+        uids.add(new Long(3));
+        DeleteMessageByUid action = new DeleteMessageByUid(folder, uids);
 
-		MockIMAPFolder f3 = (MockIMAPFolder) store.getFolder(user.getSettings().getTrashFolderName());
-		assertFalse("Trash folder not exists yet",f3.exists());
-		
-		try {
-			DeleteMessageResult result = handler.execute(action, null);
-			int count = result.getCount();
-			assertEquals("Only 1 message left", 1, f.getMessageCount());
-			
-			MockIMAPFolder f2 = (MockIMAPFolder) store.getFolder(user.getSettings().getTrashFolderName());
-			assertTrue("Trash folder created",f2.exists());
-			assertEquals("2 messages moved", 2, f2.getMessageCount());
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-	}
-	
-	public void testDeleteFolderExistsAndIsTrash() throws MessagingException {
-		Session s = Session.getInstance(new Properties());
-		DeleteMessageByUidHandler handler = new DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
-	
-		User user = createUser();
-		storeCache.addValidUser(user.getName(), user.getPassword());
-		session.setAttribute("user", user);
-		IMAPFolder folder = new IMAPFolder();
-		folder.setFullName(user.getSettings().getTrashFolderName());
-		MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
-		store.clear();
-		
-		MockIMAPFolder f = (MockIMAPFolder)store.getFolder(folder.getFullName());
-		f.create(Folder.HOLDS_FOLDERS);
-		f.addMessages(new Message[] { new MimeMessage(s), new MimeMessage(s), new MimeMessage(s)});
-		ArrayList<Long> uids = new ArrayList<Long>();
-		uids.add(new Long(1));
-		uids.add(new Long(3));
-		DeleteMessageByUid action = new DeleteMessageByUid(folder, uids);
+        MockIMAPFolder f3 = (MockIMAPFolder) store.getFolder(user.getSettings().getTrashFolderName());
+        assertFalse("Trash folder not exists yet",f3.exists());
+        
+        try {
+            DeleteMessageResult result = handler.execute(action, null);
+            int count = result.getCount();
+            assertEquals("Only 1 message left", 1, f.getMessageCount());
+            
+            MockIMAPFolder f2 = (MockIMAPFolder) store.getFolder(user.getSettings().getTrashFolderName());
+            assertTrue("Trash folder created",f2.exists());
+            assertEquals("2 messages moved", 2, f2.getMessageCount());
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+    
+    public void testDeleteFolderExistsAndIsTrash() throws MessagingException {
+        Session s = Session.getInstance(new Properties());
+        DeleteMessageByUidHandler handler = new DeleteMessageByUidHandler(storeCache,new MockLog(),sessionProvider);
+    
+        User user = createUser();
+        storeCache.addValidUser(user.getName(), user.getPassword());
+        session.setAttribute("user", user);
+        IMAPFolder folder = new IMAPFolder();
+        folder.setFullName(user.getSettings().getTrashFolderName());
+        MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
+        store.clear();
+        
+        MockIMAPFolder f = (MockIMAPFolder)store.getFolder(folder.getFullName());
+        f.create(Folder.HOLDS_FOLDERS);
+        f.addMessages(new Message[] { new MimeMessage(s), new MimeMessage(s), new MimeMessage(s)});
+        ArrayList<Long> uids = new ArrayList<Long>();
+        uids.add(new Long(1));
+        uids.add(new Long(3));
+        DeleteMessageByUid action = new DeleteMessageByUid(folder, uids);
 
-		try {
-			DeleteMessageResult result = handler.execute(action, null);
-			int count = result.getCount();
+        try {
+            DeleteMessageResult result = handler.execute(action, null);
+            int count = result.getCount();
 
-			assertEquals("Only 1 message left", 1, f.getMessageCount());
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-	}
+            assertEquals("Only 1 message left", 1, f.getMessageCount());
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
 }
Index: server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/handler/LoginUserHandlerTest.java	(working copy)
@@ -30,39 +30,39 @@
 import com.google.inject.Provider;
 
 public class LoginUserHandlerTest extends AbstractHandlerTest{
-	private LoginUserHandler handler = new LoginUserHandler(storeCache, new MockLog(),sessionProvider, new Provider<Settings>() {
+    private LoginUserHandler handler = new LoginUserHandler(storeCache, new MockLog(),sessionProvider, new Provider<Settings>() {
 
-		public Settings get() {
-			return new Settings();
-		}
-	});
-	public void testInvalidLogin() {
-		try {
-			handler.execute(new LoginUser("invalid","invalid"), null);
-			fail("Should throw an exception");
-		} catch (ActionException e) {
-			//e.printStackTrace();
-		}
-		assertNull("no user stored in session", session.getAttribute("user"));
-	}
-	
-	public void testValidLogin() {
-		String username = "valid";
-		String password = "valid";
-		storeCache.addValidUser(username, password);
-		
-		try {
-			LoginUserResult result = handler.execute(new LoginUser(username,password), null);
-			User u = result.getUser();
-			
-			assertEquals("Authenticated", true, u.getAuthenticated());
-			assertEquals("Authenticated", username, u.getName());
-			assertEquals("Authenticated", password, u.getPassword());
-			assertEquals("User stored in session", u, session.getAttribute("user"));
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail("Should throw an exception");
-		}
-	}
-	
+        public Settings get() {
+            return new Settings();
+        }
+    });
+    public void testInvalidLogin() {
+        try {
+            handler.execute(new LoginUser("invalid","invalid"), null);
+            fail("Should throw an exception");
+        } catch (ActionException e) {
+            //e.printStackTrace();
+        }
+        assertNull("no user stored in session", session.getAttribute("user"));
+    }
+    
+    public void testValidLogin() {
+        String username = "valid";
+        String password = "valid";
+        storeCache.addValidUser(username, password);
+        
+        try {
+            LoginUserResult result = handler.execute(new LoginUser(username,password), null);
+            User u = result.getUser();
+            
+            assertEquals("Authenticated", true, u.getAuthenticated());
+            assertEquals("Authenticated", username, u.getName());
+            assertEquals("Authenticated", password, u.getPassword());
+            assertEquals("User stored in session", u, session.getAttribute("user"));
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail("Should throw an exception");
+        }
+    }
+    
 }
Index: server/src/test/java/org/apache/hupa/server/handler/FetchFoldersHandlerTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/handler/FetchFoldersHandlerTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/handler/FetchFoldersHandlerTest.java	(working copy)
@@ -36,61 +36,61 @@
 
 public class FetchFoldersHandlerTest extends AbstractHandlerTest{
 
-	public void testInvalidSessionId() {
-		User user = createUser();
-		FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
-		try {
-			handler.execute(new FetchFolders(), null);
-			fail("Invalid session");
-			
-		} catch (InvalidSessionException e) {
-			//e.printStackTrace();
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-	}
-	
-	public void testNoFolders() {
-		User user = createUser();
-		session.setAttribute("user", user);
-		storeCache.addValidUser(user.getName(), user.getPassword());
-		FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
-		try {
-			FetchFoldersResult result = handler.execute(new FetchFolders(), null);
-			assertTrue(result.getFolders().isEmpty());
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-	}
-	
-	public void testFoundFolders() throws MessagingException {
-		User user = createUser();
-		session.setAttribute("user", user);
-		storeCache.addValidUser(user.getName(), user.getPassword());
-		
-		MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
-		store.getFolder("INBOX.WHATEVER").create(Folder.HOLDS_FOLDERS);
-		store.getFolder("INBOX.WHATEVER1").create(Folder.HOLDS_FOLDERS);
-		store.getFolder("INBOX.WHATEVER.XXX").create(Folder.HOLDS_FOLDERS);
+    public void testInvalidSessionId() {
+        User user = createUser();
+        FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
+        try {
+            handler.execute(new FetchFolders(), null);
+            fail("Invalid session");
+            
+        } catch (InvalidSessionException e) {
+            //e.printStackTrace();
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+    
+    public void testNoFolders() {
+        User user = createUser();
+        session.setAttribute("user", user);
+        storeCache.addValidUser(user.getName(), user.getPassword());
+        FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
+        try {
+            FetchFoldersResult result = handler.execute(new FetchFolders(), null);
+            assertTrue(result.getFolders().isEmpty());
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+    
+    public void testFoundFolders() throws MessagingException {
+        User user = createUser();
+        session.setAttribute("user", user);
+        storeCache.addValidUser(user.getName(), user.getPassword());
+        
+        MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
+        store.getFolder("INBOX.WHATEVER").create(Folder.HOLDS_FOLDERS);
+        store.getFolder("INBOX.WHATEVER1").create(Folder.HOLDS_FOLDERS);
+        store.getFolder("INBOX.WHATEVER.XXX").create(Folder.HOLDS_FOLDERS);
 
-		FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
-		try {
-			FetchFoldersResult result = handler.execute(new FetchFolders(), null);
-			ArrayList<IMAPFolder> folders = result.getFolders();
-			assertFalse(folders.isEmpty());
-			assertEquals(3, folders.size());
-			assertEquals("INBOX.WHATEVER",folders.get(0).getFullName());
-			assertEquals("INBOX.WHATEVER1",folders.get(1).getFullName());
-			assertEquals("INBOX.WHATEVER.XXX",folders.get(2).getFullName());
-			assertEquals("XXX",folders.get(2).getName());
+        FetchFoldersHandler handler = new FetchFoldersHandler(storeCache,new MockLog(),sessionProvider);
+        try {
+            FetchFoldersResult result = handler.execute(new FetchFolders(), null);
+            ArrayList<IMAPFolder> folders = result.getFolders();
+            assertFalse(folders.isEmpty());
+            assertEquals(3, folders.size());
+            assertEquals("INBOX.WHATEVER",folders.get(0).getFullName());
+            assertEquals("INBOX.WHATEVER1",folders.get(1).getFullName());
+            assertEquals("INBOX.WHATEVER.XXX",folders.get(2).getFullName());
+            assertEquals("XXX",folders.get(2).getName());
 
-			assertEquals("INBOX.WHATEVER.XXX",folders.get(0).getChildIMAPFolders().get(0).getFullName());
+            assertEquals("INBOX.WHATEVER.XXX",folders.get(0).getChildIMAPFolders().get(0).getFullName());
 
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-	}
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
 }
Index: server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/handler/LogoutUserHandlerTest.java	(working copy)
@@ -29,25 +29,25 @@
 
 public class LogoutUserHandlerTest extends AbstractHandlerTest{
 
-	
-	public void testLogout() {
-		String username = "test";
-		String password = "pass";
-		User user = new User();
-		user.setName(username);
-		user.setPassword(password);
-		user.setAuthenticated(true);
-		session.setAttribute("user", user);
-		LogoutUserHandler handler = new LogoutUserHandler(storeCache,new MockLog(),sessionProvider);
-		try {
-			LogoutUserResult result = handler.execute(new LogoutUser(), null);
-			assertFalse("Not authenticated anymore", result.getUser().getAuthenticated());
-			assertNull("User removed", session.getAttribute("user"));
-			
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-		
-	}
+    
+    public void testLogout() {
+        String username = "test";
+        String password = "pass";
+        User user = new User();
+        user.setName(username);
+        user.setPassword(password);
+        user.setAuthenticated(true);
+        session.setAttribute("user", user);
+        LogoutUserHandler handler = new LogoutUserHandler(storeCache,new MockLog(),sessionProvider);
+        try {
+            LogoutUserResult result = handler.execute(new LogoutUser(), null);
+            assertFalse("Not authenticated anymore", result.getUser().getAuthenticated());
+            assertNull("User removed", session.getAttribute("user"));
+            
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+        
+    }
 }
Index: server/src/test/java/org/apache/hupa/server/handler/NoopHandlerTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/handler/NoopHandlerTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/handler/NoopHandlerTest.java	(working copy)
@@ -28,20 +28,20 @@
 
 public class NoopHandlerTest extends AbstractHandlerTest{
 
-	public void testNoop() {
-		NoopHandler handler = new NoopHandler(storeCache,new MockLog(),sessionProvider);
-		User user = createUser();
-		Noop action = new Noop();
-		storeCache.addValidUser(user.getName(), user.getPassword());
-		session.setAttribute("user", user);
-		try {
-			NoopResult result = handler.execute(action, null);
-			assertNotNull(result);
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
+    public void testNoop() {
+        NoopHandler handler = new NoopHandler(storeCache,new MockLog(),sessionProvider);
+        User user = createUser();
+        Noop action = new Noop();
+        storeCache.addValidUser(user.getName(), user.getPassword());
+        session.setAttribute("user", user);
+        try {
+            NoopResult result = handler.execute(action, null);
+            assertNotNull(result);
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
 
-		}
-		
-	}
+        }
+        
+    }
 }
Index: server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/handler/DeleteFolderHandlerTest.java	(working copy)
@@ -34,65 +34,65 @@
 
 public class DeleteFolderHandlerTest extends AbstractHandlerTest{
 
-	public void testDelete() throws MessagingException {
-		User user = createUser();
+    public void testDelete() throws MessagingException {
+        User user = createUser();
 
-		session.setAttribute("user", user);
-		storeCache.addValidUser(user.getName(),user.getPassword());
-		IMAPFolder folder = createFolder();
-		MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
-		Folder f1 = store.getFolder(folder.getFullName());
-		f1.create(Folder.HOLDS_FOLDERS);
-		
-		DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
+        session.setAttribute("user", user);
+        storeCache.addValidUser(user.getName(),user.getPassword());
+        IMAPFolder folder = createFolder();
+        MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
+        Folder f1 = store.getFolder(folder.getFullName());
+        f1.create(Folder.HOLDS_FOLDERS);
+        
+        DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
 
-		try {
-			handler.execute(new DeleteFolder(folder), null);
-			Folder f = store.getFolder(folder.getFullName());
-			assertFalse("not exists",f.exists());
-			
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-		
-	}
-	
-	public void testDeleteNonExistFolder() throws MessagingException {
-		User user = createUser();
+        try {
+            handler.execute(new DeleteFolder(folder), null);
+            Folder f = store.getFolder(folder.getFullName());
+            assertFalse("not exists",f.exists());
+            
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+        
+    }
+    
+    public void testDeleteNonExistFolder() throws MessagingException {
+        User user = createUser();
 
-		session.setAttribute("user", user);
-		storeCache.addValidUser(user.getName(),user.getPassword());
-		IMAPFolder folder = createFolder();
-		DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
+        session.setAttribute("user", user);
+        storeCache.addValidUser(user.getName(),user.getPassword());
+        IMAPFolder folder = createFolder();
+        DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
 
-		try {
-			handler.execute(new DeleteFolder(folder), null);
-			fail("Folder should not exist");
-		} catch (ActionException e) {
-			//e.printStackTrace();
-		}	
-	}
-	
-	public void testInvalidSessionId() {
-		IMAPFolder folder = createFolder();
-		DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
-		try {
-			handler.execute(new DeleteFolder(folder), null);
-			fail("Invalid session");
-			
-		} catch (InvalidSessionException e) {
-			//e.printStackTrace();
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-	}
-	
-	private IMAPFolder createFolder() {
-		IMAPFolder folder = new IMAPFolder();
-		folder.setFullName("NewFolder");
-		folder.setDelimiter(String.valueOf(MockIMAPFolder.SEPERATOR));
-		return folder;
-	}
+        try {
+            handler.execute(new DeleteFolder(folder), null);
+            fail("Folder should not exist");
+        } catch (ActionException e) {
+            //e.printStackTrace();
+        }    
+    }
+    
+    public void testInvalidSessionId() {
+        IMAPFolder folder = createFolder();
+        DeleteFolderHandler handler = new DeleteFolderHandler(storeCache,new MockLog(),sessionProvider);
+        try {
+            handler.execute(new DeleteFolder(folder), null);
+            fail("Invalid session");
+            
+        } catch (InvalidSessionException e) {
+            //e.printStackTrace();
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+    
+    private IMAPFolder createFolder() {
+        IMAPFolder folder = new IMAPFolder();
+        folder.setFullName("NewFolder");
+        folder.setDelimiter(String.valueOf(MockIMAPFolder.SEPERATOR));
+        return folder;
+    }
 }
Index: server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java
===================================================================
--- server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java	(revision 825462)
+++ server/src/test/java/org/apache/hupa/server/handler/CreateFolderHandlerTest.java	(working copy)
@@ -35,72 +35,72 @@
 
 public class CreateFolderHandlerTest extends AbstractHandlerTest{
 
-	
-	public void testCreate() throws MessagingException {
-		User user = createUser();
+    
+    public void testCreate() throws MessagingException {
+        User user = createUser();
 
-		session.setAttribute("user", user);
-		storeCache.addValidUser(user.getName(),user.getPassword());
-		IMAPFolder folder = createFolder();
-		MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
-		Folder f1 = store.getFolder(folder.getFullName());
-		assertFalse("not exists",f1.exists());
-		
-		CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
-		try {
-			handler.execute(new CreateFolder(folder), null);
-			Folder f = store.getFolder(folder.getFullName());
-			assertTrue("exists",f.exists());
-			
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-		
-	}
-	
-	
-	public void testDuplicateFolder() throws MessagingException {
-		User user = createUser();
+        session.setAttribute("user", user);
+        storeCache.addValidUser(user.getName(),user.getPassword());
+        IMAPFolder folder = createFolder();
+        MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
+        Folder f1 = store.getFolder(folder.getFullName());
+        assertFalse("not exists",f1.exists());
+        
+        CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
+        try {
+            handler.execute(new CreateFolder(folder), null);
+            Folder f = store.getFolder(folder.getFullName());
+            assertTrue("exists",f.exists());
+            
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+        
+    }
+    
+    
+    public void testDuplicateFolder() throws MessagingException {
+        User user = createUser();
 
-		session.setAttribute("user", user);
-		storeCache.addValidUser(user.getName(),user.getPassword());
-		IMAPFolder folder = createFolder();
-		MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
-		Folder f1 = store.getFolder(folder.getFullName());
-		
-		f1.create(Folder.HOLDS_FOLDERS);
+        session.setAttribute("user", user);
+        storeCache.addValidUser(user.getName(),user.getPassword());
+        IMAPFolder folder = createFolder();
+        MockIMAPStore store = (MockIMAPStore) storeCache.get(user);
+        Folder f1 = store.getFolder(folder.getFullName());
+        
+        f1.create(Folder.HOLDS_FOLDERS);
 
-		CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
-		try {
-			handler.execute(new CreateFolder(folder), null);
-			fail("Folder already exists");
-		} catch (ActionException e) {
-			// folder already exists
-			// e.printStackTrace();
-		}
-		
-	}
-	
-	public void testInvalidSessionId() {
-		IMAPFolder folder = createFolder();
-		CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
-		try {
-			handler.execute(new CreateFolder(folder), null);
-			fail("Invalid session");
-			
-		} catch (InvalidSessionException e) {
-			// e.printStackTrace();
-		} catch (ActionException e) {
-			e.printStackTrace();
-			fail();
-		}
-	}
-	
-	private IMAPFolder createFolder() {
-		IMAPFolder folder = new IMAPFolder();
-		folder.setFullName("NewFolder");
-		folder.setDelimiter(String.valueOf(MockIMAPFolder.SEPERATOR));
-		return folder;
-	}
+        CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
+        try {
+            handler.execute(new CreateFolder(folder), null);
+            fail("Folder already exists");
+        } catch (ActionException e) {
+            // folder already exists
+            // e.printStackTrace();
+        }
+        
+    }
+    
+    public void testInvalidSessionId() {
+        IMAPFolder folder = createFolder();
+        CreateFolderHandler handler = new CreateFolderHandler(storeCache,new MockLog(),sessionProvider);
+        try {
+            handler.execute(new CreateFolder(folder), null);
+            fail("Invalid session");
+            
+        } catch (InvalidSessionException e) {
+            // e.printStackTrace();
+        } catch (ActionException e) {
+            e.printStackTrace();
+            fail();
+        }
+    }
+    
+    private IMAPFolder createFolder() {
+        IMAPFolder folder = new IMAPFolder();
+        folder.setFullName("NewFolder");
+        folder.setDelimiter(String.valueOf(MockIMAPFolder.SEPERATOR));
+        return folder;
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/servlet/UploadAttachmentServlet.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/servlet/UploadAttachmentServlet.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/servlet/UploadAttachmentServlet.java	(working copy)
@@ -39,28 +39,28 @@
  */
 public class UploadAttachmentServlet extends UploadAction{
 
-	private static final long serialVersionUID = 4936687307133529124L;
-	private FileItemRegistry registry;
-	
-	@Inject
-	public UploadAttachmentServlet(FileItemRegistry registry) {
-		this.registry = registry;
-	}
-	
-	@Override
-	public String executeAction(HttpServletRequest request, List<FileItem> sessionFiles) throws UploadActionException {
-		logger.info("Executing Action, files in session: " + sessionFiles.size() + " files in registry: " + registry.size());
-		// save file items in the registry
-		for(FileItem item: sessionFiles) 
-        	registry.add(item);
-		
-		// remove items from session but not remove the data from disk or memory
+    private static final long serialVersionUID = 4936687307133529124L;
+    private FileItemRegistry registry;
+    
+    @Inject
+    public UploadAttachmentServlet(FileItemRegistry registry) {
+        this.registry = registry;
+    }
+    
+    @Override
+    public String executeAction(HttpServletRequest request, List<FileItem> sessionFiles) throws UploadActionException {
+        logger.info("Executing Action, files in session: " + sessionFiles.size() + " files in registry: " + registry.size());
+        // save file items in the registry
+        for(FileItem item: sessionFiles) 
+            registry.add(item);
+        
+        // remove items from session but not remove the data from disk or memory
         removeSessionFileItems(request, false);
         return null;
-	}
-	
-	@Override
-	public void removeItem(HttpServletRequest request, FileItem item)  throws UploadActionException {
-	   registry.remove(item);
-	}
+    }
+    
+    @Override
+    public void removeItem(HttpServletRequest request, FileItem item)  throws UploadActionException {
+       registry.remove(item);
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/servlet/DownloadAttachmentServlet.java	(working copy)
@@ -50,149 +50,149 @@
  */
 public class DownloadAttachmentServlet extends HttpServlet {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 1245563204035792963L;
-	private InMemoryIMAPStoreCache cache;
-	private Log logger;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 1245563204035792963L;
+    private InMemoryIMAPStoreCache cache;
+    private Log logger;
 
-	@Inject
-	public DownloadAttachmentServlet(InMemoryIMAPStoreCache cache, Log logger) {
-		this.cache = cache;
-		this.logger = logger;
-	}
+    @Inject
+    public DownloadAttachmentServlet(InMemoryIMAPStoreCache cache, Log logger) {
+        this.cache = cache;
+        this.logger = logger;
+    }
 
-	@Override
-	protected void doPost(HttpServletRequest request,
-			HttpServletResponse response) throws ServletException, IOException {
-		doGet(request, response);
-	}
+    @Override
+    protected void doPost(HttpServletRequest request,
+            HttpServletResponse response) throws ServletException, IOException {
+        doGet(request, response);
+    }
 
-	/**
-	 * Handle to write back the requested attachment
-	 */
-	@Override
-	protected void doGet(HttpServletRequest request,
-			HttpServletResponse response) throws ServletException, IOException {
-		String message_uuid = request.getParameter("message_uuid");
-		String attachmentName = request.getParameter("attachment_name");
-		String sessionId = request.getParameter("sessionId");
-		String folderName = request.getParameter("folder_name");
-		HttpSession session = request.getSession();
-		if (session.getId().equals(sessionId)) {
-			response.setContentType("application/download");
-			response.setHeader("Content-disposition", "attachment; filename="
-					+ attachmentName + "");
-			InputStream in = null;
-			OutputStream out = response.getOutputStream();
-			
+    /**
+     * Handle to write back the requested attachment
+     */
+    @Override
+    protected void doGet(HttpServletRequest request,
+            HttpServletResponse response) throws ServletException, IOException {
+        String message_uuid = request.getParameter("message_uuid");
+        String attachmentName = request.getParameter("attachment_name");
+        String sessionId = request.getParameter("sessionId");
+        String folderName = request.getParameter("folder_name");
+        HttpSession session = request.getSession();
+        if (session.getId().equals(sessionId)) {
+            response.setContentType("application/download");
+            response.setHeader("Content-disposition", "attachment; filename="
+                    + attachmentName + "");
+            InputStream in = null;
+            OutputStream out = response.getOutputStream();
+            
 
-			IMAPFolder folder = null;
-			try {
-				Store store = cache.get((User) request.getSession().getAttribute(
-				"user"));
-				folder = (IMAPFolder) store.getFolder(folderName);
-				if (folder.isOpen() == false) {
-					folder.open(Folder.READ_ONLY);
-				}
-				Message m = folder.getMessageByUID(Long.parseLong(message_uuid));
-				Object content = m.getContent();
-				Part part  = handleMultiPart(content, attachmentName);
-				in = part.getInputStream();
-				if (in != null) {
-					byte[] buffer = new byte[4096];
-					int bytesRead;
-					int bytesComplete = 0;
-					while ((bytesRead = in.read(buffer)) != -1) {
-						bytesComplete = bytesComplete + bytesRead;
-						out.write(buffer, 0, bytesRead); // write
-					}
-					out.flush();
-					response.setContentLength(bytesComplete);
-				} else {
-					response.setContentLength(0);
-				}
-			} catch (Exception e) {
-				logger.error("Error while downloading attachment "
-						+ attachmentName + " of message " + message_uuid
-						+ " for sessionId " + sessionId, e);
-			} finally {
-				if (in != null) {
-					try {
-						in.close();
-					} catch (IOException e) {
-						// ignore on close
-					}
-				}
-				if (out != null) {
-					try {
-						out.close();
-					} catch (IOException e) {
-						// ignore on close
-					}
-				}
-				if (folder != null) {
-					try {
-						folder.close(false);
-					} catch (MessagingException e) {
-						// ignore on close
-					}
-				}
+            IMAPFolder folder = null;
+            try {
+                Store store = cache.get((User) request.getSession().getAttribute(
+                "user"));
+                folder = (IMAPFolder) store.getFolder(folderName);
+                if (folder.isOpen() == false) {
+                    folder.open(Folder.READ_ONLY);
+                }
+                Message m = folder.getMessageByUID(Long.parseLong(message_uuid));
+                Object content = m.getContent();
+                Part part  = handleMultiPart(content, attachmentName);
+                in = part.getInputStream();
+                if (in != null) {
+                    byte[] buffer = new byte[4096];
+                    int bytesRead;
+                    int bytesComplete = 0;
+                    while ((bytesRead = in.read(buffer)) != -1) {
+                        bytesComplete = bytesComplete + bytesRead;
+                        out.write(buffer, 0, bytesRead); // write
+                    }
+                    out.flush();
+                    response.setContentLength(bytesComplete);
+                } else {
+                    response.setContentLength(0);
+                }
+            } catch (Exception e) {
+                logger.error("Error while downloading attachment "
+                        + attachmentName + " of message " + message_uuid
+                        + " for sessionId " + sessionId, e);
+            } finally {
+                if (in != null) {
+                    try {
+                        in.close();
+                    } catch (IOException e) {
+                        // ignore on close
+                    }
+                }
+                if (out != null) {
+                    try {
+                        out.close();
+                    } catch (IOException e) {
+                        // ignore on close
+                    }
+                }
+                if (folder != null) {
+                    try {
+                        folder.close(false);
+                    } catch (MessagingException e) {
+                        // ignore on close
+                    }
+                }
 
-			}
-		}
+            }
+        }
 
-	}
-	
-	/**
-	 * Loop over MuliPart and write the content to the Outputstream if a
-	 * attachment with the given name was found.
-	 * 
-	 * @param out
-	 *            Outputstream to write the content to
-	 * @param content
-	 *            Content which should checked for attachments
-	 * @param attachmentName
-	 *            The attachmentname for the searched attachment
-	 * @throws MessagingException
-	 * @throws IOException
-	 */
-	private Part handleMultiPart(Object content, String attachmentName)
-			throws MessagingException, IOException {
-		if (content instanceof Multipart) {
-			Multipart part = (Multipart) content;
-			for (int i = 0; i < part.getCount(); i++) {
-				Part p = part.getBodyPart(i);
-				if (isAttachment(p)) {
-					if (MimeUtility.decodeText(p.getFileName()).equals(
-							attachmentName)) {
-						return p;
-					}
+    }
+    
+    /**
+     * Loop over MuliPart and write the content to the Outputstream if a
+     * attachment with the given name was found.
+     * 
+     * @param out
+     *            Outputstream to write the content to
+     * @param content
+     *            Content which should checked for attachments
+     * @param attachmentName
+     *            The attachmentname for the searched attachment
+     * @throws MessagingException
+     * @throws IOException
+     */
+    private Part handleMultiPart(Object content, String attachmentName)
+            throws MessagingException, IOException {
+        if (content instanceof Multipart) {
+            Multipart part = (Multipart) content;
+            for (int i = 0; i < part.getCount(); i++) {
+                Part p = part.getBodyPart(i);
+                if (isAttachment(p)) {
+                    if (MimeUtility.decodeText(p.getFileName()).equals(
+                            attachmentName)) {
+                        return p;
+                    }
 
-				} else if (p.isMimeType("multipart/*")) {
-					return handleMultiPart(p.getContent(), attachmentName);
-				}
-			}
-		}
-		return null;
-	}
+                } else if (p.isMimeType("multipart/*")) {
+                    return handleMultiPart(p.getContent(), attachmentName);
+                }
+            }
+        }
+        return null;
+    }
 
-	/**
-	 * Check if the given Part is an attachment
-	 * 
-	 * @param part
-	 * @return isAttachment
-	 * @throws MessagingException
-	 */
-	private boolean isAttachment(Part part) throws MessagingException {
-		String disposition = part.getDisposition();
-		if (part.getContentType().toLowerCase().startsWith("application/")
-				|| (disposition != null && (disposition.equals(Part.ATTACHMENT) || disposition
-						.equals(Part.INLINE)))) {
-			return true;
-		}
-		return false;
-	}
+    /**
+     * Check if the given Part is an attachment
+     * 
+     * @param part
+     * @return isAttachment
+     * @throws MessagingException
+     */
+    private boolean isAttachment(Part part) throws MessagingException {
+        String disposition = part.getDisposition();
+        if (part.getContentType().toLowerCase().startsWith("application/")
+                || (disposition != null && (disposition.equals(Part.ATTACHMENT) || disposition
+                        .equals(Part.INLINE)))) {
+            return true;
+        }
+        return false;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/servlet/MessageSourceServlet.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/servlet/MessageSourceServlet.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/servlet/MessageSourceServlet.java	(working copy)
@@ -42,56 +42,56 @@
  */
 public class MessageSourceServlet extends HttpServlet {
 
-	private static final long serialVersionUID = 1245563204035792963L;
-	private InMemoryIMAPStoreCache cache;
-	private Log logger;
+    private static final long serialVersionUID = 1245563204035792963L;
+    private InMemoryIMAPStoreCache cache;
+    private Log logger;
 
-	@Inject
-	public MessageSourceServlet(InMemoryIMAPStoreCache cache, Log logger) {
-		this.cache = cache;
-		this.logger = logger;
-	}
+    @Inject
+    public MessageSourceServlet(InMemoryIMAPStoreCache cache, Log logger) {
+        this.cache = cache;
+        this.logger = logger;
+    }
 
-	/**
-	 * Handle to write back the requested attachment
-	 */
-	@Override
-	protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+    /**
+     * Handle to write back the requested attachment
+     */
+    @Override
+    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
 
-		User user = (User) request.getSession().getAttribute("user");
+        User user = (User) request.getSession().getAttribute("user");
 
-		String message_uid = (String) request.getParameter("uid");
-		String folder = (String) request.getParameter("folder");
-		
-		try {
-			long uid = Long.parseLong(message_uid);
+        String message_uid = (String) request.getParameter("uid");
+        String folder = (String) request.getParameter("folder");
+        
+        try {
+            long uid = Long.parseLong(message_uid);
 
-			IMAPStore store = cache.get(user);
-			IMAPFolder f = (IMAPFolder) store.getFolder(folder);
-			if (f.isOpen() == false) {
-				f.open(Folder.READ_ONLY);
-			}
+            IMAPStore store = cache.get(user);
+            IMAPFolder f = (IMAPFolder) store.getFolder(folder);
+            if (f.isOpen() == false) {
+                f.open(Folder.READ_ONLY);
+            }
 
-			Message m = f.getMessageByUID(uid);
+            Message m = f.getMessageByUID(uid);
 
-			response.setContentType("text/plain");
-			OutputStream outs = response.getOutputStream();
-			m.writeTo(outs);
-			outs.flush();
-			outs.close();
+            response.setContentType("text/plain");
+            OutputStream outs = response.getOutputStream();
+            m.writeTo(outs);
+            outs.flush();
+            outs.close();
 
-			if (f.isOpen()) {
-				f.close(false);
-			}
-		} catch (Exception e) {
-			logger.error("Unable to get raw content of msg for user " + user + " in folder " + folder + " with uid " + message_uid, e);
-			throw new ServletException("Unable to get raw content of msg for user " + user + " in folder " + folder + " with uid " + message_uid);
-		}
-	}
+            if (f.isOpen()) {
+                f.close(false);
+            }
+        } catch (Exception e) {
+            logger.error("Unable to get raw content of msg for user " + user + " in folder " + folder + " with uid " + message_uid, e);
+            throw new ServletException("Unable to get raw content of msg for user " + user + " in folder " + folder + " with uid " + message_uid);
+        }
+    }
 
-	@Override
-	protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
-		doGet(request, response);
-	}
+    @Override
+    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
+        doGet(request, response);
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/FileItemRegistry.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/FileItemRegistry.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/FileItemRegistry.java	(working copy)
@@ -30,43 +30,43 @@
 
 public class FileItemRegistry {
 
-	public Map<String,FileItem> map = new HashMap<String, FileItem>();
-	private Log logger;
-	
-	@Inject
-	public FileItemRegistry(Log logger) {
-		this.logger = logger;
-	}
-	
-	public void add(FileItem item) {
-		logger.debug("Store item " + item.getName() + " with name " + item.getFieldName());
-		map.put(item.getFieldName(), item);
-	}
-	
-	public void remove(String name) {
-		remove(get(name));
-	}
-	
-	public void remove(FileItem item) {
-		if (item != null) {
-			logger.debug("Remove item " + item.getName() + " with name " + item.getFieldName());
-			map.remove(item);
-			// Remove temporary stuff
-			item.delete();
-		}
-	}
-	
-	public void clear() {
-		for (Entry<String,FileItem> e: map.entrySet()) 
-			remove(e.getValue());
-	}
-	
-	public FileItem get(String name) {
-		logger.debug("Retrieve item " + name + " isNull=" + (map.get(name) == null));
-		return map.get(name);
-	}
-	
-	public int size() {
-		return map.size();
-	}
+    public Map<String,FileItem> map = new HashMap<String, FileItem>();
+    private Log logger;
+    
+    @Inject
+    public FileItemRegistry(Log logger) {
+        this.logger = logger;
+    }
+    
+    public void add(FileItem item) {
+        logger.debug("Store item " + item.getName() + " with name " + item.getFieldName());
+        map.put(item.getFieldName(), item);
+    }
+    
+    public void remove(String name) {
+        remove(get(name));
+    }
+    
+    public void remove(FileItem item) {
+        if (item != null) {
+            logger.debug("Remove item " + item.getName() + " with name " + item.getFieldName());
+            map.remove(item);
+            // Remove temporary stuff
+            item.delete();
+        }
+    }
+    
+    public void clear() {
+        for (Entry<String,FileItem> e: map.entrySet()) 
+            remove(e.getValue());
+    }
+    
+    public FileItem get(String name) {
+        logger.debug("Retrieve item " + name + " isNull=" + (map.get(name) == null));
+        return map.get(name);
+    }
+    
+    public int size() {
+        return map.size();
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/IMAPStoreCache.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/IMAPStoreCache.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/IMAPStoreCache.java	(working copy)
@@ -26,8 +26,8 @@
 import com.sun.mail.imap.IMAPStore;
 
 public interface IMAPStoreCache {
-	public IMAPStore get(User user) throws MessagingException;
-	public IMAPStore get(String username,String password) throws MessagingException;
-	public void delete(User user);
-	public void delete(String username);
+    public IMAPStore get(User user) throws MessagingException;
+    public IMAPStore get(String username,String password) throws MessagingException;
+    public void delete(User user);
+    public void delete(String username);
 }
Index: server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/InMemoryIMAPStoreCache.java	(working copy)
@@ -39,140 +39,140 @@
 @Singleton
 public class InMemoryIMAPStoreCache implements IMAPStoreCache{
 
-	public static final String DEMO_MODE = "demo-mode";
-	
-	private Properties props = new Properties();
-	private Session session;
-	protected Log logger;
-	private final Map<String,CachedIMAPStore> pool = new HashMap<String ,CachedIMAPStore>();
-	private String address;
-	private int port;
-	private boolean useSSL = false;
-	
-	@Inject
-	public InMemoryIMAPStoreCache(Log logger,@Named("IMAPServerAddress") String address, @Named("IMAPServerPort") int port, @Named("IMAPS") boolean useSSL,Provider<Session> sessionProvider) {
-		this.logger = logger;
-		this.address = address;
-		this.port = port;
-		this.useSSL = useSSL;
-		
+    public static final String DEMO_MODE = "demo-mode";
+    
+    private Properties props = new Properties();
+    private Session session;
+    protected Log logger;
+    private final Map<String,CachedIMAPStore> pool = new HashMap<String ,CachedIMAPStore>();
+    private String address;
+    private int port;
+    private boolean useSSL = false;
+    
+    @Inject
+    public InMemoryIMAPStoreCache(Log logger,@Named("IMAPServerAddress") String address, @Named("IMAPServerPort") int port, @Named("IMAPS") boolean useSSL,Provider<Session> sessionProvider) {
+        this.logger = logger;
+        this.address = address;
+        this.port = port;
+        this.useSSL = useSSL;
+        
         props.setProperty("mail.mime.decodetext.strict", "false");
         if (useSSL) {
-    		props.setProperty("mail.store.protocol", "imaps");
+            props.setProperty("mail.store.protocol", "imaps");
         }
         session = sessionProvider.get();
         System.setProperty("mail.mime.decodetext.strict", "false");
         
       
-	}
-	
+    }
+    
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.IMAPStoreCache#get(org.apache.hupa.shared.data.User)
-	 */
-	public IMAPStore get(User user) throws MessagingException {
-		return get(user.getName(),user.getPassword());
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.IMAPStoreCache#get(java.lang.String, java.lang.String)
-	 */
-	public IMAPStore get(String username, String password) throws MessagingException {
-		CachedIMAPStore cstore = pool.get(username);
-		if (cstore == null) {
-			logger.debug("No cached store found for user " +username);
-			cstore = createCachedIMAPStore();
-		} else {
-			if (cstore.isExpired() == false) {
-			    try {
-			        cstore.validate();
-			    } catch (MessagingException e) {
-			        cstore = createCachedIMAPStore();
-			    }
-			} else {
-				pool.remove(username);
-				try {
-				    if (cstore != null) cstore.getStore().close();
-				} catch (MessagingException e) {
-				    // ignore on close
-				}
-				cstore = createCachedIMAPStore();
-			}
-		}
-		
-		if (cstore.getStore().isConnected() == false) {
-			try {
-				cstore.getStore().connect(address, port, username, password);
-			} catch (MessagingException e) {
-					throw (e);
-			}
-		}
-		pool.put(username, cstore);
-		return cstore.getStore();
-	}
-	
-	private CachedIMAPStore createCachedIMAPStore() throws NoSuchProviderException {
-		CachedIMAPStore cstore;
-		if (DEMO_MODE.equals(this.address)) {
-			cstore = new CachedIMAPStore(new DemoModeIMAPStore(session), 300);
-		} else if (useSSL) {
-			cstore = new CachedIMAPStore((IMAPStore)session.getStore("imaps"),300);
-		} else {
-			cstore =  new CachedIMAPStore((IMAPStore)session.getStore("imap"),300);
-		}
-		return cstore;
-	}
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.IMAPStoreCache#delete(org.apache.hupa.shared.data.User)
-	 */
-	public synchronized void delete(User user) {
-		delete(user.getName());
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.IMAPStoreCache#delete(java.lang.String)
-	 */
-	public synchronized void delete(String username) {
-		CachedIMAPStore cstore = pool.get(username);
-		if (cstore != null && cstore.getStore().isConnected()) {
-			try {
-				cstore.getStore().close();
-			} catch (MessagingException e) {
-				// Ignore on close
-			}
-		}
-		pool.remove(username);
-	}
-	
-	private final class CachedIMAPStore {
-		private long validUntil;
-		private int validForMillis;
-		private IMAPStore store;
-		
-		public CachedIMAPStore(IMAPStore store, int validForSeconds) {
-			this.store = store;
-			this.validForMillis = validForSeconds * 1000;
-			this.validUntil = System.currentTimeMillis() + validForMillis;
-		}
-		
-		public boolean isExpired() {
-			if (validUntil > System.currentTimeMillis() && store.isConnected()) {
-				return false;
-			}
-			return true;
-		}
-		
-		public void validate() throws MessagingException {
-			store.idle();
-			validUntil = System.currentTimeMillis() + validForMillis;
-		}
-		
-		public IMAPStore getStore() {
-			return store;
-		}
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.IMAPStoreCache#get(org.apache.hupa.shared.data.User)
+     */
+    public IMAPStore get(User user) throws MessagingException {
+        return get(user.getName(),user.getPassword());
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.IMAPStoreCache#get(java.lang.String, java.lang.String)
+     */
+    public IMAPStore get(String username, String password) throws MessagingException {
+        CachedIMAPStore cstore = pool.get(username);
+        if (cstore == null) {
+            logger.debug("No cached store found for user " +username);
+            cstore = createCachedIMAPStore();
+        } else {
+            if (cstore.isExpired() == false) {
+                try {
+                    cstore.validate();
+                } catch (MessagingException e) {
+                    cstore = createCachedIMAPStore();
+                }
+            } else {
+                pool.remove(username);
+                try {
+                    if (cstore != null) cstore.getStore().close();
+                } catch (MessagingException e) {
+                    // ignore on close
+                }
+                cstore = createCachedIMAPStore();
+            }
+        }
+        
+        if (cstore.getStore().isConnected() == false) {
+            try {
+                cstore.getStore().connect(address, port, username, password);
+            } catch (MessagingException e) {
+                    throw (e);
+            }
+        }
+        pool.put(username, cstore);
+        return cstore.getStore();
+    }
+    
+    private CachedIMAPStore createCachedIMAPStore() throws NoSuchProviderException {
+        CachedIMAPStore cstore;
+        if (DEMO_MODE.equals(this.address)) {
+            cstore = new CachedIMAPStore(new DemoModeIMAPStore(session), 300);
+        } else if (useSSL) {
+            cstore = new CachedIMAPStore((IMAPStore)session.getStore("imaps"),300);
+        } else {
+            cstore =  new CachedIMAPStore((IMAPStore)session.getStore("imap"),300);
+        }
+        return cstore;
+    }
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.IMAPStoreCache#delete(org.apache.hupa.shared.data.User)
+     */
+    public synchronized void delete(User user) {
+        delete(user.getName());
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.IMAPStoreCache#delete(java.lang.String)
+     */
+    public synchronized void delete(String username) {
+        CachedIMAPStore cstore = pool.get(username);
+        if (cstore != null && cstore.getStore().isConnected()) {
+            try {
+                cstore.getStore().close();
+            } catch (MessagingException e) {
+                // Ignore on close
+            }
+        }
+        pool.remove(username);
+    }
+    
+    private final class CachedIMAPStore {
+        private long validUntil;
+        private int validForMillis;
+        private IMAPStore store;
+        
+        public CachedIMAPStore(IMAPStore store, int validForSeconds) {
+            this.store = store;
+            this.validForMillis = validForSeconds * 1000;
+            this.validUntil = System.currentTimeMillis() + validForMillis;
+        }
+        
+        public boolean isExpired() {
+            if (validUntil > System.currentTimeMillis() && store.isConnected()) {
+                return false;
+            }
+            return true;
+        }
+        
+        public void validate() throws MessagingException {
+            store.idle();
+            validUntil = System.currentTimeMillis() + validForMillis;
+        }
+        
+        public IMAPStore getStore() {
+            return store;
+        }
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/DemoModeSMTPTransport.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/DemoModeSMTPTransport.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/DemoModeSMTPTransport.java	(working copy)
@@ -29,18 +29,18 @@
 
 public class DemoModeSMTPTransport extends Transport {
 
-	static final URLName demoUrl = new URLName(null, InMemoryIMAPStoreCache.DEMO_MODE, 143, null, null, null);
-	
-	public DemoModeSMTPTransport(Session session) {
-		super(session, demoUrl);
-	}
+    static final URLName demoUrl = new URLName(null, InMemoryIMAPStoreCache.DEMO_MODE, 143, null, null, null);
+    
+    public DemoModeSMTPTransport(Session session) {
+        super(session, demoUrl);
+    }
 
-	@Override
+    @Override
     public void sendMessage(Message msg, Address[] addresses) throws MessagingException {
     }
     
     @Override
     public void connect(String host, int port, String user, String password) throws MessagingException {
     }
-	
+    
 }
Index: server/src/main/java/org/apache/hupa/server/guice/DefaultUserSettingsProvider.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/guice/DefaultUserSettingsProvider.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/guice/DefaultUserSettingsProvider.java	(working copy)
@@ -26,30 +26,30 @@
 import com.google.inject.name.Named;
 
 public class DefaultUserSettingsProvider implements Provider<Settings> {
-	private String inboxFolder;
-	private String sentFolder;
-	private String trashFolder;
-	private int postCount;
+    private String inboxFolder;
+    private String sentFolder;
+    private String trashFolder;
+    private int postCount;
 
-	@Inject
-	public DefaultUserSettingsProvider(@Named("DefaultInboxFolder") String inboxFolder, @Named("DefaultSentFolder") String sentFolder, @Named("DefaultTrashFolder") String trashFolder, @Named("PostFetchMessageCount") int postCount) {
-		this.inboxFolder = inboxFolder;
-		this.sentFolder = sentFolder;
-		this.trashFolder = trashFolder;
-		this.postCount = postCount;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.inject.Provider#get()
-	 */
-	public Settings get() {
-		Settings settings = new Settings();
-		settings.setInboxFolderName(inboxFolder);
-		settings.setSentFolderName(sentFolder);
-		settings.setTrashFolderName(trashFolder);
-		settings.setPostFetchMessageCount(postCount);
-		return settings;
-	}
+    @Inject
+    public DefaultUserSettingsProvider(@Named("DefaultInboxFolder") String inboxFolder, @Named("DefaultSentFolder") String sentFolder, @Named("DefaultTrashFolder") String trashFolder, @Named("PostFetchMessageCount") int postCount) {
+        this.inboxFolder = inboxFolder;
+        this.sentFolder = sentFolder;
+        this.trashFolder = trashFolder;
+        this.postCount = postCount;
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see com.google.inject.Provider#get()
+     */
+    public Settings get() {
+        Settings settings = new Settings();
+        settings.setInboxFolderName(inboxFolder);
+        settings.setSentFolderName(sentFolder);
+        settings.setTrashFolderName(trashFolder);
+        settings.setPostFetchMessageCount(postCount);
+        return settings;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/guice/ServerModul.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/guice/ServerModul.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/guice/ServerModul.java	(working copy)
@@ -67,114 +67,114 @@
  */
 public class ServerModul extends ActionHandlerModule {
 
-	public static final String SYS_PROP_CONFIG_FILE = "hupa.config.file";
+    public static final String SYS_PROP_CONFIG_FILE = "hupa.config.file";
 
-	public static final String[] CONFIG_PROPERTIES = {
-			System.getenv("HOME") + "/.hupa/config.properties",
-			"/etc/default/hupa", "config.properties" };
-	public static final String CONF_DIR = "WEB-INF" + File.separator + "conf" + File.separator;
+    public static final String[] CONFIG_PROPERTIES = {
+            System.getenv("HOME") + "/.hupa/config.properties",
+            "/etc/default/hupa", "config.properties" };
+    public static final String CONF_DIR = "WEB-INF" + File.separator + "conf" + File.separator;
 
-	private String configDir;
-	
-	public ServerModul(String rootPath) {
-		configDir = rootPath + File.separator + CONF_DIR;
-	}
+    private String configDir;
+    
+    public ServerModul(String rootPath) {
+        configDir = rootPath + File.separator + CONF_DIR;
+    }
 
-	@Override
-	protected void configureHandlers() {
-		bindHandler(CheckSessionHandler.class);
-		bindHandler(LoginUserHandler.class);
-		bindHandler(FetchFoldersHandler.class);
-		bindHandler(FetchMessagesHandler.class);
-		bindHandler(FetchRecentMessagesHandler.class);
-		bindHandler(LogoutUserHandler.class);
-		bindHandler(GetMessageDetailsHandler.class);
-		bindHandler(DeleteMessageByUidHandler.class);
-		bindHandler(DeleteAllMessagesHandler.class);
-		bindHandler(SendMessageHandler.class);
-		bindHandler(ReplyMessageHandler.class);
-		bindHandler(ForwardMessageHandler.class);
-		bindHandler(NoopHandler.class);
-		bindHandler(MoveMessageHandler.class);
-		bindHandler(RenameFolderHandler.class);
-		bindHandler(DeleteFolderHandler.class);
-		bindHandler(CreateFolderHandler.class);
-		bindHandler(TagMessagesHandler.class);
-		bindHandler(GetRawMessageHandler.class);
-		bindHandler(SetFlagsHandler.class);
-		bind(FileItemRegistry.class).in(Singleton.class);
-		bind(IMAPStoreCache.class).to(InMemoryIMAPStoreCache.class).in(
-				Singleton.class);
-		bind(Log.class).toProvider(LogProvider.class).in(Singleton.class);
-		bind(Settings.class).toProvider(DefaultUserSettingsProvider.class).in(
-				Singleton.class);
-		bind(DownloadAttachmentServlet.class).in(Singleton.class);
-		bind(UploadAttachmentServlet.class).in(Singleton.class);
-		bind(MessageSourceServlet.class).in(Singleton.class);
-		bind(Session.class).toProvider(SessionProvider.class);
+    @Override
+    protected void configureHandlers() {
+        bindHandler(CheckSessionHandler.class);
+        bindHandler(LoginUserHandler.class);
+        bindHandler(FetchFoldersHandler.class);
+        bindHandler(FetchMessagesHandler.class);
+        bindHandler(FetchRecentMessagesHandler.class);
+        bindHandler(LogoutUserHandler.class);
+        bindHandler(GetMessageDetailsHandler.class);
+        bindHandler(DeleteMessageByUidHandler.class);
+        bindHandler(DeleteAllMessagesHandler.class);
+        bindHandler(SendMessageHandler.class);
+        bindHandler(ReplyMessageHandler.class);
+        bindHandler(ForwardMessageHandler.class);
+        bindHandler(NoopHandler.class);
+        bindHandler(MoveMessageHandler.class);
+        bindHandler(RenameFolderHandler.class);
+        bindHandler(DeleteFolderHandler.class);
+        bindHandler(CreateFolderHandler.class);
+        bindHandler(TagMessagesHandler.class);
+        bindHandler(GetRawMessageHandler.class);
+        bindHandler(SetFlagsHandler.class);
+        bind(FileItemRegistry.class).in(Singleton.class);
+        bind(IMAPStoreCache.class).to(InMemoryIMAPStoreCache.class).in(
+                Singleton.class);
+        bind(Log.class).toProvider(LogProvider.class).in(Singleton.class);
+        bind(Settings.class).toProvider(DefaultUserSettingsProvider.class).in(
+                Singleton.class);
+        bind(DownloadAttachmentServlet.class).in(Singleton.class);
+        bind(UploadAttachmentServlet.class).in(Singleton.class);
+        bind(MessageSourceServlet.class).in(Singleton.class);
+        bind(Session.class).toProvider(SessionProvider.class);
 
-		Properties properties;
-		try {
-			// Bind addresses and ports for imap and smtp
-			properties = loadProperties();
-			// Configure default parameters for Hupa in demo mode
-			if (properties.get("IMAPServerAddress").equals(InMemoryIMAPStoreCache.DEMO_MODE)) {
-				properties.put("DefaultInboxFolder", DemoModeIMAPStore.DEMO_MODE_INBOX_FOLDER);
-				properties.put("DefaultTrashFolder", DemoModeIMAPStore.DEMO_MODE_TRASH_FOLDER);
-				properties.put("DefaultSentFolder", DemoModeIMAPStore.DEMO_MODE_SENT_FOLDER);
-			}
-			Names.bindProperties(binder(), properties);
-		} catch (Exception e) {
-			throw new RuntimeException("Unable to to configure hupa server," +
-					"\nmake sure that you have a valid /etc/default/hupa file" +
-					"\nor the web container has been started with the appropriate parameter:" +
-					" -Dhupa.config.file=your_hupa_properties_file", e);
-		}
-	}
+        Properties properties;
+        try {
+            // Bind addresses and ports for imap and smtp
+            properties = loadProperties();
+            // Configure default parameters for Hupa in demo mode
+            if (properties.get("IMAPServerAddress").equals(InMemoryIMAPStoreCache.DEMO_MODE)) {
+                properties.put("DefaultInboxFolder", DemoModeIMAPStore.DEMO_MODE_INBOX_FOLDER);
+                properties.put("DefaultTrashFolder", DemoModeIMAPStore.DEMO_MODE_TRASH_FOLDER);
+                properties.put("DefaultSentFolder", DemoModeIMAPStore.DEMO_MODE_SENT_FOLDER);
+            }
+            Names.bindProperties(binder(), properties);
+        } catch (Exception e) {
+            throw new RuntimeException("Unable to to configure hupa server," +
+                    "\nmake sure that you have a valid /etc/default/hupa file" +
+                    "\nor the web container has been started with the appropriate parameter:" +
+                    " -Dhupa.config.file=your_hupa_properties_file", e);
+        }
+    }
 
-	protected Properties loadProperties() throws Exception {
-		Properties properties = null;
+    protected Properties loadProperties() throws Exception {
+        Properties properties = null;
 
-		String fileName = System.getProperty(SYS_PROP_CONFIG_FILE);
-		if (fileName != null) {
-			properties = loadProperties(fileName);
-		}
+        String fileName = System.getProperty(SYS_PROP_CONFIG_FILE);
+        if (fileName != null) {
+            properties = loadProperties(fileName);
+        }
 
-		if (properties == null) {
-			for (String name : CONFIG_PROPERTIES) {
-			
-				properties = loadProperties(name);
-				if (properties != null)
-					break;
-			}
-		}
+        if (properties == null) {
+            for (String name : CONFIG_PROPERTIES) {
+            
+                properties = loadProperties(name);
+                if (properties != null)
+                    break;
+            }
+        }
 
-		return properties;
-	}
+        return properties;
+    }
 
-	protected Properties loadProperties(String name) {
+    protected Properties loadProperties(String name) {
 
-		if (name == null)
-			return null;
+        if (name == null)
+            return null;
 
-		Properties properties = null;
-		File file = new File(name);
-		
-		// check if the file is absolute. If not prefix it with the default config dir
-		if (file.isAbsolute() == false) {
-			file = new File(configDir + File.separator + file.getName());
-		}
-		if (file.exists()) {
-			try {
-				properties = new Properties();
-				properties.load(new FileInputStream(file));
-			} catch (Exception e) {
-				properties = null;	
-				e.printStackTrace();
-			}
-		}
+        Properties properties = null;
+        File file = new File(name);
+        
+        // check if the file is absolute. If not prefix it with the default config dir
+        if (file.isAbsolute() == false) {
+            file = new File(configDir + File.separator + file.getName());
+        }
+        if (file.exists()) {
+            try {
+                properties = new Properties();
+                properties.load(new FileInputStream(file));
+            } catch (Exception e) {
+                properties = null;    
+                e.printStackTrace();
+            }
+        }
 
-		return properties;
-	}
+        return properties;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/guice/DispatchServletModule.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/guice/DispatchServletModule.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/guice/DispatchServletModule.java	(working copy)
@@ -30,11 +30,11 @@
 
 
 public class DispatchServletModule extends ServletModule{
-	 @Override
-	    public void configureServlets() {
-		 	serve("/hupa/dispatch").with(DispatchServiceServlet.class );
-		 	serve("/hupa/downloadAttachmentServlet").with(DownloadAttachmentServlet.class);
-		 	serve("/hupa/uploadAttachmentServlet").with(UploadAttachmentServlet.class);
-		 	serve("/hupa/messageSourceServlet").with(MessageSourceServlet.class);
-	    }
+     @Override
+        public void configureServlets() {
+             serve("/hupa/dispatch").with(DispatchServiceServlet.class );
+             serve("/hupa/downloadAttachmentServlet").with(DownloadAttachmentServlet.class);
+             serve("/hupa/uploadAttachmentServlet").with(UploadAttachmentServlet.class);
+             serve("/hupa/messageSourceServlet").with(MessageSourceServlet.class);
+        }
 }
Index: server/src/main/java/org/apache/hupa/server/guice/LogProvider.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/guice/LogProvider.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/guice/LogProvider.java	(working copy)
@@ -29,8 +29,8 @@
 @Singleton
 public class LogProvider implements Provider<Log>{
 
-	public Log get() {
-		return new Log4JLogger("HupaLogger");
-	}
+    public Log get() {
+        return new Log4JLogger("HupaLogger");
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/guice/MyGuiceServletConfig.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/guice/MyGuiceServletConfig.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/guice/MyGuiceServletConfig.java	(working copy)
@@ -35,22 +35,22 @@
  */
 public class MyGuiceServletConfig extends GuiceServletContextListener{
 
-	private ServletContext context;
-	@Override
-	public void contextDestroyed(ServletContextEvent servletContextEvent) {
-		context = null;
-		super.contextDestroyed(servletContextEvent);
-	}
+    private ServletContext context;
+    @Override
+    public void contextDestroyed(ServletContextEvent servletContextEvent) {
+        context = null;
+        super.contextDestroyed(servletContextEvent);
+    }
 
-	@Override
-	public void contextInitialized(ServletContextEvent servletContextEvent) {
-		context = servletContextEvent.getServletContext();
-		super.contextInitialized(servletContextEvent);
-	}
+    @Override
+    public void contextInitialized(ServletContextEvent servletContextEvent) {
+        context = servletContextEvent.getServletContext();
+        super.contextInitialized(servletContextEvent);
+    }
 
-	@Override
-	protected Injector getInjector() {
-		return Guice.createInjector(new ServerModul(context.getRealPath("/")),new DispatchServletModule());
-	}
+    @Override
+    protected Injector getInjector() {
+        return Guice.createInjector(new ServerModul(context.getRealPath("/")),new DispatchServletModule());
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/guice/SessionProvider.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/guice/SessionProvider.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/guice/SessionProvider.java	(working copy)
@@ -27,8 +27,8 @@
 
 public class SessionProvider implements Provider<Session>{
 
-	public Session get() {
-		Session session = Session.getDefaultInstance(new Properties(), null);
-		return session;
-	}
+    public Session get() {
+        Session session = Session.getDefaultInstance(new Properties(), null);
+        return session;
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/handler/TagMessagesHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/TagMessagesHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/TagMessagesHandler.java	(working copy)
@@ -47,60 +47,60 @@
  */
 public class TagMessagesHandler extends AbstractSessionHandler<TagMessage, GenericResult>{
 
-	@Inject
-	public TagMessagesHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public TagMessagesHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	protected GenericResult executeInternal(TagMessage action,
-			ExecutionContext context) throws ActionException {
-		User user = getUser();
-		ArrayList<Long> uids = action.getMessageUids();
-		Tag tag = action.getTag();
-		IMAPFolder folder = null;
-		try {
-			IMAPStore store = cache.get(user);
-			folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
-			if (folder.isOpen() == false) {
-				folder.open(Folder.READ_WRITE);
-			}
-			Message[] messages = folder.getMessagesByUID(copyUids(uids));
-			for (int i = 0; i < messages.length; i++) {
-				Message m = messages[i];
-				m.getFlags().add(tag.toString());
-			}
-			return new GenericResult();
-		} catch (MessagingException e) {
-			logger.error("Error while tag messages " + uids.toString() + " for user " + user + " of folder" + action.getFolder(), e);
-			throw new ActionException(e);
-		} finally {
-			try {
-				folder.close(false);
-			} catch (MessagingException e) {
-				// ignore on close
-			}
-		}
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    protected GenericResult executeInternal(TagMessage action,
+            ExecutionContext context) throws ActionException {
+        User user = getUser();
+        ArrayList<Long> uids = action.getMessageUids();
+        Tag tag = action.getTag();
+        IMAPFolder folder = null;
+        try {
+            IMAPStore store = cache.get(user);
+            folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
+            if (folder.isOpen() == false) {
+                folder.open(Folder.READ_WRITE);
+            }
+            Message[] messages = folder.getMessagesByUID(copyUids(uids));
+            for (int i = 0; i < messages.length; i++) {
+                Message m = messages[i];
+                m.getFlags().add(tag.toString());
+            }
+            return new GenericResult();
+        } catch (MessagingException e) {
+            logger.error("Error while tag messages " + uids.toString() + " for user " + user + " of folder" + action.getFolder(), e);
+            throw new ActionException(e);
+        } finally {
+            try {
+                folder.close(false);
+            } catch (MessagingException e) {
+                // ignore on close
+            }
+        }
+    }
 
-	private long[] copyUids(ArrayList<Long> uids) {
-		long[] lArray = new long[uids.size()];
-		for (int i = 0; i < uids.size(); i++) {
-			lArray[i] = uids.get(i);
-		}
-		return lArray;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<TagMessage> getActionType() {
-		return TagMessage.class;
-	}
+    private long[] copyUids(ArrayList<Long> uids) {
+        long[] lArray = new long[uids.size()];
+        for (int i = 0; i < uids.size(); i++) {
+            lArray[i] = uids.get(i);
+        }
+        return lArray;
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<TagMessage> getActionType() {
+        return TagMessage.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/RenameFolderHandler.java	(working copy)
@@ -42,47 +42,47 @@
  */
 public class RenameFolderHandler extends AbstractSessionHandler<RenameFolder, GenericResult>{
 
-	@Inject
-	public RenameFolderHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public RenameFolderHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	protected GenericResult executeInternal(RenameFolder action,
-			ExecutionContext context) throws ActionException {
-		User user = getUser();
-		IMAPFolder folder = action.getFolder();
-		String newName = action.getNewName();
-		try {
-			IMAPStore store = cache.get(user);
-			com.sun.mail.imap.IMAPFolder iFolder = (com.sun.mail.imap.IMAPFolder) store.getFolder(folder.getFullName());
-			Folder newFolder = store.getFolder(newName);
-			
-			if (iFolder.isOpen()) {
-				iFolder.close(false);
-			}
-			if (iFolder.renameTo(newFolder)) {
-				return new GenericResult();
-			}
-			throw new ActionException("Unable to rename Folder " + folder.getFullName() + " to " + newName + " for user " + user);
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    protected GenericResult executeInternal(RenameFolder action,
+            ExecutionContext context) throws ActionException {
+        User user = getUser();
+        IMAPFolder folder = action.getFolder();
+        String newName = action.getNewName();
+        try {
+            IMAPStore store = cache.get(user);
+            com.sun.mail.imap.IMAPFolder iFolder = (com.sun.mail.imap.IMAPFolder) store.getFolder(folder.getFullName());
+            Folder newFolder = store.getFolder(newName);
+            
+            if (iFolder.isOpen()) {
+                iFolder.close(false);
+            }
+            if (iFolder.renameTo(newFolder)) {
+                return new GenericResult();
+            }
+            throw new ActionException("Unable to rename Folder " + folder.getFullName() + " to " + newName + " for user " + user);
 
-		} catch (Exception e) {
-			logger.error("Error while renaming Folder " + folder.getFullName() + " to " + newName + " for user " + user,e);
-			throw new ActionException("Error while renaming Folder " + folder.getFullName() + " to " + newName + " for user " + user,e);
-		}
+        } catch (Exception e) {
+            logger.error("Error while renaming Folder " + folder.getFullName() + " to " + newName + " for user " + user,e);
+            throw new ActionException("Error while renaming Folder " + folder.getFullName() + " to " + newName + " for user " + user,e);
+        }
 
-	}
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<RenameFolder> getActionType() {
-		return RenameFolder.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<RenameFolder> getActionType() {
+        return RenameFolder.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/DeleteMessageByUidHandler.java	(working copy)
@@ -43,54 +43,54 @@
  * 
  */
 public class DeleteMessageByUidHandler extends
-		AbstractDeleteMessageHandler<DeleteMessageByUid> {
+        AbstractDeleteMessageHandler<DeleteMessageByUid> {
 
-	@Inject
-	public DeleteMessageByUidHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> provider) {
-		super(cache, logger, provider);
-	}
+    @Inject
+    public DeleteMessageByUidHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> provider) {
+        super(cache, logger, provider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<DeleteMessageByUid> getActionType() {
-		return DeleteMessageByUid.class;
-	}
+    /*
+     * (non-Javadoc)
+     * 
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<DeleteMessageByUid> getActionType() {
+        return DeleteMessageByUid.class;
+    }
 
-	@Override
-	protected Message[] getMessagesToDelete(DeleteMessageByUid action)
-			throws ActionException {
-		IMAPFolder folder = action.getFolder();
-		ArrayList<Long> uids = action.getMessageUids();
-		User user = getUser();
+    @Override
+    protected Message[] getMessagesToDelete(DeleteMessageByUid action)
+            throws ActionException {
+        IMAPFolder folder = action.getFolder();
+        ArrayList<Long> uids = action.getMessageUids();
+        User user = getUser();
 
-		logger.info("Deleting messages with uids " + action.getMessageUids()
-				+ " for user " + user + " in folder " + action.getFolder());
-		try {
-			IMAPStore store = cache.get(user);
-			com.sun.mail.imap.IMAPFolder f = (com.sun.mail.imap.IMAPFolder) store
-					.getFolder(folder.getFullName());
-			// check if the folder is open, if not open it "rw"
-			if (f.isOpen() == false) {
-				f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
-			}
-			// build up the list of messages to delete
-			List<Message> messages = new ArrayList<Message>();
-			for (int i = 0; i < uids.size(); i++) {
-				messages.add(f.getMessageByUID(uids.get(i)));
-			}
-			Message[] mArray = messages.toArray(new Message[messages.size()]);
-			return mArray;
-		} catch (MessagingException e) {
-			logger.error("Error while deleting messages with uids "
-					+ action.getMessageUids() + " for user " + user
-					+ " in folder" + action.getFolder(), e);
-			throw new ActionException("Error while deleting messages", e);
-		}
+        logger.info("Deleting messages with uids " + action.getMessageUids()
+                + " for user " + user + " in folder " + action.getFolder());
+        try {
+            IMAPStore store = cache.get(user);
+            com.sun.mail.imap.IMAPFolder f = (com.sun.mail.imap.IMAPFolder) store
+                    .getFolder(folder.getFullName());
+            // check if the folder is open, if not open it "rw"
+            if (f.isOpen() == false) {
+                f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+            }
+            // build up the list of messages to delete
+            List<Message> messages = new ArrayList<Message>();
+            for (int i = 0; i < uids.size(); i++) {
+                messages.add(f.getMessageByUID(uids.get(i)));
+            }
+            Message[] mArray = messages.toArray(new Message[messages.size()]);
+            return mArray;
+        } catch (MessagingException e) {
+            logger.error("Error while deleting messages with uids "
+                    + action.getMessageUids() + " for user " + user
+                    + " in folder" + action.getFolder(), e);
+            throw new ActionException("Error while deleting messages", e);
+        }
 
-	}
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/AbstractFetchMessagesHandler.java	(working copy)
@@ -50,167 +50,167 @@
 
 public abstract class AbstractFetchMessagesHandler <A extends FetchMessages> extends AbstractSessionHandler<A, FetchMessagesResult>{
 
-	public AbstractFetchMessagesHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    public AbstractFetchMessagesHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	@Override
-	protected FetchMessagesResult executeInternal(A action,
-			ExecutionContext context) throws ActionException {
-		User user = getUser();
-		IMAPFolder folder = action.getFolder();
-		com.sun.mail.imap.IMAPFolder f = null;
-		try {
-			IMAPStore store = cache.get(user);
-			int start = action.getStart();
-			int offset = action.getOffset();
-			
-			f =  (com.sun.mail.imap.IMAPFolder)store.getFolder(folder.getFullName());
+    @Override
+    protected FetchMessagesResult executeInternal(A action,
+            ExecutionContext context) throws ActionException {
+        User user = getUser();
+        IMAPFolder folder = action.getFolder();
+        com.sun.mail.imap.IMAPFolder f = null;
+        try {
+            IMAPStore store = cache.get(user);
+            int start = action.getStart();
+            int offset = action.getOffset();
+            
+            f =  (com.sun.mail.imap.IMAPFolder)store.getFolder(folder.getFullName());
 
-			// check if the folder is open, if not open it read only
-			 if (f.isOpen() == false) {
-	             f.open(com.sun.mail.imap.IMAPFolder.READ_ONLY);
-	         }
+            // check if the folder is open, if not open it read only
+             if (f.isOpen() == false) {
+                 f.open(com.sun.mail.imap.IMAPFolder.READ_ONLY);
+             }
 
-			int exists = f.getMessageCount();
-			
-			// if the folder is empty we have no need to process 
-			if (exists == 0) {
-				return new FetchMessagesResult(new ArrayList<org.apache.hupa.shared.data.Message>(),start,offset,exists,0);
-			}		
-			
-			Message[] messages = getMessagesToConvert(f,action);
-			
-			return new FetchMessagesResult(convert(action, f, messages),start,offset,exists,f.getUnreadMessageCount());
-			
-		} catch (Exception e) {
-			logger.error("Error while fetching headers for user " + user.getName() + " in folder " + folder,e);
-			throw new ActionException(
-					"Error while fetching headers for user " + user.getName() + " in folder " + folder);
-		
-		} finally {
-			if (f != null && f.isOpen()) {
-				try {
-					f.close(false);
-				} catch (MessagingException e) {
-					// we don't care to much about an exception on close here...
-				}
-			}
-		}
-	}
-	
-	protected abstract Message[] getMessagesToConvert(com.sun.mail.imap.IMAPFolder f, A action) throws MessagingException;
-	
-	protected ArrayList<org.apache.hupa.shared.data.Message> convert(FetchMessages action, com.sun.mail.imap.IMAPFolder f, Message[] messages) throws MessagingException {
-		ArrayList<org.apache.hupa.shared.data.Message> mList = new ArrayList<org.apache.hupa.shared.data.Message>();
-		// Setup fetchprofile to limit the stuff which is fetched 
-		FetchProfile fp = new FetchProfile();
+            int exists = f.getMessageCount();
+            
+            // if the folder is empty we have no need to process 
+            if (exists == 0) {
+                return new FetchMessagesResult(new ArrayList<org.apache.hupa.shared.data.Message>(),start,offset,exists,0);
+            }        
+            
+            Message[] messages = getMessagesToConvert(f,action);
+            
+            return new FetchMessagesResult(convert(action, f, messages),start,offset,exists,f.getUnreadMessageCount());
+            
+        } catch (Exception e) {
+            logger.error("Error while fetching headers for user " + user.getName() + " in folder " + folder,e);
+            throw new ActionException(
+                    "Error while fetching headers for user " + user.getName() + " in folder " + folder);
+        
+        } finally {
+            if (f != null && f.isOpen()) {
+                try {
+                    f.close(false);
+                } catch (MessagingException e) {
+                    // we don't care to much about an exception on close here...
+                }
+            }
+        }
+    }
+    
+    protected abstract Message[] getMessagesToConvert(com.sun.mail.imap.IMAPFolder f, A action) throws MessagingException;
+    
+    protected ArrayList<org.apache.hupa.shared.data.Message> convert(FetchMessages action, com.sun.mail.imap.IMAPFolder f, Message[] messages) throws MessagingException {
+        ArrayList<org.apache.hupa.shared.data.Message> mList = new ArrayList<org.apache.hupa.shared.data.Message>();
+        // Setup fetchprofile to limit the stuff which is fetched 
+        FetchProfile fp = new FetchProfile();
         fp.add(FetchProfile.Item.ENVELOPE);
         fp.add(FetchProfile.Item.FLAGS);
         fp.add(FetchProfile.Item.CONTENT_INFO);
         f.fetch(messages, fp);
 
         // loop over the fetched messages
-		for (int i = 0; i < messages.length; i++) {
-			org.apache.hupa.shared.data.Message msg = new org.apache.hupa.shared.data.Message();
-			Message m = messages[i];				
-			String from = null;
-			if (m.getFrom() != null && m.getFrom().length >0 ) {
-				from = m.getFrom()[0].toString().trim();
-				try {
-					from = MimeUtility.decodeText(from);
-				} catch (UnsupportedEncodingException e) {
-					logger.debug("Unable to decode from " + from, e);
-				}
-			}
-			msg.setFrom(from);
-			
-			ArrayList<String> to = new ArrayList<String>();
-			// Add to addresses
-			Address[] toArray = m.getRecipients(RecipientType.TO);
-			if (toArray != null) {
-				for (int b =0; b < toArray.length;b++) {
-					to.add(toArray[b].toString());
-				}
-			}
-			msg.setTo(to);
-			
-			// Check if a subject exist and if so decode it
-			String subject = m.getSubject();
-			if (subject != null) {
-				try {
-					subject = MimeUtility.decodeText(subject);
-				} catch (UnsupportedEncodingException e) {
-					logger.debug("Unable to decode subject " + subject, e);
-				}
-			}
-			msg.setSubject(subject);
-			
-			// Add cc addresses
-			Address[] ccArray = m.getRecipients(RecipientType.CC);
-			ArrayList<String> cc = new ArrayList<String>();
+        for (int i = 0; i < messages.length; i++) {
+            org.apache.hupa.shared.data.Message msg = new org.apache.hupa.shared.data.Message();
+            Message m = messages[i];                
+            String from = null;
+            if (m.getFrom() != null && m.getFrom().length >0 ) {
+                from = m.getFrom()[0].toString().trim();
+                try {
+                    from = MimeUtility.decodeText(from);
+                } catch (UnsupportedEncodingException e) {
+                    logger.debug("Unable to decode from " + from, e);
+                }
+            }
+            msg.setFrom(from);
+            
+            ArrayList<String> to = new ArrayList<String>();
+            // Add to addresses
+            Address[] toArray = m.getRecipients(RecipientType.TO);
+            if (toArray != null) {
+                for (int b =0; b < toArray.length;b++) {
+                    to.add(toArray[b].toString());
+                }
+            }
+            msg.setTo(to);
+            
+            // Check if a subject exist and if so decode it
+            String subject = m.getSubject();
+            if (subject != null) {
+                try {
+                    subject = MimeUtility.decodeText(subject);
+                } catch (UnsupportedEncodingException e) {
+                    logger.debug("Unable to decode subject " + subject, e);
+                }
+            }
+            msg.setSubject(subject);
+            
+            // Add cc addresses
+            Address[] ccArray = m.getRecipients(RecipientType.CC);
+            ArrayList<String> cc = new ArrayList<String>();
 
-			if (ccArray != null) {
-				for (int b =0; b < ccArray.length;b++) {
-					cc.add(ccArray[b].toString());
-				}
-			}
-			msg.setCc(cc);
+            if (ccArray != null) {
+                for (int b =0; b < ccArray.length;b++) {
+                    cc.add(ccArray[b].toString());
+                }
+            }
+            msg.setCc(cc);
 
-			msg.setReceivedDate(m.getReceivedDate());
+            msg.setReceivedDate(m.getReceivedDate());
 
-			// Add flags
-			ArrayList<IMAPFlag> iFlags = JavamailUtil.convert(m.getFlags());
-			
-		  
-			ArrayList<Tag> tags = new ArrayList<Tag>();
-			String[] userFlags = m.getFlags().getUserFlags();
-			for (int a = 0; a < userFlags.length;a++) {
-				String flag = userFlags[a];
-				if (flag.startsWith(Tag.PREFIX)) {
-					tags.add(new Tag(flag.substring(Tag.PREFIX.length())));
-				}
-			}
-			
-			msg.setUid(f.getUID(m));
-			msg.setFlags(iFlags);
-			msg.setTags(tags);
-			msg.setHasAttachments(hasAttachment(m));
-			
-			mList.add(0, msg);
-			if (i > action.getOffset()) {
-				break;
-			}
-		}
-		return mList;
-	}
-	
-	private boolean hasAttachment(Message message) throws MessagingException {
-		if (message.getContentType().startsWith("multipart/")) {
-			try {
-				Object content;
+            // Add flags
+            ArrayList<IMAPFlag> iFlags = JavamailUtil.convert(m.getFlags());
+            
+          
+            ArrayList<Tag> tags = new ArrayList<Tag>();
+            String[] userFlags = m.getFlags().getUserFlags();
+            for (int a = 0; a < userFlags.length;a++) {
+                String flag = userFlags[a];
+                if (flag.startsWith(Tag.PREFIX)) {
+                    tags.add(new Tag(flag.substring(Tag.PREFIX.length())));
+                }
+            }
+            
+            msg.setUid(f.getUID(m));
+            msg.setFlags(iFlags);
+            msg.setTags(tags);
+            msg.setHasAttachments(hasAttachment(m));
+            
+            mList.add(0, msg);
+            if (i > action.getOffset()) {
+                break;
+            }
+        }
+        return mList;
+    }
+    
+    private boolean hasAttachment(Message message) throws MessagingException {
+        if (message.getContentType().startsWith("multipart/")) {
+            try {
+                Object content;
 
-				content = message.getContent();
+                content = message.getContent();
 
-				if (content instanceof Multipart) {
-					Multipart mp = (Multipart) content;
-					if (mp.getCount() > 1) {
-						for (int i = 0; i < mp.getCount(); i++) {
-							String disp = mp.getBodyPart(i).getDisposition();
-							if (disp != null
-									&& disp.equalsIgnoreCase(Part.ATTACHMENT)) {
-								return true;
-							}
-						}
-					}
+                if (content instanceof Multipart) {
+                    Multipart mp = (Multipart) content;
+                    if (mp.getCount() > 1) {
+                        for (int i = 0; i < mp.getCount(); i++) {
+                            String disp = mp.getBodyPart(i).getDisposition();
+                            if (disp != null
+                                    && disp.equalsIgnoreCase(Part.ATTACHMENT)) {
+                                return true;
+                            }
+                        }
+                    }
 
-				}
-			} catch (IOException e) {
-				logger.error("Error while get content of message " + message.getMessageNumber());
-			}
-			
-		}
-		return false;
-	}
+                }
+            } catch (IOException e) {
+                logger.error("Error while get content of message " + message.getMessageNumber());
+            }
+            
+        }
+        return false;
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/LoginUserHandler.java	(working copy)
@@ -40,66 +40,66 @@
  * 
  */
 public class LoginUserHandler implements
-		ActionHandler<LoginUser, LoginUserResult> {
+        ActionHandler<LoginUser, LoginUserResult> {
 
-	private final IMAPStoreCache cache;
-	private final Log logger;
-	private final Provider<HttpSession> sessionProvider;
-	private final Provider<Settings> settingsProvider;
+    private final IMAPStoreCache cache;
+    private final Log logger;
+    private final Provider<HttpSession> sessionProvider;
+    private final Provider<Settings> settingsProvider;
 
-	@Inject
-	public LoginUserHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> sessionProvider, Provider<Settings> settingsProvider) {
-		this.cache = cache;
-		this.logger = logger;
-		this.sessionProvider = sessionProvider;
-		this.settingsProvider = settingsProvider;
-	}
+    @Inject
+    public LoginUserHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> sessionProvider, Provider<Settings> settingsProvider) {
+        this.cache = cache;
+        this.logger = logger;
+        this.sessionProvider = sessionProvider;
+        this.settingsProvider = settingsProvider;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#execute(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	public LoginUserResult execute(LoginUser action, ExecutionContext context)
-			throws ActionException {
-		String username = action.getUserName();
-		String password = action.getPassword();
-		try {
-			
-			// construct a new user
-			User user = new User();
-			user.setName(username);
-			user.setPassword(password);
-			
-			// login
-			cache.get(user);
-			
-			user.setAuthenticated(true);
-			user.setSettings(settingsProvider.get());
-			// store the session id for later usage
-			HttpSession session = sessionProvider.get();
-			session.setAttribute("user", user);
-			return new LoginUserResult(user);
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#execute(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    public LoginUserResult execute(LoginUser action, ExecutionContext context)
+            throws ActionException {
+        String username = action.getUserName();
+        String password = action.getPassword();
+        try {
+            
+            // construct a new user
+            User user = new User();
+            user.setName(username);
+            user.setPassword(password);
+            
+            // login
+            cache.get(user);
+            
+            user.setAuthenticated(true);
+            user.setSettings(settingsProvider.get());
+            // store the session id for later usage
+            HttpSession session = sessionProvider.get();
+            session.setAttribute("user", user);
+            return new LoginUserResult(user);
 
-		} catch (Exception e) {
-			logger.error("Unable to authenticate user " + username,e);
-			throw new ActionException(e);
-		}
-	}
+        } catch (Exception e) {
+            logger.error("Unable to authenticate user " + username,e);
+            throw new ActionException(e);
+        }
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#rollback(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.shared.Result, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	public void rollback(LoginUser user, LoginUserResult result,
-			ExecutionContext context) throws ActionException {
-		// Nothing todo here
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#rollback(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.shared.Result, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    public void rollback(LoginUser user, LoginUserResult result,
+            ExecutionContext context) throws ActionException {
+        // Nothing todo here
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<LoginUser> getActionType() {
-		return LoginUser.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<LoginUser> getActionType() {
+        return LoginUser.class;
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/handler/AbstractSessionHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/AbstractSessionHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/AbstractSessionHandler.java	(working copy)
@@ -42,51 +42,51 @@
  */
 public abstract class AbstractSessionHandler<A extends Action<R>,R extends Result> implements ActionHandler<A, R> {
 
-	protected final Provider<HttpSession> sessionProvider;
-	protected final IMAPStoreCache cache;
-	protected final Log logger;
+    protected final Provider<HttpSession> sessionProvider;
+    protected final IMAPStoreCache cache;
+    protected final Log logger;
 
-	@Inject
-	public AbstractSessionHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> sessionProvider) {
-		this.sessionProvider = sessionProvider;
-		this.cache = cache;
-		this.logger = logger;
-	}
+    @Inject
+    public AbstractSessionHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> sessionProvider) {
+        this.sessionProvider = sessionProvider;
+        this.cache = cache;
+        this.logger = logger;
+    }
 
-	/**
-	 * Execute executeInternal method
-	 */
-	public R execute(A action, ExecutionContext context) throws ActionException {
-		return executeInternal(action, context);
-	}
-	
-	/**
-	 * Not implemented. Should get overridden if needed
-	 */
-	public void rollback(A action, R result,
-			ExecutionContext context) throws ActionException {
-		// Not implemented
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#execute(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	protected abstract R executeInternal(A action, ExecutionContext context) throws ActionException;
-	
-	/**
-	 * Return the User stored in session with the given id
-	 * 
-	 * @param sessionId 
-	 * @return user
-	 * @throws ActionException
-	 */
-	protected User getUser() throws ActionException{
-		User user = (User) sessionProvider.get().getAttribute("user");
-		if (user == null) {
-			throw new InvalidSessionException("User not found in session with id " + sessionProvider.get().getId());
-		} else {
-			return user;
-		}
-	}
+    /**
+     * Execute executeInternal method
+     */
+    public R execute(A action, ExecutionContext context) throws ActionException {
+        return executeInternal(action, context);
+    }
+    
+    /**
+     * Not implemented. Should get overridden if needed
+     */
+    public void rollback(A action, R result,
+            ExecutionContext context) throws ActionException {
+        // Not implemented
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#execute(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    protected abstract R executeInternal(A action, ExecutionContext context) throws ActionException;
+    
+    /**
+     * Return the User stored in session with the given id
+     * 
+     * @param sessionId 
+     * @return user
+     * @throws ActionException
+     */
+    protected User getUser() throws ActionException{
+        User user = (User) sessionProvider.get().getAttribute("user");
+        if (user == null) {
+            throw new InvalidSessionException("User not found in session with id " + sessionProvider.get().getId());
+        } else {
+            return user;
+        }
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/handler/SetFlagsHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/SetFlagsHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/SetFlagsHandler.java	(working copy)
@@ -44,58 +44,58 @@
 
 public class SetFlagsHandler extends AbstractSessionHandler<SetFlag, GenericResult>{
 
-	@Inject
-	public SetFlagsHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public SetFlagsHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	@Override
-	protected GenericResult executeInternal(SetFlag action,
-			ExecutionContext context) throws ActionException {
-		User user = getUser();
-		IMAPFolder folder = action.getFolder();
-		ArrayList<Long> uids = action.getUids();
-		com.sun.mail.imap.IMAPFolder f = null;
-		try {
-			IMAPStore store = cache.get(user);
+    @Override
+    protected GenericResult executeInternal(SetFlag action,
+            ExecutionContext context) throws ActionException {
+        User user = getUser();
+        IMAPFolder folder = action.getFolder();
+        ArrayList<Long> uids = action.getUids();
+        com.sun.mail.imap.IMAPFolder f = null;
+        try {
+            IMAPStore store = cache.get(user);
 
-			f = (com.sun.mail.imap.IMAPFolder) store.getFolder(folder.getFullName());
-			if (f.isOpen() == false) {
-				f.open(Folder.READ_WRITE);
-			}
-			Message[] msgs = f.getMessagesByUID(toArray(uids));
-			Flag flag = JavamailUtil.convert(action.getFlag());
-			Flags flags = new Flags();
-			flags.add(flag);
-			
-			f.setFlags(msgs, flags, action.getValue());
-			return new GenericResult();
-		} catch (MessagingException e) {
-			String errorMsg = "Error while setting flags of messages with uids " + uids + " for user " + user;
-			logger.error(errorMsg,e);
-			throw new ActionException(errorMsg,e);
-		} finally {
-			if (f != null && f.isOpen()) {
-				try {
-					f.close(false);
-				} catch (MessagingException e) {
-					// ignore on close
-				}
-			}
-		}
-	}
+            f = (com.sun.mail.imap.IMAPFolder) store.getFolder(folder.getFullName());
+            if (f.isOpen() == false) {
+                f.open(Folder.READ_WRITE);
+            }
+            Message[] msgs = f.getMessagesByUID(toArray(uids));
+            Flag flag = JavamailUtil.convert(action.getFlag());
+            Flags flags = new Flags();
+            flags.add(flag);
+            
+            f.setFlags(msgs, flags, action.getValue());
+            return new GenericResult();
+        } catch (MessagingException e) {
+            String errorMsg = "Error while setting flags of messages with uids " + uids + " for user " + user;
+            logger.error(errorMsg,e);
+            throw new ActionException(errorMsg,e);
+        } finally {
+            if (f != null && f.isOpen()) {
+                try {
+                    f.close(false);
+                } catch (MessagingException e) {
+                    // ignore on close
+                }
+            }
+        }
+    }
 
-	public Class<SetFlag> getActionType() {
-		return SetFlag.class;
-	}
-	
-	private long[] toArray(ArrayList<Long> uids) {
-		long[] array = new long[uids.size()];
-		for (int i = 0; i < uids.size(); i++) {
-			array[i] = uids.get(i);
-		}
-		return array;
-	}
+    public Class<SetFlag> getActionType() {
+        return SetFlag.class;
+    }
+    
+    private long[] toArray(ArrayList<Long> uids) {
+        long[] array = new long[uids.size()];
+        for (int i = 0; i < uids.size(); i++) {
+            array[i] = uids.get(i);
+        }
+        return array;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/LogoutUserHandler.java	(working copy)
@@ -39,46 +39,46 @@
  * 
  */
 public class LogoutUserHandler extends AbstractSessionHandler<LogoutUser, LogoutUserResult> {
-	
-	
-	@Inject
-	public LogoutUserHandler(IMAPStoreCache cache, Log logger,Provider<HttpSession> provider) {
-		super(cache,logger,provider);
-	}
+    
+    
+    @Inject
+    public LogoutUserHandler(IMAPStoreCache cache, Log logger,Provider<HttpSession> provider) {
+        super(cache,logger,provider);
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	public LogoutUserResult executeInternal(LogoutUser action, ExecutionContext arg1)
-			throws ActionException {
-		User user = getUser();
-		user.setAuthenticated(false);
-		
-		// delete cached store
-		cache.delete(user);
-		
-		// remove user attribute from session
-		sessionProvider.get().removeAttribute("user");
-		
-		return new LogoutUserResult(user);
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    public LogoutUserResult executeInternal(LogoutUser action, ExecutionContext arg1)
+            throws ActionException {
+        User user = getUser();
+        user.setAuthenticated(false);
+        
+        // delete cached store
+        cache.delete(user);
+        
+        // remove user attribute from session
+        sessionProvider.get().removeAttribute("user");
+        
+        return new LogoutUserResult(user);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<LogoutUser> getActionType() {
-		return LogoutUser.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<LogoutUser> getActionType() {
+        return LogoutUser.class;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#rollback(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.shared.Result, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	public void rollback(LogoutUser arg0, LogoutUserResult arg1,
-			ExecutionContext arg2) throws ActionException {
-		// not implemented
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#rollback(net.customware.gwt.dispatch.shared.Action, net.customware.gwt.dispatch.shared.Result, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    public void rollback(LogoutUser arg0, LogoutUserResult arg1,
+            ExecutionContext arg2) throws ActionException {
+        // not implemented
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/handler/FetchFoldersHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/FetchFoldersHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/FetchFoldersHandler.java	(working copy)
@@ -46,97 +46,97 @@
  */
 public class FetchFoldersHandler extends AbstractSessionHandler<FetchFolders, FetchFoldersResult>{
 
-	@Inject
-	public FetchFoldersHandler(IMAPStoreCache cache, Log logger,Provider<HttpSession> provider) {
-		super(cache,logger,provider);
-	}
+    @Inject
+    public FetchFoldersHandler(IMAPStoreCache cache, Log logger,Provider<HttpSession> provider) {
+        super(cache,logger,provider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	public FetchFoldersResult executeInternal(FetchFolders action, ExecutionContext arg1)
-	throws ActionException {
-		User user = getUser();
-		ArrayList<IMAPFolder> fList = new ArrayList<IMAPFolder>();
-		try {
-			// get the store for the user
-			IMAPStore store = cache.get(user);
-			com.sun.mail.imap.IMAPFolder folder = (com.sun.mail.imap.IMAPFolder) store.getDefaultFolder();
-			
-			Folder[] folders = folder.list();
-			// loop over all folders
-			for (int i = 0; i < folders.length; i++) {
-				Folder f = folders[i];
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    public FetchFoldersResult executeInternal(FetchFolders action, ExecutionContext arg1)
+    throws ActionException {
+        User user = getUser();
+        ArrayList<IMAPFolder> fList = new ArrayList<IMAPFolder>();
+        try {
+            // get the store for the user
+            IMAPStore store = cache.get(user);
+            com.sun.mail.imap.IMAPFolder folder = (com.sun.mail.imap.IMAPFolder) store.getDefaultFolder();
+            
+            Folder[] folders = folder.list();
+            // loop over all folders
+            for (int i = 0; i < folders.length; i++) {
+                Folder f = folders[i];
 
-				createIMAPFolderTree(fList, createFolder(f), f.list());
-				
-			}
-			
-			return new FetchFoldersResult(fList);
-		} catch (Exception e) {
-			logger.error("Unable to get folders for User " + user,e);
-			throw new ActionException("Unable to get folders for User "
-					+ user);
-		}
-	}
+                createIMAPFolderTree(fList, createFolder(f), f.list());
+                
+            }
+            
+            return new FetchFoldersResult(fList);
+        } catch (Exception e) {
+            logger.error("Unable to get folders for User " + user,e);
+            throw new ActionException("Unable to get folders for User "
+                    + user);
+        }
+    }
 
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<FetchFolders> getActionType() {
-		return FetchFolders.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<FetchFolders> getActionType() {
+        return FetchFolders.class;
+    }
 
-	/**
-	 * Create a new IMAPFolder from the given Folder
-	 * 
-	 * @param folder
-	 * @return imapFolder
-	 * @throws MessagingException
-	 */
-	private IMAPFolder createFolder(Folder folder) {
+    /**
+     * Create a new IMAPFolder from the given Folder
+     * 
+     * @param folder
+     * @return imapFolder
+     * @throws MessagingException
+     */
+    private IMAPFolder createFolder(Folder folder) {
 
-		String fullName = folder.getFullName();
-		String delimiter;
-		IMAPFolder iFolder = null;
-		
-		try {
-			delimiter = String.valueOf(folder.getSeparator());
-			iFolder = new IMAPFolder(fullName);
-			iFolder.setDelimiter(delimiter);
-			iFolder.setMessageCount(folder.getMessageCount());
-			iFolder.setSubscribed(folder.isSubscribed());
-			iFolder.setUnseenMessageCount(folder.getUnreadMessageCount());
-			
-		} catch (MessagingException e) {
-			logger.error("Unable to construct folder " + folder.getFullName(),e);
-		}
-		
-		
-		return iFolder;
-	}
-	
-	/**
-	 * Create a folder tree 
-	 * 
-	 * @param fList
-	 * @param iFolder
-	 * @param childFolders
-	 * @throws MessagingException
-	 */
-	private void createIMAPFolderTree(List<IMAPFolder> fList,
-			IMAPFolder iFolder, Folder[] childFolders) throws MessagingException {
-		
-		for (int a = 0; a < childFolders.length; a++) {
-			IMAPFolder folder = createFolder(childFolders[a]);
-			if (folder != null) {
-				iFolder.getChildIMAPFolders().add(createFolder(childFolders[a]));
-			}
-		}
-		fList.add(iFolder);
-	}
+        String fullName = folder.getFullName();
+        String delimiter;
+        IMAPFolder iFolder = null;
+        
+        try {
+            delimiter = String.valueOf(folder.getSeparator());
+            iFolder = new IMAPFolder(fullName);
+            iFolder.setDelimiter(delimiter);
+            iFolder.setMessageCount(folder.getMessageCount());
+            iFolder.setSubscribed(folder.isSubscribed());
+            iFolder.setUnseenMessageCount(folder.getUnreadMessageCount());
+            
+        } catch (MessagingException e) {
+            logger.error("Unable to construct folder " + folder.getFullName(),e);
+        }
+        
+        
+        return iFolder;
+    }
+    
+    /**
+     * Create a folder tree 
+     * 
+     * @param fList
+     * @param iFolder
+     * @param childFolders
+     * @throws MessagingException
+     */
+    private void createIMAPFolderTree(List<IMAPFolder> fList,
+            IMAPFolder iFolder, Folder[] childFolders) throws MessagingException {
+        
+        for (int a = 0; a < childFolders.length; a++) {
+            IMAPFolder folder = createFolder(childFolders[a]);
+            if (folder != null) {
+                iFolder.getChildIMAPFolders().add(createFolder(childFolders[a]));
+            }
+        }
+        fList.add(iFolder);
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/ForwardMessageHandler.java	(working copy)
@@ -55,77 +55,77 @@
  */
 public class ForwardMessageHandler extends AbstractSendMessageHandler<ForwardMessage>{
 
-	@Inject
-	public ForwardMessageHandler(Log logger, FileItemRegistry registry,
-			IMAPStoreCache store, Provider<HttpSession> provider,
-			@Named("SMTPServerAddress") String address, @Named("SMTPServerPort") int port, @Named("SMTPAuth") boolean auth, @Named("SMTPS") boolean useSSL) {
-		super(logger, registry, store, provider, address, port, auth, useSSL);
-	}
+    @Inject
+    public ForwardMessageHandler(Log logger, FileItemRegistry registry,
+            IMAPStoreCache store, Provider<HttpSession> provider,
+            @Named("SMTPServerAddress") String address, @Named("SMTPServerPort") int port, @Named("SMTPAuth") boolean auth, @Named("SMTPS") boolean useSSL) {
+        super(logger, registry, store, provider, address, port, auth, useSSL);
+    }
 
-	@Override
-	protected Message createMessage(Session session, ForwardMessage action)
-			throws AddressException, MessagingException, ActionException {
-			MimeMessage message = new MimeMessage(session);
-			SMTPMessage m = action.getMessage();
-			message.setFrom(new InternetAddress(m.getFrom()));
-			ArrayList<String> to = m.getTo();
-			for (int i = 0; i < to.size(); i++) {
-				message.addRecipient(RecipientType.TO, new InternetAddress(to
-						.get(i)));
-			}
+    @Override
+    protected Message createMessage(Session session, ForwardMessage action)
+            throws AddressException, MessagingException, ActionException {
+            MimeMessage message = new MimeMessage(session);
+            SMTPMessage m = action.getMessage();
+            message.setFrom(new InternetAddress(m.getFrom()));
+            ArrayList<String> to = m.getTo();
+            for (int i = 0; i < to.size(); i++) {
+                message.addRecipient(RecipientType.TO, new InternetAddress(to
+                        .get(i)));
+            }
 
-			ArrayList<String> cc = m.getCc();
-			for (int i = 0; i < cc.size(); i++) {
-				message.addRecipient(RecipientType.CC, new InternetAddress(cc
-						.get(i)));
-			}
-			message.setSubject(m.getSubject());
-			message.saveChanges();
-			return message;
-	}
+            ArrayList<String> cc = m.getCc();
+            for (int i = 0; i < cc.size(); i++) {
+                message.addRecipient(RecipientType.CC, new InternetAddress(cc
+                        .get(i)));
+            }
+            message.setSubject(m.getSubject());
+            message.saveChanges();
+            return message;
+    }
 
-	@Override
-	protected Message fillBody(Message message,
-			ForwardMessage action) throws MessagingException, ActionException {
-		SMTPMessage m = action.getMessage();
+    @Override
+    protected Message fillBody(Message message,
+            ForwardMessage action) throws MessagingException, ActionException {
+        SMTPMessage m = action.getMessage();
 
-		// create the message part
-		MimeBodyPart messageBodyPart = new MimeBodyPart();
+        // create the message part
+        MimeBodyPart messageBodyPart = new MimeBodyPart();
 
-		// fill message
-		messageBodyPart.setText(m.getText());
+        // fill message
+        messageBodyPart.setText(m.getText());
 
-		Multipart multipart = new MimeMultipart();
-		multipart.addBodyPart(messageBodyPart);
-		
-		IMAPStore store = cache.get(getUser());
-		
-		IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
-		if (folder.isOpen() == false) {
-			folder.open(Folder.READ_ONLY);
-		}
-		Message fMessage = folder.getMessageByUID(action.getReplyMessageUid());
-		
-		// Create and fill part for the forwarded content
-		messageBodyPart = new MimeBodyPart();
-		messageBodyPart.setDataHandler(fMessage.getDataHandler());
-		multipart.addBodyPart(messageBodyPart);
+        Multipart multipart = new MimeMultipart();
+        multipart.addBodyPart(messageBodyPart);
+        
+        IMAPStore store = cache.get(getUser());
+        
+        IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
+        if (folder.isOpen() == false) {
+            folder.open(Folder.READ_ONLY);
+        }
+        Message fMessage = folder.getMessageByUID(action.getReplyMessageUid());
+        
+        // Create and fill part for the forwarded content
+        messageBodyPart = new MimeBodyPart();
+        messageBodyPart.setDataHandler(fMessage.getDataHandler());
+        multipart.addBodyPart(messageBodyPart);
 
-		multipart = handleAttachments(multipart, m.getMessageAttachments());
-		
-		
-		// Put parts in message
-		message.setContent(multipart);
-		message.saveChanges();
-		return message;
-	}
+        multipart = handleAttachments(multipart, m.getMessageAttachments());
+        
+        
+        // Put parts in message
+        message.setContent(multipart);
+        message.saveChanges();
+        return message;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<ForwardMessage> getActionType() {
-		return ForwardMessage.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<ForwardMessage> getActionType() {
+        return ForwardMessage.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/NoopHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/NoopHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/NoopHandler.java	(working copy)
@@ -42,36 +42,36 @@
 public class NoopHandler extends AbstractSessionHandler<Noop, NoopResult>{
 
 
-	@Inject
-	public NoopHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> provider) {
-		super(cache,logger,provider);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	public NoopResult executeInternal(Noop action, ExecutionContext context)
-			throws ActionException {
-		try {
-			IMAPStore store = cache.get(getUser());
-			if (store.getURLName() != null &&
-				!InMemoryIMAPStoreCache.DEMO_MODE.equals(store.getURLName().getHost()) ) {
-				// just send a noop to keep the connection alive
-				store.idle();
-			}
-			return new NoopResult();
-		} catch (Exception e) {
-			throw new ActionException("Unable to send NOOP " + e.getMessage());
-		}
-	}
+    @Inject
+    public NoopHandler(IMAPStoreCache cache, Log logger, Provider<HttpSession> provider) {
+        super(cache,logger,provider);
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    public NoopResult executeInternal(Noop action, ExecutionContext context)
+            throws ActionException {
+        try {
+            IMAPStore store = cache.get(getUser());
+            if (store.getURLName() != null &&
+                !InMemoryIMAPStoreCache.DEMO_MODE.equals(store.getURLName().getHost()) ) {
+                // just send a noop to keep the connection alive
+                store.idle();
+            }
+            return new NoopResult();
+        } catch (Exception e) {
+            throw new ActionException("Unable to send NOOP " + e.getMessage());
+        }
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<Noop> getActionType() {
-		return Noop.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<Noop> getActionType() {
+        return Noop.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/MoveMessageHandler.java	(working copy)
@@ -45,49 +45,49 @@
  */
 public class MoveMessageHandler extends AbstractSessionHandler<MoveMessage, MoveMessageResult>{
 
-	@Inject
-	public MoveMessageHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public MoveMessageHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	protected MoveMessageResult executeInternal(MoveMessage action,
-			ExecutionContext context) throws ActionException {
-		User user = getUser();
-		try {
-			IMAPStore store = cache.get(user);
-			IMAPFolder folder = (IMAPFolder)store.getFolder(action.getOldFolder().getFullName());
-			if (folder.isOpen() == false) {
-				folder.open(Folder.READ_WRITE);
-			}
-			Message m = folder.getMessageByUID(action.getMessageUid());
-			Message[] mArray = new Message[] {m};
-			folder.copyMessages(mArray, store.getFolder(action.getNewFolder().getFullName()));
-			folder.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
-			try {
-				folder.expunge(mArray);
-				folder.close(false);
-			} catch (MessagingException e) {
-				// prolly UID expunge is not supported
-				folder.close(true);
-			}
-			return new MoveMessageResult();
-		} catch (MessagingException e) {
-			logger.error("Error while moving message " + action.getMessageUid() + " from folder " + action.getOldFolder() + " to " + action.getNewFolder(),e);
-			throw new ActionException(e);
-		}
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    protected MoveMessageResult executeInternal(MoveMessage action,
+            ExecutionContext context) throws ActionException {
+        User user = getUser();
+        try {
+            IMAPStore store = cache.get(user);
+            IMAPFolder folder = (IMAPFolder)store.getFolder(action.getOldFolder().getFullName());
+            if (folder.isOpen() == false) {
+                folder.open(Folder.READ_WRITE);
+            }
+            Message m = folder.getMessageByUID(action.getMessageUid());
+            Message[] mArray = new Message[] {m};
+            folder.copyMessages(mArray, store.getFolder(action.getNewFolder().getFullName()));
+            folder.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
+            try {
+                folder.expunge(mArray);
+                folder.close(false);
+            } catch (MessagingException e) {
+                // prolly UID expunge is not supported
+                folder.close(true);
+            }
+            return new MoveMessageResult();
+        } catch (MessagingException e) {
+            logger.error("Error while moving message " + action.getMessageUid() + " from folder " + action.getOldFolder() + " to " + action.getNewFolder(),e);
+            throw new ActionException(e);
+        }
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<MoveMessage> getActionType() {
-		return MoveMessage.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<MoveMessage> getActionType() {
+        return MoveMessage.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/CheckSessionHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/CheckSessionHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/CheckSessionHandler.java	(working copy)
@@ -38,34 +38,34 @@
  * Handler for asking the server if the session is valid
  */
 public class CheckSessionHandler implements ActionHandler<CheckSession, CheckSessionResult> {
-	
-	protected final Provider<HttpSession> sessionProvider;
-	protected final Log logger;
-	
-	@Inject
-	public CheckSessionHandler(Log logger, Provider<HttpSession> provider) {
-		this.sessionProvider = provider;
-		this.logger = logger;
-	}
+    
+    protected final Provider<HttpSession> sessionProvider;
+    protected final Log logger;
+    
+    @Inject
+    public CheckSessionHandler(Log logger, Provider<HttpSession> provider) {
+        this.sessionProvider = provider;
+        this.logger = logger;
+    }
 
-	public CheckSessionResult execute(CheckSession arg0, ExecutionContext arg1) throws ActionException {
-		CheckSessionResult ret = new CheckSessionResult();
-		try {
-			User user = (User) sessionProvider.get().getAttribute("user");
-			if (user != null && user.getAuthenticated())
-				ret.setUser(user);
-		} catch (Exception e) {
-			e.printStackTrace();
-		}
-		return ret;
-	}
+    public CheckSessionResult execute(CheckSession arg0, ExecutionContext arg1) throws ActionException {
+        CheckSessionResult ret = new CheckSessionResult();
+        try {
+            User user = (User) sessionProvider.get().getAttribute("user");
+            if (user != null && user.getAuthenticated())
+                ret.setUser(user);
+        } catch (Exception e) {
+            e.printStackTrace();
+        }
+        return ret;
+    }
 
-	public Class<CheckSession> getActionType() {
-		return CheckSession.class;
-	}
+    public Class<CheckSession> getActionType() {
+        return CheckSession.class;
+    }
 
-	public void rollback(CheckSession arg0, CheckSessionResult arg1, ExecutionContext arg2) throws ActionException {
-	}
+    public void rollback(CheckSession arg0, CheckSessionResult arg1, ExecutionContext arg2) throws ActionException {
+    }
 
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/FetchMessagesHandler.java	(working copy)
@@ -41,59 +41,59 @@
  * 
  */
 public class FetchMessagesHandler extends
-		AbstractFetchMessagesHandler<FetchMessages> {
+        AbstractFetchMessagesHandler<FetchMessages> {
 
-	@Inject
-	public FetchMessagesHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> provider) {
-		super(cache, logger, provider);
-	}
+    @Inject
+    public FetchMessagesHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> provider) {
+        super(cache, logger, provider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<FetchMessages> getActionType() {
-		return FetchMessages.class;
-	}
+    /*
+     * (non-Javadoc)
+     * 
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<FetchMessages> getActionType() {
+        return FetchMessages.class;
+    }
 
-	@Override
-	protected Message[] getMessagesToConvert(com.sun.mail.imap.IMAPFolder f,
-			FetchMessages action) throws MessagingException {
-		String searchString = action.getSearchString();
-		int start = action.getStart();
-		int offset = action.getOffset();
-		int end = start + offset;
+    @Override
+    protected Message[] getMessagesToConvert(com.sun.mail.imap.IMAPFolder f,
+            FetchMessages action) throws MessagingException {
+        String searchString = action.getSearchString();
+        int start = action.getStart();
+        int offset = action.getOffset();
+        int end = start + offset;
 
-		int exists = f.getMessageCount();
+        int exists = f.getMessageCount();
 
-		if (end > exists) {
-			end = exists;
-		}
+        if (end > exists) {
+            end = exists;
+        }
 
-		int firstIndex = exists - end;
-		if (firstIndex < 1) {
-			firstIndex = 1;
-		}
-		int lastIndex = exists - start;
-		Message[] messages;
+        int firstIndex = exists - end;
+        if (firstIndex < 1) {
+            firstIndex = 1;
+        }
+        int lastIndex = exists - start;
+        Message[] messages;
 
-		// check if a searchString was given, and if so use it
-		if (searchString == null) {
-			messages = f.getMessages(firstIndex, lastIndex);
-		} else {
-			SearchTerm subjectTerm = new SubjectTerm(searchString);
-			SearchTerm fromTerm = new FromStringTerm(searchString);
-			SearchTerm bodyTerm = new BodyTerm(searchString);
-			SearchTerm orTerm = new OrTerm(new SearchTerm[] { subjectTerm,
-					fromTerm, bodyTerm });
-			messages = f.search(orTerm);
-			if (end > messages.length) {
-				end = messages.length;
-			}
-			exists = messages.length;
-		}
-		return messages;
-	}
+        // check if a searchString was given, and if so use it
+        if (searchString == null) {
+            messages = f.getMessages(firstIndex, lastIndex);
+        } else {
+            SearchTerm subjectTerm = new SubjectTerm(searchString);
+            SearchTerm fromTerm = new FromStringTerm(searchString);
+            SearchTerm bodyTerm = new BodyTerm(searchString);
+            SearchTerm orTerm = new OrTerm(new SearchTerm[] { subjectTerm,
+                    fromTerm, bodyTerm });
+            messages = f.search(orTerm);
+            if (end > messages.length) {
+                end = messages.length;
+            }
+            exists = messages.length;
+        }
+        return messages;
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/AbstractSendMessageHandler.java	(working copy)
@@ -71,265 +71,265 @@
  */
 public abstract class AbstractSendMessageHandler<A extends SendMessage> extends AbstractSessionHandler<A,GenericResult> {
 
-	private final FileItemRegistry registry;
-	private final Properties props = new Properties();
-	private final boolean auth;
-	private final String address;
-	private final int port;
-	private boolean useSSL = false;
+    private final FileItemRegistry registry;
+    private final Properties props = new Properties();
+    private final boolean auth;
+    private final String address;
+    private final int port;
+    private boolean useSSL = false;
 
-	@Inject
-	public AbstractSendMessageHandler(Log logger, FileItemRegistry registry,IMAPStoreCache store, Provider<HttpSession> provider, @Named("SMTPServerAddress") String address, @Named("SMTPServerPort") int port, @Named("SMTPAuth") boolean auth, @Named("SMTPS") boolean useSSL) {
-		super(store,logger,provider);
-		this.registry = registry;
-		this.auth = auth;
-		this.address = address;
-		this.port = port;
-		this.useSSL  = useSSL;
-		props.put("mail.smtp.auth", auth);
-	}
+    @Inject
+    public AbstractSendMessageHandler(Log logger, FileItemRegistry registry,IMAPStoreCache store, Provider<HttpSession> provider, @Named("SMTPServerAddress") String address, @Named("SMTPServerPort") int port, @Named("SMTPAuth") boolean auth, @Named("SMTPS") boolean useSSL) {
+        super(store,logger,provider);
+        this.registry = registry;
+        this.auth = auth;
+        this.address = address;
+        this.port = port;
+        this.useSSL  = useSSL;
+        props.put("mail.smtp.auth", auth);
+    }
 
 
-	/**
-	 * Create basic Message which contains all headers. No body is filled
-	 * 
-	 * @param session the Session
-	 * @param action the action
-	 * @return message
-	 * @throws AddressException
-	 * @throws MessagingException
-	 * @throws ActionException
-	 */
-	protected abstract Message createMessage(Session session, A action) throws AddressException, MessagingException,ActionException;
-	
-	/**
-	 * Fill the body of the given message with data which the given action contain
-	 * 
-	 * @param message the message
-	 * @param action the action
-	 * @return filledMessage
-	 * @throws MessagingException
-	 * @throws ActionException
-	 */
-	protected Message fillBody(Message message, A action) throws MessagingException, ActionException {
+    /**
+     * Create basic Message which contains all headers. No body is filled
+     * 
+     * @param session the Session
+     * @param action the action
+     * @return message
+     * @throws AddressException
+     * @throws MessagingException
+     * @throws ActionException
+     */
+    protected abstract Message createMessage(Session session, A action) throws AddressException, MessagingException,ActionException;
+    
+    /**
+     * Fill the body of the given message with data which the given action contain
+     * 
+     * @param message the message
+     * @param action the action
+     * @return filledMessage
+     * @throws MessagingException
+     * @throws ActionException
+     */
+    protected Message fillBody(Message message, A action) throws MessagingException, ActionException {
 
-		SMTPMessage m = action.getMessage();
-		ArrayList<MessageAttachment> attachments = m.getMessageAttachments();
-		// check if there are any attachments to include
-		if (attachments == null || attachments.isEmpty()) {
-			message.setText(m.getText());
-		} else {
-			// create the message part
-			MimeBodyPart messageBodyPart = new MimeBodyPart();
+        SMTPMessage m = action.getMessage();
+        ArrayList<MessageAttachment> attachments = m.getMessageAttachments();
+        // check if there are any attachments to include
+        if (attachments == null || attachments.isEmpty()) {
+            message.setText(m.getText());
+        } else {
+            // create the message part
+            MimeBodyPart messageBodyPart = new MimeBodyPart();
 
-			// fill message
-			messageBodyPart.setText(m.getText());
+            // fill message
+            messageBodyPart.setText(m.getText());
 
-			Multipart multipart = new MimeMultipart();
-			multipart.addBodyPart(messageBodyPart);
-			
-			multipart = handleAttachments(multipart, attachments);
-			
-			// Put parts in message
-			message.setContent(multipart);
+            Multipart multipart = new MimeMultipart();
+            multipart.addBodyPart(messageBodyPart);
+            
+            multipart = handleAttachments(multipart, attachments);
+            
+            // Put parts in message
+            message.setContent(multipart);
 
-		}
-		// save message 
-		message.saveChanges();
-		return message;
-	}
+        }
+        // save message 
+        message.saveChanges();
+        return message;
+    }
 
-	protected void resetAttachments(A action) throws MessagingException, ActionException {
-		SMTPMessage m = action.getMessage();
-		ArrayList<MessageAttachment> attachments = m.getMessageAttachments();
-		if (attachments != null && ! attachments.isEmpty()) {
-			for(MessageAttachment attach : attachments) 
-				registry.remove(attach.getName());
-		}
-	}
-	
-	/**
-	 * Construct the multipart for the given attachments and return it
-	 * 
-	 * @param multipart 
-	 * @param attachments
-	 * @return multipart
-	 * @throws MessagingException
-	 */
-	protected Multipart handleAttachments(Multipart multipart, ArrayList<MessageAttachment> attachments) throws MessagingException {
-		if (attachments != null) {
-			for(MessageAttachment attachment: attachments) {
-				// get the attachment from the registry
-				FileItem fItem = registry.get(attachment.getName());
-				if (fItem == null)
-					continue;
-				
-				// Part two is attachment
-				MimeBodyPart messageBodyPart = new MimeBodyPart();
-				DataSource source = new FileItemDataStore(fItem);
-				messageBodyPart.setDataHandler(new DataHandler(source));
-				messageBodyPart.setFileName(source.getName());
-				multipart.addBodyPart(messageBodyPart);
-			}
-		}
-		return multipart;
-	}
+    protected void resetAttachments(A action) throws MessagingException, ActionException {
+        SMTPMessage m = action.getMessage();
+        ArrayList<MessageAttachment> attachments = m.getMessageAttachments();
+        if (attachments != null && ! attachments.isEmpty()) {
+            for(MessageAttachment attach : attachments) 
+                registry.remove(attach.getName());
+        }
+    }
+    
+    /**
+     * Construct the multipart for the given attachments and return it
+     * 
+     * @param multipart 
+     * @param attachments
+     * @return multipart
+     * @throws MessagingException
+     */
+    protected Multipart handleAttachments(Multipart multipart, ArrayList<MessageAttachment> attachments) throws MessagingException {
+        if (attachments != null) {
+            for(MessageAttachment attachment: attachments) {
+                // get the attachment from the registry
+                FileItem fItem = registry.get(attachment.getName());
+                if (fItem == null)
+                    continue;
+                
+                // Part two is attachment
+                MimeBodyPart messageBodyPart = new MimeBodyPart();
+                DataSource source = new FileItemDataStore(fItem);
+                messageBodyPart.setDataHandler(new DataHandler(source));
+                messageBodyPart.setFileName(source.getName());
+                multipart.addBodyPart(messageBodyPart);
+            }
+        }
+        return multipart;
+    }
 
-	protected void sendMessage(User user, Session session, Message message) throws MessagingException {
-		Transport transport;
-	
-		if (InMemoryIMAPStoreCache.DEMO_MODE.equals(address)) {
-			transport = new DemoModeSMTPTransport(session);
-		} else if (useSSL) {
-			transport = session.getTransport("smtps");
-		} else {
-			transport = session.getTransport("smtp");
-		}
+    protected void sendMessage(User user, Session session, Message message) throws MessagingException {
+        Transport transport;
+    
+        if (InMemoryIMAPStoreCache.DEMO_MODE.equals(address)) {
+            transport = new DemoModeSMTPTransport(session);
+        } else if (useSSL) {
+            transport = session.getTransport("smtps");
+        } else {
+            transport = session.getTransport("smtp");
+        }
 
-		if (auth) {
-			logger.debug("Use auth for smtp connection");
-			transport.connect(address,port,user.getName(), user.getPassword());
-		} else {
-			transport.connect(address, port, null,null);
-		}
-		
-		logger.info("Send message from " + message.getFrom()[0].toString()+ " to " + message.getRecipients(RecipientType.TO).toString());
-		transport.sendMessage(message, message.getAllRecipients());
-	}
+        if (auth) {
+            logger.debug("Use auth for smtp connection");
+            transport.connect(address,port,user.getName(), user.getPassword());
+        } else {
+            transport.connect(address, port, null,null);
+        }
+        
+        logger.info("Send message from " + message.getFrom()[0].toString()+ " to " + message.getRecipients(RecipientType.TO).toString());
+        transport.sendMessage(message, message.getAllRecipients());
+    }
 
-	protected void saveSentMessage(User user, Message message) throws MessagingException {
-	    IMAPStore iStore = cache.get(user);
-	    IMAPFolder folder = (IMAPFolder) iStore.getFolder(user.getSettings().getSentFolderName());
-	    
-	    boolean exists = false;
-	    if (folder.exists() == false) {
-	    	exists = folder.create(IMAPFolder.READ_WRITE);
-	    } else {
-	    	exists = true;
-	    }
-	    if (exists) {
-	    	if (folder.isOpen() == false) {
-	    		folder.open(Folder.READ_WRITE);
-	    	}
-	    	message.setFlag(Flag.SEEN, true);
-	    	folder.appendMessages(new Message[] {message});
-	    	
-	    	try {
-	    		folder.close(false);
-	    	} catch (MessagingException e) {
-	    		// we don't care on close
-	    	}
+    protected void saveSentMessage(User user, Message message) throws MessagingException {
+        IMAPStore iStore = cache.get(user);
+        IMAPFolder folder = (IMAPFolder) iStore.getFolder(user.getSettings().getSentFolderName());
+        
+        boolean exists = false;
+        if (folder.exists() == false) {
+            exists = folder.create(IMAPFolder.READ_WRITE);
+        } else {
+            exists = true;
+        }
+        if (exists) {
+            if (folder.isOpen() == false) {
+                folder.open(Folder.READ_WRITE);
+            }
+            message.setFlag(Flag.SEEN, true);
+            folder.appendMessages(new Message[] {message});
+            
+            try {
+                folder.close(false);
+            } catch (MessagingException e) {
+                // we don't care on close
+            }
 
-	    }
+        }
     }
-	
-	
+    
+    
 
-	/**
-	 * DataStore which wrap a FileItem
-	 * 
-	 */
-	private class FileItemDataStore implements DataSource {
+    /**
+     * DataStore which wrap a FileItem
+     * 
+     */
+    private class FileItemDataStore implements DataSource {
 
-		private FileItem item;
+        private FileItem item;
 
-		public FileItemDataStore(FileItem item) {
-			this.item = item;
-		}
+        public FileItemDataStore(FileItem item) {
+            this.item = item;
+        }
 
-		/*
-		 * (non-Javadoc)
-		 * @see javax.activation.DataSource#getContentType()
-		 */
-		public String getContentType() {
-			return item.getContentType();
-		}
+        /*
+         * (non-Javadoc)
+         * @see javax.activation.DataSource#getContentType()
+         */
+        public String getContentType() {
+            return item.getContentType();
+        }
 
-		/*
-		 * (non-Javadoc)
-		 * @see javax.activation.DataSource#getInputStream()
-		 */
-		public InputStream getInputStream() throws IOException {
-			return item.getInputStream();
-		}
+        /*
+         * (non-Javadoc)
+         * @see javax.activation.DataSource#getInputStream()
+         */
+        public InputStream getInputStream() throws IOException {
+            return item.getInputStream();
+        }
 
-		/*
-		 * (non-Javadoc)
-		 * @see javax.activation.DataSource#getName()
-		 */
-		public String getName() {
-			String fullName = item.getName();
-			
-			// Strip path from file
-			int index = fullName.lastIndexOf(File.separator);
-			if (index == -1) {
-				return fullName;
-			} else {
-				return fullName.substring(index +1 ,fullName.length());
-			}
-		}
+        /*
+         * (non-Javadoc)
+         * @see javax.activation.DataSource#getName()
+         */
+        public String getName() {
+            String fullName = item.getName();
+            
+            // Strip path from file
+            int index = fullName.lastIndexOf(File.separator);
+            if (index == -1) {
+                return fullName;
+            } else {
+                return fullName.substring(index +1 ,fullName.length());
+            }
+        }
 
-		/*
-		 * (non-Javadoc)
-		 * @see javax.activation.DataSource#getOutputStream()
-		 */
-		public OutputStream getOutputStream() throws IOException {
-			return null;
-		}
+        /*
+         * (non-Javadoc)
+         * @see javax.activation.DataSource#getOutputStream()
+         */
+        public OutputStream getOutputStream() throws IOException {
+            return null;
+        }
 
-	}
+    }
 
 
 
-	@Override
-	protected GenericResult executeInternal(A action, ExecutionContext context)
-			throws ActionException {
-		GenericResult result = new GenericResult();
-		try {
-			Session session = Session.getDefaultInstance(props);
+    @Override
+    protected GenericResult executeInternal(A action, ExecutionContext context)
+            throws ActionException {
+        GenericResult result = new GenericResult();
+        try {
+            Session session = Session.getDefaultInstance(props);
 
-			Message message = createMessage(session, action);
-			message = fillBody(message,action);
+            Message message = createMessage(session, action);
+            message = fillBody(message,action);
 
-			sendMessage(getUser(),session, message);
-			saveSentMessage(getUser(), message);
-			resetAttachments(action);
-		
-			// TODO: notify the user more accurately where is the error
-			// if the message was sent and the storage in the sent folder failed, etc.
-		} catch (AddressException e) {
-			result.setError("Error while parsing recipient: " + e.getMessage());
-			logger.error("Error while parsing recipient", e);
-		} catch (AuthenticationFailedException e) {
-			result.setError("Error while sending message: SMTP Authentication error.");
-			logger.error("SMTP Authentication error", e);
-		} catch (MessagingException e) {
-			result.setError("Error while sending message: " + e.getMessage());
-			logger.error("Error while sending message", e);
-		} catch (Exception e) {
-			result.setError("Unexpected exception while sendig message: " + e.getMessage());
-			logger.error("Unexpected exception while sendig message: ", e);
-		}
-		return result;
-	}
+            sendMessage(getUser(),session, message);
+            saveSentMessage(getUser(), message);
+            resetAttachments(action);
+        
+            // TODO: notify the user more accurately where is the error
+            // if the message was sent and the storage in the sent folder failed, etc.
+        } catch (AddressException e) {
+            result.setError("Error while parsing recipient: " + e.getMessage());
+            logger.error("Error while parsing recipient", e);
+        } catch (AuthenticationFailedException e) {
+            result.setError("Error while sending message: SMTP Authentication error.");
+            logger.error("SMTP Authentication error", e);
+        } catch (MessagingException e) {
+            result.setError("Error while sending message: " + e.getMessage());
+            logger.error("Error while sending message", e);
+        } catch (Exception e) {
+            result.setError("Unexpected exception while sendig message: " + e.getMessage());
+            logger.error("Unexpected exception while sendig message: ", e);
+        }
+        return result;
+    }
 
-	/**
-	 * Get a Address array for the given ArrayList 
-	 * 
-	 * @param recipients
-	 * @return addressArray
-	 * @throws AddressException
-	 */
-	protected Address[] getRecipients(ArrayList<String> recipients) throws AddressException {
-		if (recipients == null) {
-			return new InternetAddress[]{};
-		}
-		Address[] array = new Address[recipients.size()];
-		for (int i = 0; i < recipients.size(); i++) {
-			array[i] = new InternetAddress(recipients.get(i));
-		}
-		return array;
+    /**
+     * Get a Address array for the given ArrayList 
+     * 
+     * @param recipients
+     * @return addressArray
+     * @throws AddressException
+     */
+    protected Address[] getRecipients(ArrayList<String> recipients) throws AddressException {
+        if (recipients == null) {
+            return new InternetAddress[]{};
+        }
+        Address[] array = new Address[recipients.size()];
+        for (int i = 0; i < recipients.size(); i++) {
+            array[i] = new InternetAddress(recipients.get(i));
+        }
+        return array;
 
-	}
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/FetchRecentMessagesHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/FetchRecentMessagesHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/FetchRecentMessagesHandler.java	(working copy)
@@ -36,26 +36,26 @@
 
 public class FetchRecentMessagesHandler extends AbstractFetchMessagesHandler<FetchRecentMessages> {
 
-	@Inject
-	public FetchRecentMessagesHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> provider) {
-		super(cache, logger, provider);
-	}
+    @Inject
+    public FetchRecentMessagesHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> provider) {
+        super(cache, logger, provider);
+    }
 
-	
-	@Override
-	protected Message[] getMessagesToConvert(com.sun.mail.imap.IMAPFolder f,
-			FetchRecentMessages action) throws MessagingException {
-		Message[] messages = f.search(new FlagTerm(new Flags(Flag.RECENT), true));
-		return messages;
-	}
+    
+    @Override
+    protected Message[] getMessagesToConvert(com.sun.mail.imap.IMAPFolder f,
+            FetchRecentMessages action) throws MessagingException {
+        Message[] messages = f.search(new FlagTerm(new Flags(Flag.RECENT), true));
+        return messages;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<FetchRecentMessages> getActionType() {
-		return FetchRecentMessages.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<FetchRecentMessages> getActionType() {
+        return FetchRecentMessages.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/DeleteAllMessagesHandler.java	(working copy)
@@ -38,42 +38,42 @@
 
 public class DeleteAllMessagesHandler extends AbstractDeleteMessageHandler<DeleteAllMessages>{
 
-	@Inject
-	public DeleteAllMessagesHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public DeleteAllMessagesHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractDeleteMessageHandler#getMessagesToDelete(org.apache.hupa.shared.rpc.DeleteMessage)
-	 */
-	protected Message[] getMessagesToDelete(DeleteAllMessages action)
-			throws ActionException {
-		User user = getUser();
-		try {
-			logger.info("Delete all messages in folder " + action.getFolder() + " for user " + user);
-			IMAPStore store =cache.get(user);
-			IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
-			if (folder.isOpen() == false) {
-				folder.open(Folder.READ_WRITE);
-			}
-			return folder.getMessages();
-		} catch (MessagingException e) {
-			String errorMsg = "Error while deleting all messages in folder " + action.getFolder() + " for user " + user;
-			logger.error(errorMsg, e);
-			throw new ActionException(errorMsg);
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractDeleteMessageHandler#getMessagesToDelete(org.apache.hupa.shared.rpc.DeleteMessage)
+     */
+    protected Message[] getMessagesToDelete(DeleteAllMessages action)
+            throws ActionException {
+        User user = getUser();
+        try {
+            logger.info("Delete all messages in folder " + action.getFolder() + " for user " + user);
+            IMAPStore store =cache.get(user);
+            IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
+            if (folder.isOpen() == false) {
+                folder.open(Folder.READ_WRITE);
+            }
+            return folder.getMessages();
+        } catch (MessagingException e) {
+            String errorMsg = "Error while deleting all messages in folder " + action.getFolder() + " for user " + user;
+            logger.error(errorMsg, e);
+            throw new ActionException(errorMsg);
 
-		}
-		
-	}
+        }
+        
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<DeleteAllMessages> getActionType() {
-		return DeleteAllMessages.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<DeleteAllMessages> getActionType() {
+        return DeleteAllMessages.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/JavamailUtil.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/JavamailUtil.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/JavamailUtil.java	(working copy)
@@ -31,64 +31,64 @@
  *
  */
 public class JavamailUtil {
-	
-	/**
-	 * Convert the given Flags to a ArrayList of IMAPFlags
-	 * 
-	 * @param flags
-	 * @return imapFlags
-	 */
-	public static ArrayList<IMAPFlag> convert(Flags flags) {
-		ArrayList<IMAPFlag> fList = new ArrayList<IMAPFlag>();
-		Flag[] flagArray = flags.getSystemFlags();
-		for (int i = 0; i < flagArray.length; i++) {
-			Flag flag = flagArray[i];
-			fList.add(convert(flag));
-		}
-		return fList;
-		
-	}
-	
-	public static IMAPFlag convert(Flag flag) {
-		if (flag.equals(Flag.SEEN)) {
-			return IMAPFlag.SEEN;
-		} else if (flag.equals(Flag.RECENT)) {
-			return IMAPFlag.RECENT;
-		} else if (flag.equals(Flag.ANSWERED)) {
-			return IMAPFlag.ANSWERED;
-		} else if (flag.equals(Flag.DELETED)) {
-			return IMAPFlag.DELETED;
-		}
-		throw new IllegalArgumentException("Flag not supported");
-	}
-	/**
-	 * Convert the given ArrayList of IMAPFlags to a Flags object
-	 * 
-	 * @param imapFlags
-	 * @return flags
-	 */
-	public static Flags convert(ArrayList<IMAPFlag> imapFlags) {
-		Flags iFlags = new Flags();
-		for ( int i = 0; i< imapFlags.size(); i++) {
-			IMAPFlag flag = imapFlags.get(i);
-			
-			iFlags.add(convert(flag));
-			
-		}
-		return iFlags;
-	}
+    
+    /**
+     * Convert the given Flags to a ArrayList of IMAPFlags
+     * 
+     * @param flags
+     * @return imapFlags
+     */
+    public static ArrayList<IMAPFlag> convert(Flags flags) {
+        ArrayList<IMAPFlag> fList = new ArrayList<IMAPFlag>();
+        Flag[] flagArray = flags.getSystemFlags();
+        for (int i = 0; i < flagArray.length; i++) {
+            Flag flag = flagArray[i];
+            fList.add(convert(flag));
+        }
+        return fList;
+        
+    }
+    
+    public static IMAPFlag convert(Flag flag) {
+        if (flag.equals(Flag.SEEN)) {
+            return IMAPFlag.SEEN;
+        } else if (flag.equals(Flag.RECENT)) {
+            return IMAPFlag.RECENT;
+        } else if (flag.equals(Flag.ANSWERED)) {
+            return IMAPFlag.ANSWERED;
+        } else if (flag.equals(Flag.DELETED)) {
+            return IMAPFlag.DELETED;
+        }
+        throw new IllegalArgumentException("Flag not supported");
+    }
+    /**
+     * Convert the given ArrayList of IMAPFlags to a Flags object
+     * 
+     * @param imapFlags
+     * @return flags
+     */
+    public static Flags convert(ArrayList<IMAPFlag> imapFlags) {
+        Flags iFlags = new Flags();
+        for ( int i = 0; i< imapFlags.size(); i++) {
+            IMAPFlag flag = imapFlags.get(i);
+            
+            iFlags.add(convert(flag));
+            
+        }
+        return iFlags;
+    }
 
-	public static Flag convert(IMAPFlag flag) {
-		if (flag.equals(IMAPFlag.SEEN)) {
-			return Flag.SEEN;
-		} else if (flag.equals(IMAPFlag.RECENT)) {
-			return Flag.RECENT;
-		} else if (flag.equals(IMAPFlag.ANSWERED)) {
-			return Flag.ANSWERED;
-		} else if (flag.equals(IMAPFlag.DELETED)) {
-			return Flag.DELETED;
-		}
-		throw new IllegalArgumentException("Flag not supported");
+    public static Flag convert(IMAPFlag flag) {
+        if (flag.equals(IMAPFlag.SEEN)) {
+            return Flag.SEEN;
+        } else if (flag.equals(IMAPFlag.RECENT)) {
+            return Flag.RECENT;
+        } else if (flag.equals(IMAPFlag.ANSWERED)) {
+            return Flag.ANSWERED;
+        } else if (flag.equals(IMAPFlag.DELETED)) {
+            return Flag.DELETED;
+        }
+        throw new IllegalArgumentException("Flag not supported");
 
-	}
+    }
 }
Index: server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/GetMessageDetailsHandler.java	(working copy)
@@ -50,182 +50,182 @@
 import com.sun.mail.imap.IMAPStore;
 
 public class GetMessageDetailsHandler extends
-		AbstractSessionHandler<GetMessageDetails, GetMessageDetailsResult> {
+        AbstractSessionHandler<GetMessageDetails, GetMessageDetailsResult> {
 
-	@Inject
-	public GetMessageDetailsHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sProvider) {
-		super(cache, logger, sProvider);
-	}
+    @Inject
+    public GetMessageDetailsHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sProvider) {
+        super(cache, logger, sProvider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see
-	 * org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal
-	 * (org.apache.hupa.shared.rpc.Session,
-	 * net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	public GetMessageDetailsResult executeInternal(GetMessageDetails action,
-			ExecutionContext arg1) throws ActionException {
-		return new GetMessageDetailsResult(exposeMessage(getUser(), action.getFolder(), action.getUid()));
-	}
+    /*
+     * (non-Javadoc)
+     * 
+     * @see
+     * org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal
+     * (org.apache.hupa.shared.rpc.Session,
+     * net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    public GetMessageDetailsResult executeInternal(GetMessageDetails action,
+            ExecutionContext arg1) throws ActionException {
+        return new GetMessageDetailsResult(exposeMessage(getUser(), action.getFolder(), action.getUid()));
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * 
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<GetMessageDetails> getActionType() {
-		return GetMessageDetails.class;
-	}
+    /*
+     * (non-Javadoc)
+     * 
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<GetMessageDetails> getActionType() {
+        return GetMessageDetails.class;
+    }
 
-	protected MessageDetails exposeMessage(User user, IMAPFolder folder,
-			long uid) throws ActionException {
-		IMAPStore store = null;
-		com.sun.mail.imap.IMAPFolder f = null;
-		try {
-			store = cache.get(user);
+    protected MessageDetails exposeMessage(User user, IMAPFolder folder,
+            long uid) throws ActionException {
+        IMAPStore store = null;
+        com.sun.mail.imap.IMAPFolder f = null;
+        try {
+            store = cache.get(user);
 
-			f = (com.sun.mail.imap.IMAPFolder) store
-					.getFolder(folder.getFullName());
+            f = (com.sun.mail.imap.IMAPFolder) store
+                    .getFolder(folder.getFullName());
 
-			if (f.isOpen() == false) {
-				f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
-			}
-			MimeMessage message = (MimeMessage) f.getMessageByUID(uid);
-			MessageDetails mDetails = new MessageDetails();
-			mDetails.setUid(uid);
+            if (f.isOpen() == false) {
+                f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+            }
+            MimeMessage message = (MimeMessage) f.getMessageByUID(uid);
+            MessageDetails mDetails = new MessageDetails();
+            mDetails.setUid(uid);
 
-			boolean isHTML = false;
-			Object con = message.getContent();
+            boolean isHTML = false;
+            Object con = message.getContent();
 
-			StringBuffer sbPlain = new StringBuffer();
-			ArrayList<MessageAttachment> attachmentList = new ArrayList<MessageAttachment>();
+            StringBuffer sbPlain = new StringBuffer();
+            ArrayList<MessageAttachment> attachmentList = new ArrayList<MessageAttachment>();
 
-			handleParts(message, con, sbPlain, isHTML, attachmentList);
+            handleParts(message, con, sbPlain, isHTML, attachmentList);
 
-			mDetails.setText(sbPlain.toString());
+            mDetails.setText(sbPlain.toString());
 
-			mDetails.setIsHTML(isHTML);
-			mDetails.setMessageAttachments(attachmentList);
+            mDetails.setIsHTML(isHTML);
+            mDetails.setMessageAttachments(attachmentList);
 
-			mDetails.setRawHeader(message.getAllHeaders().toString());
+            mDetails.setRawHeader(message.getAllHeaders().toString());
 
-			f.setFlags(new Message[] { message }, new Flags(Flag.SEEN), true);
+            f.setFlags(new Message[] { message }, new Flags(Flag.SEEN), true);
 
-			return mDetails;
-		} catch (Exception e) {
-			logger.error("Unable to expose msg for user " + user
-					+ " in folder " + folder + " with uid " + uid, e);
-			throw new ActionException("Unable to expose msg for user " + user
-					+ " in folder " + folder + " with uid " + uid);
+            return mDetails;
+        } catch (Exception e) {
+            logger.error("Unable to expose msg for user " + user
+                    + " in folder " + folder + " with uid " + uid, e);
+            throw new ActionException("Unable to expose msg for user " + user
+                    + " in folder " + folder + " with uid " + uid);
 
-		} finally {
-			if (f != null && f.isOpen()) {
-				try {
-					f.close(false);
-				} catch (MessagingException e) {
-					// ignore on close
-				}
-			}
-		}
-	}
+        } finally {
+            if (f != null && f.isOpen()) {
+                try {
+                    f.close(false);
+                } catch (MessagingException e) {
+                    // ignore on close
+                }
+            }
+        }
+    }
 
-	/**
-	 * Handle the parts of the given message. The method will call itself recursively to handle all nested parts
-	 * @param message the MimeMessage 
-	 * @param con the current processing Content
-	 * @param sbPlain the StringBuffer to fill with text
-	 * @param isHTML identicate if the message is HTML
-	 * @param attachmentList ArrayList with attachments
-	 * @throws UnsupportedEncodingException
-	 * @throws MessagingException
-	 * @throws IOException
-	 */
-	private void handleParts(MimeMessage message, Object con,
-			StringBuffer sbPlain, boolean isHTML,
-			ArrayList<MessageAttachment> attachmentList)
-			throws UnsupportedEncodingException, MessagingException,
-			IOException {
-		if (con instanceof String) {
-			if (message.getContentType().startsWith("text/html")) {
-				isHTML = true;
-			} else {
-				isHTML = false;
-			}
-			sbPlain.append((String) con);
+    /**
+     * Handle the parts of the given message. The method will call itself recursively to handle all nested parts
+     * @param message the MimeMessage 
+     * @param con the current processing Content
+     * @param sbPlain the StringBuffer to fill with text
+     * @param isHTML identicate if the message is HTML
+     * @param attachmentList ArrayList with attachments
+     * @throws UnsupportedEncodingException
+     * @throws MessagingException
+     * @throws IOException
+     */
+    private void handleParts(MimeMessage message, Object con,
+            StringBuffer sbPlain, boolean isHTML,
+            ArrayList<MessageAttachment> attachmentList)
+            throws UnsupportedEncodingException, MessagingException,
+            IOException {
+        if (con instanceof String) {
+            if (message.getContentType().startsWith("text/html")) {
+                isHTML = true;
+            } else {
+                isHTML = false;
+            }
+            sbPlain.append((String) con);
 
-		} else if (con instanceof Multipart) {
+        } else if (con instanceof Multipart) {
 
-			Multipart mp = (Multipart) con;
-			String multipartContentType = mp.getContentType().toLowerCase();
-			System.out.println("mc: " + multipartContentType);
+            Multipart mp = (Multipart) con;
+            String multipartContentType = mp.getContentType().toLowerCase();
+            System.out.println("mc: " + multipartContentType);
 
-			if (multipartContentType.startsWith("multipart/alternative")) {
-				handleMultiPartAlternative(mp, sbPlain, isHTML);
-			} else {
-				for (int i = 0; i < mp.getCount(); i++) {
-					Part part = mp.getBodyPart(i);
+            if (multipartContentType.startsWith("multipart/alternative")) {
+                handleMultiPartAlternative(mp, sbPlain, isHTML);
+            } else {
+                for (int i = 0; i < mp.getCount(); i++) {
+                    Part part = mp.getBodyPart(i);
 
-					String contentType = part.getContentType().toLowerCase();
-					System.out.println("c: " + contentType);
+                    String contentType = part.getContentType().toLowerCase();
+                    System.out.println("c: " + contentType);
 
-					if (contentType.startsWith("text/plain")) {
-						isHTML = false;
-					} else if (contentType.startsWith("text/html")) {
-						isHTML = true;
-						sbPlain.append((String) part.getContent());
+                    if (contentType.startsWith("text/plain")) {
+                        isHTML = false;
+                    } else if (contentType.startsWith("text/html")) {
+                        isHTML = true;
+                        sbPlain.append((String) part.getContent());
 
-					} else if (contentType.startsWith("message/rfc822")) {
-						// Extract the message and pass it
-						MimeMessage msg = (MimeMessage) part.getDataHandler()
-								.getContent();
-						handleParts(msg, msg.getContent(), sbPlain, isHTML,
-								attachmentList);
+                    } else if (contentType.startsWith("message/rfc822")) {
+                        // Extract the message and pass it
+                        MimeMessage msg = (MimeMessage) part.getDataHandler()
+                                .getContent();
+                        handleParts(msg, msg.getContent(), sbPlain, isHTML,
+                                attachmentList);
 
-					} else {
+                    } else {
 
-						if (part.getFileName() != null) {
-							MessageAttachment attachment = new MessageAttachment();
-							attachment.setName(MimeUtility.decodeText(part
-									.getFileName()));
-							attachment.setContentType(part.getContentType());
-							attachment.setSize(part.getSize());
+                        if (part.getFileName() != null) {
+                            MessageAttachment attachment = new MessageAttachment();
+                            attachment.setName(MimeUtility.decodeText(part
+                                    .getFileName()));
+                            attachment.setContentType(part.getContentType());
+                            attachment.setSize(part.getSize());
 
-							attachmentList.add(attachment);
-						} else {
-							handleParts(message, part, sbPlain, isHTML,
-									attachmentList);
-						}
-					}
+                            attachmentList.add(attachment);
+                        } else {
+                            handleParts(message, part, sbPlain, isHTML,
+                                    attachmentList);
+                        }
+                    }
 
-				}
-			}
+                }
+            }
 
-		}
-	}
-	
-	private void handleMultiPartAlternative(Multipart mp,StringBuffer sbPlain, boolean isHTML) throws MessagingException, IOException {
-		String text = null;
-		for (int i = 0; i < mp.getCount(); i++) {
-			Part part = mp.getBodyPart(i);
-			
-			String contentType = part.getContentType().toLowerCase();
-			System.out.println("c: " + contentType);
+        }
+    }
+    
+    private void handleMultiPartAlternative(Multipart mp,StringBuffer sbPlain, boolean isHTML) throws MessagingException, IOException {
+        String text = null;
+        for (int i = 0; i < mp.getCount(); i++) {
+            Part part = mp.getBodyPart(i);
+            
+            String contentType = part.getContentType().toLowerCase();
+            System.out.println("c: " + contentType);
 
-			if (contentType.startsWith("text/plain")) {
-				// we prefer plain text of html.. Does this make sense for a webmail client ?
-				isHTML = false;
-				text = (String) part.getContent();
-				break;
+            if (contentType.startsWith("text/plain")) {
+                // we prefer plain text of html.. Does this make sense for a webmail client ?
+                isHTML = false;
+                text = (String) part.getContent();
+                break;
 
-			} else if (contentType.startsWith("text/html")) {
-				isHTML = true;
-				text = (String) part.getContent();
-			} 
-		}
-		sbPlain.append(text);
-	}
+            } else if (contentType.startsWith("text/html")) {
+                isHTML = true;
+                text = (String) part.getContent();
+            } 
+        }
+        sbPlain.append(text);
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/AbstractDeleteMessageHandler.java	(working copy)
@@ -43,81 +43,81 @@
  * @param <Action>
  */
 public abstract class AbstractDeleteMessageHandler<Action extends DeleteMessage>
-		extends AbstractSessionHandler<Action, DeleteMessageResult> {
+        extends AbstractSessionHandler<Action, DeleteMessageResult> {
 
-	@Inject
-	public AbstractDeleteMessageHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public AbstractDeleteMessageHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
-	 */
-	public DeleteMessageResult executeInternal(Action action,
-			ExecutionContext context) throws ActionException {
-		org.apache.hupa.shared.data.IMAPFolder folder = action.getFolder();
-		User user = getUser();
-		try {
-			IMAPStore store = cache.get(user);
-			com.sun.mail.imap.IMAPFolder f = (com.sun.mail.imap.IMAPFolder) store
-					.getFolder(folder.getFullName());
-			// check if the folder is open, if not open it "rw"
-			if (f.isOpen() == false) {
-				f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
-			}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSessionHandler#executeInternal(org.apache.hupa.shared.rpc.Session, net.customware.gwt.dispatch.server.ExecutionContext)
+     */
+    public DeleteMessageResult executeInternal(Action action,
+            ExecutionContext context) throws ActionException {
+        org.apache.hupa.shared.data.IMAPFolder folder = action.getFolder();
+        User user = getUser();
+        try {
+            IMAPStore store = cache.get(user);
+            com.sun.mail.imap.IMAPFolder f = (com.sun.mail.imap.IMAPFolder) store
+                    .getFolder(folder.getFullName());
+            // check if the folder is open, if not open it "rw"
+            if (f.isOpen() == false) {
+                f.open(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+            }
 
-			Message[] mArray = getMessagesToDelete(action);
-			
-			// check if the delete was triggered not in the trash folder
-			if (folder.getFullName().equalsIgnoreCase(
-					user.getSettings().getTrashFolderName()) == false) {
-				com.sun.mail.imap.IMAPFolder trashFolder = (com.sun.mail.imap.IMAPFolder) store
-						.getFolder(user.getSettings().getTrashFolderName());
+            Message[] mArray = getMessagesToDelete(action);
+            
+            // check if the delete was triggered not in the trash folder
+            if (folder.getFullName().equalsIgnoreCase(
+                    user.getSettings().getTrashFolderName()) == false) {
+                com.sun.mail.imap.IMAPFolder trashFolder = (com.sun.mail.imap.IMAPFolder) store
+                        .getFolder(user.getSettings().getTrashFolderName());
 
-				boolean trashFound = false;
-				// if the trash folder does not exist we create it
-				if (trashFolder.exists() == false) {
-					trashFound = trashFolder
-							.create(com.sun.mail.imap.IMAPFolder.READ_WRITE);
-				} else {
-					trashFound = true;
-				}
+                boolean trashFound = false;
+                // if the trash folder does not exist we create it
+                if (trashFolder.exists() == false) {
+                    trashFound = trashFolder
+                            .create(com.sun.mail.imap.IMAPFolder.READ_WRITE);
+                } else {
+                    trashFound = true;
+                }
 
-				// Check if we are able to copy the messages to the trash folder
-				if (trashFound) {
-					// copy the messages to the trashfolder
-					f.copyMessages(mArray, trashFolder);
-				}
-			}
+                // Check if we are able to copy the messages to the trash folder
+                if (trashFound) {
+                    // copy the messages to the trashfolder
+                    f.copyMessages(mArray, trashFolder);
+                }
+            }
 
-			
-			// delete the messages from the folder
-			f.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
-			
-			try {
-				f.expunge(mArray);
-				f.close(false);
-			} catch (MessagingException e) {
-				// prolly UID expunge is not supported
-				f.close(true);
-			}
-			return new DeleteMessageResult(user, folder, mArray.length);
+            
+            // delete the messages from the folder
+            f.setFlags(mArray, new Flags(Flags.Flag.DELETED), true);
+            
+            try {
+                f.expunge(mArray);
+                f.close(false);
+            } catch (MessagingException e) {
+                // prolly UID expunge is not supported
+                f.close(true);
+            }
+            return new DeleteMessageResult(user, folder, mArray.length);
 
-		} catch (MessagingException e) {
-			logger.error("Error while deleting messages for user " + user
-					+ " in folder" + action.getFolder(), e);
-			throw new ActionException("Error while deleting messages");
-		}
-	}
+        } catch (MessagingException e) {
+            logger.error("Error while deleting messages for user " + user
+                    + " in folder" + action.getFolder(), e);
+            throw new ActionException("Error while deleting messages");
+        }
+    }
 
-	/**
-	 * Return an array holding all messages which should get deleted by the given action
-	 * 
-	 * @param action
-	 * @return messages
-	 * @throws ActionException
-	 */
-	protected abstract Message[] getMessagesToDelete(Action action) throws ActionException;
+    /**
+     * Return an array holding all messages which should get deleted by the given action
+     * 
+     * @param action
+     * @return messages
+     * @throws ActionException
+     */
+    protected abstract Message[] getMessagesToDelete(Action action) throws ActionException;
 }
Index: server/src/main/java/org/apache/hupa/server/handler/GetRawMessageHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/GetRawMessageHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/GetRawMessageHandler.java	(working copy)
@@ -41,47 +41,47 @@
 
 public class GetRawMessageHandler extends AbstractSessionHandler<RawMessage, RawMessageResult>{
 
-	@Inject
-	public GetRawMessageHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public GetRawMessageHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	@Override
-	protected RawMessageResult executeInternal(RawMessage action,
-			ExecutionContext context) throws ActionException {
-		User user = getUser();
-		long uid = action.getUid();
-		org.apache.hupa.shared.data.IMAPFolder folder = action.getFolder();
-		try {
-			IMAPStore store = cache.get(user);
-			IMAPFolder f = (IMAPFolder) store.getFolder(folder.getFullName());
-			if (f.isOpen() == false) {
-				f.open(Folder.READ_ONLY);
-			}
- 			Message m = f.getMessageByUID(action.getUid());
-			
-			ByteArrayOutputStream out = new ByteArrayOutputStream();
-			m.writeTo(out);
-			if (f.isOpen()) {
-				f.close(false);
-			}
-			return new RawMessageResult(out.toString());
-		} catch (Exception e) {
-			logger.error("Unable to get raw content of msg for user " + user
-					+ " in folder " + folder + " with uid " + uid, e);
-			throw new ActionException("Unable to et raw content of msg for user " + user
-					+ " in folder " + folder + " with uid " + uid);
-		}
-		
-	}
+    @Override
+    protected RawMessageResult executeInternal(RawMessage action,
+            ExecutionContext context) throws ActionException {
+        User user = getUser();
+        long uid = action.getUid();
+        org.apache.hupa.shared.data.IMAPFolder folder = action.getFolder();
+        try {
+            IMAPStore store = cache.get(user);
+            IMAPFolder f = (IMAPFolder) store.getFolder(folder.getFullName());
+            if (f.isOpen() == false) {
+                f.open(Folder.READ_ONLY);
+            }
+             Message m = f.getMessageByUID(action.getUid());
+            
+            ByteArrayOutputStream out = new ByteArrayOutputStream();
+            m.writeTo(out);
+            if (f.isOpen()) {
+                f.close(false);
+            }
+            return new RawMessageResult(out.toString());
+        } catch (Exception e) {
+            logger.error("Unable to get raw content of msg for user " + user
+                    + " in folder " + folder + " with uid " + uid, e);
+            throw new ActionException("Unable to et raw content of msg for user " + user
+                    + " in folder " + folder + " with uid " + uid);
+        }
+        
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<RawMessage> getActionType() {
-		return RawMessage.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<RawMessage> getActionType() {
+        return RawMessage.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/DeleteFolderHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/DeleteFolderHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/DeleteFolderHandler.java	(working copy)
@@ -43,46 +43,46 @@
  */
 public class DeleteFolderHandler extends AbstractSessionHandler<DeleteFolder, GenericResult>{
 
-	@Inject
-	public DeleteFolderHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public DeleteFolderHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	@Override
-	protected GenericResult executeInternal(DeleteFolder action,
-			ExecutionContext context) throws ActionException {
-		User user = getUser();
-		IMAPFolder folder = action.getFolder();
-		try {
-			IMAPStore store = cache.get(user);
-			
-			Folder f = store.getFolder(folder.getFullName());
-			
-			// close the folder if its open
-			if (f.isOpen()) {
-				f.close(false);
-			}
-			
-			// recursive delete the folder
-			if (f.delete(true)) {
-				logger.info("Successfully delete folder " + folder + " for user " + user);
-				return new GenericResult();
-			} else {
-				throw new ActionException("Unable to delete folder " + folder + " for user " + user);
-			}
-		} catch (Exception e) {
-			logger.error("Error while deleting folder " + folder + " for user " + user,e);
-			throw new ActionException("Error while deleting folder " + folder + " for user " + user,e);
-		}
-	}
+    @Override
+    protected GenericResult executeInternal(DeleteFolder action,
+            ExecutionContext context) throws ActionException {
+        User user = getUser();
+        IMAPFolder folder = action.getFolder();
+        try {
+            IMAPStore store = cache.get(user);
+            
+            Folder f = store.getFolder(folder.getFullName());
+            
+            // close the folder if its open
+            if (f.isOpen()) {
+                f.close(false);
+            }
+            
+            // recursive delete the folder
+            if (f.delete(true)) {
+                logger.info("Successfully delete folder " + folder + " for user " + user);
+                return new GenericResult();
+            } else {
+                throw new ActionException("Unable to delete folder " + folder + " for user " + user);
+            }
+        } catch (Exception e) {
+            logger.error("Error while deleting folder " + folder + " for user " + user,e);
+            throw new ActionException("Error while deleting folder " + folder + " for user " + user,e);
+        }
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<DeleteFolder> getActionType() {
-		return DeleteFolder.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<DeleteFolder> getActionType() {
+        return DeleteFolder.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/SendMessageHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/SendMessageHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/SendMessageHandler.java	(working copy)
@@ -45,34 +45,34 @@
  */
 public class SendMessageHandler extends AbstractSendMessageHandler<SendMessage> {
 
-	@Inject
-	public SendMessageHandler(Log logger, FileItemRegistry registry,
-			IMAPStoreCache store, Provider<HttpSession> provider,@Named("SMTPServerAddress") String address, @Named("SMTPServerPort") int port, @Named("SMTPAuth") boolean auth, @Named("SMTPS") boolean useSSL) {
-		super(logger, registry, store, provider, address, port, auth,useSSL);
-	}
+    @Inject
+    public SendMessageHandler(Log logger, FileItemRegistry registry,
+            IMAPStoreCache store, Provider<HttpSession> provider,@Named("SMTPServerAddress") String address, @Named("SMTPServerPort") int port, @Named("SMTPAuth") boolean auth, @Named("SMTPS") boolean useSSL) {
+        super(logger, registry, store, provider, address, port, auth,useSSL);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSendMessageHandler#createMessage(javax.mail.Session, org.apache.hupa.shared.rpc.SendMessage)
-	 */
-	protected Message createMessage(Session session, SendMessage action)
-			throws AddressException, MessagingException {
-		MimeMessage message = new MimeMessage(session);
-		SMTPMessage m = action.getMessage();
-		message.setFrom(new InternetAddress(m.getFrom()));
-		message.setRecipients(RecipientType.TO, getRecipients(m.getTo()));
-		message.setRecipients(RecipientType.CC, getRecipients(m.getCc()));
-		message.setRecipients(RecipientType.BCC, getRecipients(m.getBcc()));
-		message.setSubject(m.getSubject());
-		return message;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSendMessageHandler#createMessage(javax.mail.Session, org.apache.hupa.shared.rpc.SendMessage)
+     */
+    protected Message createMessage(Session session, SendMessage action)
+            throws AddressException, MessagingException {
+        MimeMessage message = new MimeMessage(session);
+        SMTPMessage m = action.getMessage();
+        message.setFrom(new InternetAddress(m.getFrom()));
+        message.setRecipients(RecipientType.TO, getRecipients(m.getTo()));
+        message.setRecipients(RecipientType.CC, getRecipients(m.getCc()));
+        message.setRecipients(RecipientType.BCC, getRecipients(m.getBcc()));
+        message.setSubject(m.getSubject());
+        return message;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<SendMessage> getActionType() {
-		return SendMessage.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<SendMessage> getActionType() {
+        return SendMessage.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/CreateFolderHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/CreateFolderHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/CreateFolderHandler.java	(working copy)
@@ -43,42 +43,42 @@
  */
 public class CreateFolderHandler extends AbstractSessionHandler<CreateFolder, GenericResult>{
 
-	@Inject
-	public CreateFolderHandler(IMAPStoreCache cache, Log logger,
-			Provider<HttpSession> sessionProvider) {
-		super(cache, logger, sessionProvider);
-	}
+    @Inject
+    public CreateFolderHandler(IMAPStoreCache cache, Log logger,
+            Provider<HttpSession> sessionProvider) {
+        super(cache, logger, sessionProvider);
+    }
 
-	@Override
-	protected GenericResult executeInternal(CreateFolder action,
-			ExecutionContext context) throws ActionException {
-		User user = getUser();
-		IMAPFolder folder = action.getFolder();
-		
-		try {
-			IMAPStore store = cache.get(user);
-			Folder f = store.getFolder(folder.getFullName());
-			if (f.create(Folder.HOLDS_MESSAGES)) {
-				logger.info("Successfully create folder " + folder + " for user " + user);
-				return new GenericResult();
-			} else {
-				logger.info("Unable to create folder " + folder + " for user " + user);
-				throw new ActionException("Unable to create folder " + folder + " for user " + user);
+    @Override
+    protected GenericResult executeInternal(CreateFolder action,
+            ExecutionContext context) throws ActionException {
+        User user = getUser();
+        IMAPFolder folder = action.getFolder();
+        
+        try {
+            IMAPStore store = cache.get(user);
+            Folder f = store.getFolder(folder.getFullName());
+            if (f.create(Folder.HOLDS_MESSAGES)) {
+                logger.info("Successfully create folder " + folder + " for user " + user);
+                return new GenericResult();
+            } else {
+                logger.info("Unable to create folder " + folder + " for user " + user);
+                throw new ActionException("Unable to create folder " + folder + " for user " + user);
 
-			}
-		} catch (Exception e) {
-			logger.error("Error while creating folder " + folder + " for user " + user, e);
-			throw new ActionException("Error while creating folder " + folder + " for user " + user, e);
+            }
+        } catch (Exception e) {
+            logger.error("Error while creating folder " + folder + " for user " + user, e);
+            throw new ActionException("Error while creating folder " + folder + " for user " + user, e);
 
-		}
-	}
+        }
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<CreateFolder> getActionType() {
-		return CreateFolder.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<CreateFolder> getActionType() {
+        return CreateFolder.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/handler/ReplyMessageHandler.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/handler/ReplyMessageHandler.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/handler/ReplyMessageHandler.java	(working copy)
@@ -49,43 +49,43 @@
  */
 public class ReplyMessageHandler extends AbstractSendMessageHandler<ReplyMessage>{
 
-	@Inject
-	public ReplyMessageHandler(Log logger, FileItemRegistry registry,
-			IMAPStoreCache store, Provider<HttpSession> provider,
-			@Named("SMTPServerAddress") String address, @Named("SMTPServerPort") int port, @Named("SMTPAuth") boolean auth, @Named("SMTPS") boolean useSSL) {
-		super(logger, registry, store, provider, address, port, auth, useSSL);
-	}
+    @Inject
+    public ReplyMessageHandler(Log logger, FileItemRegistry registry,
+            IMAPStoreCache store, Provider<HttpSession> provider,
+            @Named("SMTPServerAddress") String address, @Named("SMTPServerPort") int port, @Named("SMTPAuth") boolean auth, @Named("SMTPS") boolean useSSL) {
+        super(logger, registry, store, provider, address, port, auth, useSSL);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.server.handler.AbstractSendMessageHandler#createMessage(javax.mail.Session, org.apache.hupa.shared.rpc.SendMessage)
-	 */
-	protected Message createMessage(Session session, ReplyMessage action)
-			throws AddressException, MessagingException, ActionException {
-		IMAPStore store = cache.get(getUser());
-		IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
-		if (folder.isOpen() == false) {
-			folder.open(Folder.READ_ONLY);
-		}
-		Message rMessage =  folder.getMessageByUID(action.getReplyMessageUid()).reply(action.getReplyAll());
-		SMTPMessage m = action.getMessage();
-		// Use the new recipient list, maybe it has changed
-		rMessage.setRecipients(RecipientType.TO, getRecipients(m.getTo()));
-		rMessage.setRecipients(RecipientType.CC, getRecipients(m.getCc()));
-		rMessage.setRecipients(RecipientType.BCC, getRecipients(m.getBcc()));
-		rMessage.setFrom(new InternetAddress(m.getFrom()));
-		// replace subject
-		rMessage.setSubject(m.getSubject());
-		rMessage.saveChanges();
-		return rMessage;
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.server.handler.AbstractSendMessageHandler#createMessage(javax.mail.Session, org.apache.hupa.shared.rpc.SendMessage)
+     */
+    protected Message createMessage(Session session, ReplyMessage action)
+            throws AddressException, MessagingException, ActionException {
+        IMAPStore store = cache.get(getUser());
+        IMAPFolder folder = (IMAPFolder) store.getFolder(action.getFolder().getFullName());
+        if (folder.isOpen() == false) {
+            folder.open(Folder.READ_ONLY);
+        }
+        Message rMessage =  folder.getMessageByUID(action.getReplyMessageUid()).reply(action.getReplyAll());
+        SMTPMessage m = action.getMessage();
+        // Use the new recipient list, maybe it has changed
+        rMessage.setRecipients(RecipientType.TO, getRecipients(m.getTo()));
+        rMessage.setRecipients(RecipientType.CC, getRecipients(m.getCc()));
+        rMessage.setRecipients(RecipientType.BCC, getRecipients(m.getBcc()));
+        rMessage.setFrom(new InternetAddress(m.getFrom()));
+        // replace subject
+        rMessage.setSubject(m.getSubject());
+        rMessage.saveChanges();
+        return rMessage;
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
-	 */
-	public Class<ReplyMessage> getActionType() {
-		return ReplyMessage.class;
-	}
+    /*
+     * (non-Javadoc)
+     * @see net.customware.gwt.dispatch.server.ActionHandler#getActionType()
+     */
+    public Class<ReplyMessage> getActionType() {
+        return ReplyMessage.class;
+    }
 
 }
Index: server/src/main/java/org/apache/hupa/server/DemoModeIMAPStore.java
===================================================================
--- server/src/main/java/org/apache/hupa/server/DemoModeIMAPStore.java	(revision 825462)
+++ server/src/main/java/org/apache/hupa/server/DemoModeIMAPStore.java	(working copy)
@@ -35,102 +35,102 @@
 
 // TODO: implement full set of methods
 public class DemoModeIMAPStore extends IMAPStore {
-	
-	public static final String DEMO_MODE_DEFAULT_FOLDER = "/";
-	public static final String DEMO_MODE_INBOX_FOLDER = "Demo-Inbox";
-	public static final String DEMO_MODE_SENT_FOLDER = "Demo-Sent";
-	public static final String DEMO_MODE_TRASH_FOLDER = "Demo-Trash";
-	
-	
-	static final URLName demoUrl = new URLName(null, InMemoryIMAPStoreCache.DEMO_MODE, 143, null, null, null);
-	static final HashMap<String, Folder> folders = new HashMap<String, Folder>();
+    
+    public static final String DEMO_MODE_DEFAULT_FOLDER = "/";
+    public static final String DEMO_MODE_INBOX_FOLDER = "Demo-Inbox";
+    public static final String DEMO_MODE_SENT_FOLDER = "Demo-Sent";
+    public static final String DEMO_MODE_TRASH_FOLDER = "Demo-Trash";
+    
+    
+    static final URLName demoUrl = new URLName(null, InMemoryIMAPStoreCache.DEMO_MODE, 143, null, null, null);
+    static final HashMap<String, Folder> folders = new HashMap<String, Folder>();
 
-	public DemoModeIMAPStore(Session session) {
-		super(session, demoUrl);
-	}
+    public DemoModeIMAPStore(Session session) {
+        super(session, demoUrl);
+    }
 
-	@Override
-	public boolean isConnected() {
-		return true;
-	}
-	
-	@Override
-	public void idle() throws MessagingException {
-	}
+    @Override
+    public boolean isConnected() {
+        return true;
+    }
+    
+    @Override
+    public void idle() throws MessagingException {
+    }
 
-	@Override
-	public Folder getFolder(String name) throws MessagingException {
-		Folder ret = folders.get(name) != null ? folders.get(name) : new DemoModeIMAPFolder(name, this) {};
-		folders.put(name, ret);
-		return ret;
-	}
+    @Override
+    public Folder getFolder(String name) throws MessagingException {
+        Folder ret = folders.get(name) != null ? folders.get(name) : new DemoModeIMAPFolder(name, this) {};
+        folders.put(name, ret);
+        return ret;
+    }
 
-	@Override
-	public Folder getDefaultFolder() throws MessagingException {
-		return getFolder(DEMO_MODE_DEFAULT_FOLDER);
-	}
+    @Override
+    public Folder getDefaultFolder() throws MessagingException {
+        return getFolder(DEMO_MODE_DEFAULT_FOLDER);
+    }
 
-	private class DemoModeIMAPFolder extends IMAPFolder {
-		String fullName = null;
-		IMAPStore store = null;
-		Vector<Message> messages = new Vector<Message>();
+    private class DemoModeIMAPFolder extends IMAPFolder {
+        String fullName = null;
+        IMAPStore store = null;
+        Vector<Message> messages = new Vector<Message>();
 
-		DemoModeIMAPFolder(String fullName, IMAPStore store) {
-			super(fullName, '/', store);
-			this.fullName = fullName;
-			this.store = store;
-		}
+        DemoModeIMAPFolder(String fullName, IMAPStore store) {
+            super(fullName, '/', store);
+            this.fullName = fullName;
+            this.store = store;
+        }
 
-		@Override
-		public void open(int mode) throws MessagingException {
-		}
+        @Override
+        public void open(int mode) throws MessagingException {
+        }
 
-		@Override
-		public int getMessageCount() throws MessagingException {
-			return messages.size();
-		}
+        @Override
+        public int getMessageCount() throws MessagingException {
+            return messages.size();
+        }
 
-		@Override
-		public int getUnreadMessageCount() throws MessagingException {
-			return 0;
-		}
+        @Override
+        public int getUnreadMessageCount() throws MessagingException {
+            return 0;
+        }
 
-		@Override
-		public boolean delete(boolean recurse) throws MessagingException {
-			return true;
-		}
+        @Override
+        public boolean delete(boolean recurse) throws MessagingException {
+            return true;
+        }
 
-		@Override
-		public Folder[] list(String pattern) throws MessagingException {
-			if (DEMO_MODE_DEFAULT_FOLDER.equals(fullName)) { 
-				return new Folder[] { 
-					store.getFolder(DEMO_MODE_INBOX_FOLDER), 
-					store.getFolder(DEMO_MODE_SENT_FOLDER), 
-					store.getFolder(DEMO_MODE_TRASH_FOLDER) 
-					};
-			}
-			return new Folder[0];
-		}
-		
-		@Override
-		public boolean create(int type) throws MessagingException {
-			return true;
-		}
-		
-		@Override
-	    public boolean exists() throws MessagingException {
-	    	return true;
-	    }
-		
-		@Override
-		public void appendMessages(Message[] msgs) {
-			messages.addAll(Arrays.asList(msgs));
-		}
-		
-		@Override
-		public void close(boolean expunge) throws MessagingException {
-		}
-		
-	}
+        @Override
+        public Folder[] list(String pattern) throws MessagingException {
+            if (DEMO_MODE_DEFAULT_FOLDER.equals(fullName)) { 
+                return new Folder[] { 
+                    store.getFolder(DEMO_MODE_INBOX_FOLDER), 
+                    store.getFolder(DEMO_MODE_SENT_FOLDER), 
+                    store.getFolder(DEMO_MODE_TRASH_FOLDER) 
+                    };
+            }
+            return new Folder[0];
+        }
+        
+        @Override
+        public boolean create(int type) throws MessagingException {
+            return true;
+        }
+        
+        @Override
+        public boolean exists() throws MessagingException {
+            return true;
+        }
+        
+        @Override
+        public void appendMessages(Message[] msgs) {
+            messages.addAll(Arrays.asList(msgs));
+        }
+        
+        @Override
+        public void close(boolean expunge) throws MessagingException {
+        }
+        
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/ReplyMessageEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/ReplyMessageEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/ReplyMessageEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface ReplyMessageEventHandler extends EventHandler{
 
-	public void onReplyMessageEvent(ReplyMessageEvent event);
+    public void onReplyMessageEvent(ReplyMessageEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/NewMessageEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/NewMessageEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/NewMessageEvent.java	(working copy)
@@ -23,16 +23,16 @@
 
 public class NewMessageEvent extends GwtEvent<NewMessageEventHandler>{
 
-	public static Type<NewMessageEventHandler> TYPE = new Type<NewMessageEventHandler>();
-	
-	@Override
-	protected void dispatch(NewMessageEventHandler handler) {
-		handler.onNewMessageEvent(this);
-	}
+    public static Type<NewMessageEventHandler> TYPE = new Type<NewMessageEventHandler>();
+    
+    @Override
+    protected void dispatch(NewMessageEventHandler handler) {
+        handler.onNewMessageEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<NewMessageEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<NewMessageEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/BackEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/BackEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/BackEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface BackEventHandler extends EventHandler{
 
-	public void onBackEvent(BackEvent event);
+    public void onBackEvent(BackEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/SessionExpireEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/SessionExpireEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/SessionExpireEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface SessionExpireEventHandler extends EventHandler{
 
-	public void onSessionExpireEvent(SessionExpireEvent event);
+    public void onSessionExpireEvent(SessionExpireEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/IncreaseUnseenEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/IncreaseUnseenEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/IncreaseUnseenEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface IncreaseUnseenEventHandler extends EventHandler{
 
-	public void onIncreaseUnseenEvent(IncreaseUnseenEvent event);
+    public void onIncreaseUnseenEvent(IncreaseUnseenEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/LogoutEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/LogoutEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/LogoutEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface LogoutEventHandler extends EventHandler{
 
-	public void onLogout(LogoutEvent logoutEvent);
+    public void onLogout(LogoutEvent logoutEvent);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/IncreaseUnseenEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/IncreaseUnseenEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/IncreaseUnseenEvent.java	(working copy)
@@ -26,42 +26,42 @@
 
 public class IncreaseUnseenEvent extends GwtEvent<IncreaseUnseenEventHandler>{
 
-	public final static Type<IncreaseUnseenEventHandler> TYPE = new Type<IncreaseUnseenEventHandler>();
-	private User user;
-	private IMAPFolder folder;
-	private int amount;
-	
-	public IncreaseUnseenEvent(User user, IMAPFolder folder) {
-		this(user, folder, 1);
-	}
-	
-	public IncreaseUnseenEvent(User user, IMAPFolder folder, int amount) {
-		this.user =user;
-		this.folder = folder;
-		this.amount = amount;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public User getUser() {
-		return user;
-	}
-	
-	public int getAmount() {
-		return amount;
-	}
-	
-	@Override
-	protected void dispatch(IncreaseUnseenEventHandler handler) {
-		handler.onIncreaseUnseenEvent(this);
-		
-	}
+    public final static Type<IncreaseUnseenEventHandler> TYPE = new Type<IncreaseUnseenEventHandler>();
+    private User user;
+    private IMAPFolder folder;
+    private int amount;
+    
+    public IncreaseUnseenEvent(User user, IMAPFolder folder) {
+        this(user, folder, 1);
+    }
+    
+    public IncreaseUnseenEvent(User user, IMAPFolder folder, int amount) {
+        this.user =user;
+        this.folder = folder;
+        this.amount = amount;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public User getUser() {
+        return user;
+    }
+    
+    public int getAmount() {
+        return amount;
+    }
+    
+    @Override
+    protected void dispatch(IncreaseUnseenEventHandler handler) {
+        handler.onIncreaseUnseenEvent(this);
+        
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<IncreaseUnseenEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<IncreaseUnseenEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEventHandler.java	(working copy)
@@ -22,5 +22,5 @@
 import com.google.gwt.event.shared.EventHandler;
 
 public interface ServerStatusEventHandler extends EventHandler{
-	public void onServerStatusChange(ServerStatusEvent event);
+    public void onServerStatusChange(ServerStatusEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/LoginEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/LoginEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/LoginEvent.java	(working copy)
@@ -25,25 +25,25 @@
 
 public class LoginEvent extends GwtEvent<LoginEventHandler>{
 
-	public static Type<LoginEventHandler> TYPE = new Type<LoginEventHandler>();
-	private User user;
-	
-	public LoginEvent(User user) {
-		this.user = user;
-	}
+    public static Type<LoginEventHandler> TYPE = new Type<LoginEventHandler>();
+    private User user;
+    
+    public LoginEvent(User user) {
+        this.user = user;
+    }
 
-	public User getUser() {
-		return user;
-	}
-	
-	@Override
-	public Type<LoginEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    public User getUser() {
+        return user;
+    }
+    
+    @Override
+    public Type<LoginEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
-	@Override
-	protected void dispatch(LoginEventHandler handler) {
-		handler.onLogin(this);
-	}
+    @Override
+    protected void dispatch(LoginEventHandler handler) {
+        handler.onLogin(this);
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface MoveMessageEventHandler extends EventHandler{
 
-	public void onMoveMessageHandler(MoveMessageEvent event);
+    public void onMoveMessageHandler(MoveMessageEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/LogoutEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/LogoutEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/LogoutEvent.java	(working copy)
@@ -24,24 +24,24 @@
 import com.google.gwt.event.shared.GwtEvent;
 
 public class LogoutEvent extends GwtEvent<LogoutEventHandler>{
-	public static Type<LogoutEventHandler> TYPE = new Type<LogoutEventHandler>();
-	private User user;
-	public LogoutEvent(User user) {
-		this.user = user;
-	}
+    public static Type<LogoutEventHandler> TYPE = new Type<LogoutEventHandler>();
+    private User user;
+    public LogoutEvent(User user) {
+        this.user = user;
+    }
 
-	@Override
-	protected void dispatch(LogoutEventHandler handler) {
-		handler.onLogout(this);
-	}
+    @Override
+    protected void dispatch(LogoutEventHandler handler) {
+        handler.onLogout(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<LogoutEventHandler> getAssociatedType() {
-		return TYPE;
-	}
-	
-	public User getUser() {
-		return user;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<LogoutEventHandler> getAssociatedType() {
+        return TYPE;
+    }
+    
+    public User getUser() {
+        return user;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/MoveMessageEvent.java	(working copy)
@@ -27,43 +27,43 @@
 
 public class MoveMessageEvent extends GwtEvent<MoveMessageEventHandler> {
 
-	public final static Type<MoveMessageEventHandler> TYPE = new Type<MoveMessageEventHandler>();
-	private User user;
-	private IMAPFolder oldFolder;
-	private IMAPFolder newFolder;
-	private Message message;
+    public final static Type<MoveMessageEventHandler> TYPE = new Type<MoveMessageEventHandler>();
+    private User user;
+    private IMAPFolder oldFolder;
+    private IMAPFolder newFolder;
+    private Message message;
 
-	public MoveMessageEvent(User user, IMAPFolder oldFolder,
-			IMAPFolder newFolder, Message message) {
-		this.user = user;
-		this.oldFolder = oldFolder;
-		this.newFolder = newFolder;
-		this.message = message;
-	}
+    public MoveMessageEvent(User user, IMAPFolder oldFolder,
+            IMAPFolder newFolder, Message message) {
+        this.user = user;
+        this.oldFolder = oldFolder;
+        this.newFolder = newFolder;
+        this.message = message;
+    }
 
-	public User getUser() {
-		return user;
-	}
+    public User getUser() {
+        return user;
+    }
 
-	public IMAPFolder getOldFolder() {
-		return oldFolder;
-	}
+    public IMAPFolder getOldFolder() {
+        return oldFolder;
+    }
 
-	public IMAPFolder getNewFolder() {
-		return newFolder;
-	}
+    public IMAPFolder getNewFolder() {
+        return newFolder;
+    }
 
-	public Message getMessage() {
-		return message;
-	}
+    public Message getMessage() {
+        return message;
+    }
 
-	protected void dispatch(MoveMessageEventHandler handler) {
-		handler.onMoveMessageHandler(this);
-	}
+    protected void dispatch(MoveMessageEventHandler handler) {
+        handler.onMoveMessageHandler(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<MoveMessageEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<MoveMessageEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/SentMessageEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/SentMessageEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/SentMessageEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface SentMessageEventHandler extends EventHandler{
 
-	public void onSentMessageEvent(SentMessageEvent ev);
+    public void onSentMessageEvent(SentMessageEvent ev);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEvent.java	(working copy)
@@ -26,32 +26,32 @@
 import com.google.gwt.event.shared.GwtEvent;
 
 public class MessagesReceivedEvent extends GwtEvent<MessagesReceivedEventHandler>{
-	public static Type<MessagesReceivedEventHandler> TYPE = new Type<MessagesReceivedEventHandler>();
-	private ArrayList<Message> messages;
-	private IMAPFolder folder;
-	
-	public MessagesReceivedEvent(IMAPFolder folder, ArrayList<Message> messages) {
-		this.messages = messages;
-		this.folder = folder;
-	}
-	
-	public ArrayList<Message> getMessages() {
-		return messages;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	
-	@Override
-	protected void dispatch(MessagesReceivedEventHandler handler) {
-		handler.onMessagesReceived(this);
-	}
+    public static Type<MessagesReceivedEventHandler> TYPE = new Type<MessagesReceivedEventHandler>();
+    private ArrayList<Message> messages;
+    private IMAPFolder folder;
+    
+    public MessagesReceivedEvent(IMAPFolder folder, ArrayList<Message> messages) {
+        this.messages = messages;
+        this.folder = folder;
+    }
+    
+    public ArrayList<Message> getMessages() {
+        return messages;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    
+    @Override
+    protected void dispatch(MessagesReceivedEventHandler handler) {
+        handler.onMessagesReceived(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<MessagesReceivedEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<MessagesReceivedEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/FolderSelectionEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/FolderSelectionEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/FolderSelectionEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface FolderSelectionEventHandler extends EventHandler{
 
-	public void onFolderSelectionEvent(FolderSelectionEvent event);
+    public void onFolderSelectionEvent(FolderSelectionEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/FolderSelectionEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/FolderSelectionEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/FolderSelectionEvent.java	(working copy)
@@ -25,31 +25,31 @@
 import com.google.gwt.event.shared.GwtEvent;
 
 public class FolderSelectionEvent extends GwtEvent<FolderSelectionEventHandler>{
-	
-	private User user;
-	private IMAPFolder folder;
-	public final static Type<FolderSelectionEventHandler> TYPE = new Type<FolderSelectionEventHandler>();
-	public FolderSelectionEvent(User user, IMAPFolder folder) {
-		this.user =user;
-		this.folder = folder;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public User getUser() {
-		return user;
-	}
+    
+    private User user;
+    private IMAPFolder folder;
+    public final static Type<FolderSelectionEventHandler> TYPE = new Type<FolderSelectionEventHandler>();
+    public FolderSelectionEvent(User user, IMAPFolder folder) {
+        this.user =user;
+        this.folder = folder;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public User getUser() {
+        return user;
+    }
 
-	@Override
-	protected void dispatch(FolderSelectionEventHandler handler) {
-		handler.onFolderSelectionEvent(this);
-	}
+    @Override
+    protected void dispatch(FolderSelectionEventHandler handler) {
+        handler.onFolderSelectionEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<FolderSelectionEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<FolderSelectionEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/ExpandMessageEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/ExpandMessageEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/ExpandMessageEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface ExpandMessageEventHandler extends EventHandler{
 
-	public void onExpandMessage(ExpandMessageEvent event);
+    public void onExpandMessage(ExpandMessageEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/DecreaseUnseenEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/DecreaseUnseenEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/DecreaseUnseenEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface DecreaseUnseenEventHandler extends EventHandler{
 
-	public void onDecreaseUnseenEvent(DecreaseUnseenEvent event);
+    public void onDecreaseUnseenEvent(DecreaseUnseenEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/DecreaseUnseenEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/DecreaseUnseenEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/DecreaseUnseenEvent.java	(working copy)
@@ -26,42 +26,42 @@
 
 public class DecreaseUnseenEvent extends GwtEvent<DecreaseUnseenEventHandler>{
 
-	public final static Type<DecreaseUnseenEventHandler> TYPE = new Type<DecreaseUnseenEventHandler>();
-	private User user;
-	private IMAPFolder folder;
-	private int amount;
-	
-	public DecreaseUnseenEvent(User user, IMAPFolder folder) {
-		this(user, folder, 1);
-	}
-	
-	public DecreaseUnseenEvent(User user, IMAPFolder folder, int amount) {
-		this.user =user;
-		this.folder = folder;
-		this.amount = amount;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public User getUser() {
-		return user;
-	}
-	
-	public int getAmount() {
-		return amount;
-	}
-	
-	@Override
-	protected void dispatch(DecreaseUnseenEventHandler handler) {
-		handler.onDecreaseUnseenEvent(this);
-		
-	}
+    public final static Type<DecreaseUnseenEventHandler> TYPE = new Type<DecreaseUnseenEventHandler>();
+    private User user;
+    private IMAPFolder folder;
+    private int amount;
+    
+    public DecreaseUnseenEvent(User user, IMAPFolder folder) {
+        this(user, folder, 1);
+    }
+    
+    public DecreaseUnseenEvent(User user, IMAPFolder folder, int amount) {
+        this.user =user;
+        this.folder = folder;
+        this.amount = amount;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public User getUser() {
+        return user;
+    }
+    
+    public int getAmount() {
+        return amount;
+    }
+    
+    @Override
+    protected void dispatch(DecreaseUnseenEventHandler handler) {
+        handler.onDecreaseUnseenEvent(this);
+        
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<DecreaseUnseenEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<DecreaseUnseenEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/NewMessageEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/NewMessageEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/NewMessageEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface NewMessageEventHandler extends EventHandler{
 
-	public void onNewMessageEvent(NewMessageEvent event);
+    public void onNewMessageEvent(NewMessageEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/SessionExpireEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/SessionExpireEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/SessionExpireEvent.java	(working copy)
@@ -25,23 +25,23 @@
 
 public class SessionExpireEvent extends GwtEvent<SessionExpireEventHandler>{
 
-	public final static Type<SessionExpireEventHandler> TYPE = new Type<SessionExpireEventHandler>();
-	private User user;
-	@Override
-	protected void dispatch(SessionExpireEventHandler handler) {
-		handler.onSessionExpireEvent(this);
-	}
+    public final static Type<SessionExpireEventHandler> TYPE = new Type<SessionExpireEventHandler>();
+    private User user;
+    @Override
+    protected void dispatch(SessionExpireEventHandler handler) {
+        handler.onSessionExpireEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<SessionExpireEventHandler> getAssociatedType() {
-		return TYPE;
-	}
-	
-	public SessionExpireEvent(User user) {
-		this.user = user;
-	}
-	
-	public User getUser() {
-		return user;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<SessionExpireEventHandler> getAssociatedType() {
+        return TYPE;
+    }
+    
+    public SessionExpireEvent(User user) {
+        this.user = user;
+    }
+    
+    public User getUser() {
+        return user;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/BackEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/BackEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/BackEvent.java	(working copy)
@@ -22,15 +22,15 @@
 import com.google.gwt.event.shared.GwtEvent;
 
 public class BackEvent extends GwtEvent<BackEventHandler>{
-	public final static Type<BackEventHandler> TYPE = new Type<BackEventHandler>();
-	@Override
-	protected void dispatch(BackEventHandler handler) {
-		handler.onBackEvent(this);
-	}
+    public final static Type<BackEventHandler> TYPE = new Type<BackEventHandler>();
+    @Override
+    protected void dispatch(BackEventHandler handler) {
+        handler.onBackEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<BackEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<BackEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/ReplyMessageEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/ReplyMessageEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/ReplyMessageEvent.java	(working copy)
@@ -28,50 +28,50 @@
 
 public class ReplyMessageEvent extends GwtEvent<ReplyMessageEventHandler>{
 
-	public final static Type<ReplyMessageEventHandler> TYPE = new Type<ReplyMessageEventHandler>();
-	private User user;
-	private IMAPFolder folder;
-	private Message message;
-	private MessageDetails details;
-	private boolean replyAll;
+    public final static Type<ReplyMessageEventHandler> TYPE = new Type<ReplyMessageEventHandler>();
+    private User user;
+    private IMAPFolder folder;
+    private Message message;
+    private MessageDetails details;
+    private boolean replyAll;
 
-	@Override
-	protected void dispatch(ReplyMessageEventHandler handler) {
-		handler.onReplyMessageEvent(this);
-	}
+    @Override
+    protected void dispatch(ReplyMessageEventHandler handler) {
+        handler.onReplyMessageEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<ReplyMessageEventHandler> getAssociatedType() {
-		return TYPE;
-	}
-	
-	public ReplyMessageEvent(User user, IMAPFolder folder, Message message, MessageDetails details, boolean replyAll) {
-		this.user = user;
-		this.folder = folder;
-		this.message = message;
-		this.replyAll = replyAll;
-		this.details = details;
-	}
-	
-	public User getUser() {
-		return user;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public Message getMessage() {
-		return message;
-	}
-	
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<ReplyMessageEventHandler> getAssociatedType() {
+        return TYPE;
+    }
+    
+    public ReplyMessageEvent(User user, IMAPFolder folder, Message message, MessageDetails details, boolean replyAll) {
+        this.user = user;
+        this.folder = folder;
+        this.message = message;
+        this.replyAll = replyAll;
+        this.details = details;
+    }
+    
+    public User getUser() {
+        return user;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public Message getMessage() {
+        return message;
+    }
+    
 
-	public MessageDetails getMessageDetails() {
-		return details;
-	}
+    public MessageDetails getMessageDetails() {
+        return details;
+    }
 
-	public boolean getReplyAll() {
-		return replyAll;
-	}
+    public boolean getReplyAll() {
+        return replyAll;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/LoadMessagesEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/LoadMessagesEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/LoadMessagesEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface LoadMessagesEventHandler extends EventHandler{
 
-	public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent);
+    public void onLoadMessagesEvent(LoadMessagesEvent loadMessagesEvent);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/DeleteMessageEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/DeleteMessageEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/DeleteMessageEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface DeleteMessageEventHandler extends EventHandler{
 
-	public void onDeleteMessageEvent(DeleteMessageEvent event);
+    public void onDeleteMessageEvent(DeleteMessageEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/LoginEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/LoginEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/LoginEventHandler.java	(working copy)
@@ -22,7 +22,7 @@
 import com.google.gwt.event.shared.EventHandler;
 
 public interface LoginEventHandler extends EventHandler{
-	
-	public void onLogin(LoginEvent event);
+    
+    public void onLogin(LoginEvent event);
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/LoadMessagesEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/LoadMessagesEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/LoadMessagesEvent.java	(working copy)
@@ -26,39 +26,39 @@
 import com.google.gwt.event.shared.GwtEvent;
 
 public class LoadMessagesEvent extends GwtEvent<LoadMessagesEventHandler>{
-	public static Type<LoadMessagesEventHandler> TYPE = new Type<LoadMessagesEventHandler>();
-	private User user;
-	private IMAPFolder folder;
-	private String searchValue;
-	
-	public LoadMessagesEvent(User user, IMAPFolder folder) {
-		this(user,folder,null);
-	}
-	
-	public LoadMessagesEvent(User user, IMAPFolder folder, String searchValue) {
-		this.user = user;
-		this.folder = folder;
-		this.searchValue = searchValue;
-	}
-	public User getUser() {
-		return user;
-	}
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public String getSearchValue() {
-		return searchValue;
-	}
-	
-	@Override
-	protected void dispatch(LoadMessagesEventHandler handler) {
-		handler.onLoadMessagesEvent(this);
-	}
+    public static Type<LoadMessagesEventHandler> TYPE = new Type<LoadMessagesEventHandler>();
+    private User user;
+    private IMAPFolder folder;
+    private String searchValue;
+    
+    public LoadMessagesEvent(User user, IMAPFolder folder) {
+        this(user,folder,null);
+    }
+    
+    public LoadMessagesEvent(User user, IMAPFolder folder, String searchValue) {
+        this.user = user;
+        this.folder = folder;
+        this.searchValue = searchValue;
+    }
+    public User getUser() {
+        return user;
+    }
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public String getSearchValue() {
+        return searchValue;
+    }
+    
+    @Override
+    protected void dispatch(LoadMessagesEventHandler handler) {
+        handler.onLoadMessagesEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<LoadMessagesEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<LoadMessagesEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/ForwardMessageEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/ForwardMessageEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/ForwardMessageEventHandler.java	(working copy)
@@ -25,5 +25,5 @@
 public interface ForwardMessageEventHandler extends EventHandler{
 
 
-	public void onForwardMessageEvent(ForwardMessageEvent event);
+    public void onForwardMessageEvent(ForwardMessageEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/DeleteMessageEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/DeleteMessageEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/DeleteMessageEvent.java	(working copy)
@@ -29,43 +29,43 @@
 
 public class DeleteMessageEvent extends GwtEvent<DeleteMessageEventHandler>{
 
-	public final static Type<DeleteMessageEventHandler> TYPE = new Type<DeleteMessageEventHandler>();
-	private User user;
-	private IMAPFolder folder;
-	private ArrayList<Message> messageList;
-	@Override
-	protected void dispatch(DeleteMessageEventHandler handler) {
-		handler.onDeleteMessageEvent(this);
-	}
+    public final static Type<DeleteMessageEventHandler> TYPE = new Type<DeleteMessageEventHandler>();
+    private User user;
+    private IMAPFolder folder;
+    private ArrayList<Message> messageList;
+    @Override
+    protected void dispatch(DeleteMessageEventHandler handler) {
+        handler.onDeleteMessageEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<DeleteMessageEventHandler> getAssociatedType() {
-		return TYPE;
-	}
-	
-	public DeleteMessageEvent(User user, IMAPFolder folder, ArrayList<Message> messageList) {
-		this.user = user;
-		this.folder = folder;
-		this.messageList = messageList;
-	}
-	public DeleteMessageEvent(User user, IMAPFolder folder, Message message) {
-		ArrayList<Message> mList = new ArrayList<Message>();
-		mList.add(message);
-		
-		this.user = user;
-		this.folder = folder;
-		this.messageList = mList;
-	}
-	public User getUser() {
-		return user;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public ArrayList<Message> getMessages() {
-		return messageList;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<DeleteMessageEventHandler> getAssociatedType() {
+        return TYPE;
+    }
+    
+    public DeleteMessageEvent(User user, IMAPFolder folder, ArrayList<Message> messageList) {
+        this.user = user;
+        this.folder = folder;
+        this.messageList = messageList;
+    }
+    public DeleteMessageEvent(User user, IMAPFolder folder, Message message) {
+        ArrayList<Message> mList = new ArrayList<Message>();
+        mList.add(message);
+        
+        this.user = user;
+        this.folder = folder;
+        this.messageList = mList;
+    }
+    public User getUser() {
+        return user;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public ArrayList<Message> getMessages() {
+        return messageList;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/ForwardMessageEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/ForwardMessageEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/ForwardMessageEvent.java	(working copy)
@@ -29,43 +29,43 @@
 
 public class ForwardMessageEvent extends GwtEvent<ForwardMessageEventHandler> {
 
-	public final static Type<ForwardMessageEventHandler> TYPE = new Type<ForwardMessageEventHandler>();
-	private User user;
-	private IMAPFolder folder;
-	private Message message;
-	private MessageDetails details;
+    public final static Type<ForwardMessageEventHandler> TYPE = new Type<ForwardMessageEventHandler>();
+    private User user;
+    private IMAPFolder folder;
+    private Message message;
+    private MessageDetails details;
 
-	public ForwardMessageEvent(User user, IMAPFolder folder, Message message, MessageDetails details) {
-		this.user = user;
-		this.folder = folder;
-		this.message = message;
-		this.details = details;
-	}
+    public ForwardMessageEvent(User user, IMAPFolder folder, Message message, MessageDetails details) {
+        this.user = user;
+        this.folder = folder;
+        this.message = message;
+        this.details = details;
+    }
 
-	public User getUser() {
-		return user;
-	}
+    public User getUser() {
+        return user;
+    }
 
-	public IMAPFolder getFolder() {
-		return folder;
-	}
+    public IMAPFolder getFolder() {
+        return folder;
+    }
 
-	public Message getMessage() {
-		return message;
-	}
+    public Message getMessage() {
+        return message;
+    }
 
 
-	public MessageDetails getMessageDetails() {
-		return details;
-	}
+    public MessageDetails getMessageDetails() {
+        return details;
+    }
 
-	@Override
-	protected void dispatch(ForwardMessageEventHandler handler) {
-		handler.onForwardMessageEvent(this);
-	}
+    @Override
+    protected void dispatch(ForwardMessageEventHandler handler) {
+        handler.onForwardMessageEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<ForwardMessageEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<ForwardMessageEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/ServerStatusEvent.java	(working copy)
@@ -22,29 +22,29 @@
 import com.google.gwt.event.shared.GwtEvent;
 
 public class ServerStatusEvent extends GwtEvent<ServerStatusEventHandler> {
-	public static Type<ServerStatusEventHandler> TYPE = new Type<ServerStatusEventHandler>();
+    public static Type<ServerStatusEventHandler> TYPE = new Type<ServerStatusEventHandler>();
 
-	public enum ServerStatus {
-		Unknown, Available, Unavailable, Error
-	}
-	
-	private ServerStatus status = ServerStatus.Unknown;
-	public ServerStatusEvent(ServerStatus status) {
-		this.status = status;
-	}
-	
-	public ServerStatus getStatus() {
-		return status;
-	}
+    public enum ServerStatus {
+        Unknown, Available, Unavailable, Error
+    }
+    
+    private ServerStatus status = ServerStatus.Unknown;
+    public ServerStatusEvent(ServerStatus status) {
+        this.status = status;
+    }
+    
+    public ServerStatus getStatus() {
+        return status;
+    }
 
-	@Override
-	protected void dispatch(ServerStatusEventHandler handler) {
-		handler.onServerStatusChange(this);
-	}
+    @Override
+    protected void dispatch(ServerStatusEventHandler handler) {
+        handler.onServerStatusChange(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<ServerStatusEventHandler> getAssociatedType() {
-		return TYPE;
-	}
-	
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<ServerStatusEventHandler> getAssociatedType() {
+        return TYPE;
+    }
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEventHandler.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEventHandler.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/MessagesReceivedEventHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface MessagesReceivedEventHandler extends EventHandler{
 
-	public void onMessagesReceived(MessagesReceivedEvent event);
+    public void onMessagesReceived(MessagesReceivedEvent event);
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/SentMessageEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/SentMessageEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/SentMessageEvent.java	(working copy)
@@ -22,15 +22,15 @@
 import com.google.gwt.event.shared.GwtEvent;
 
 public class SentMessageEvent extends GwtEvent<SentMessageEventHandler>{
-	public static Type<SentMessageEventHandler> TYPE = new Type<SentMessageEventHandler>();
-	@Override
-	protected void dispatch(SentMessageEventHandler handler) {
-		handler.onSentMessageEvent(this);
-	}
+    public static Type<SentMessageEventHandler> TYPE = new Type<SentMessageEventHandler>();
+    @Override
+    protected void dispatch(SentMessageEventHandler handler) {
+        handler.onSentMessageEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<SentMessageEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<SentMessageEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/events/ExpandMessageEvent.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/events/ExpandMessageEvent.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/events/ExpandMessageEvent.java	(working copy)
@@ -27,40 +27,40 @@
 
 public class ExpandMessageEvent extends GwtEvent<ExpandMessageEventHandler>{
 
-	public static Type<ExpandMessageEventHandler> TYPE = new Type<ExpandMessageEventHandler>();
-	private Message message;
-	private User user;
-	private IMAPFolder folder;
-	
-	public ExpandMessageEvent(User user, IMAPFolder folder, Message message) {
-		this.message = message;
-		this.folder = folder;
-		this.user = user;
-	}
-	
-	public Message getMessage() {
-		return message;
-	}
-	
-	public User getUser () {
-		return user;
-	}
-	
-	public IMAPFolder getFolder () {
-		return folder;
-	}
-	
-	
-	@Override
-	protected void dispatch(ExpandMessageEventHandler handler) {
-		handler.onExpandMessage(this);
-	}
+    public static Type<ExpandMessageEventHandler> TYPE = new Type<ExpandMessageEventHandler>();
+    private Message message;
+    private User user;
+    private IMAPFolder folder;
+    
+    public ExpandMessageEvent(User user, IMAPFolder folder, Message message) {
+        this.message = message;
+        this.folder = folder;
+        this.user = user;
+    }
+    
+    public Message getMessage() {
+        return message;
+    }
+    
+    public User getUser () {
+        return user;
+    }
+    
+    public IMAPFolder getFolder () {
+        return folder;
+    }
+    
+    
+    @Override
+    protected void dispatch(ExpandMessageEventHandler handler) {
+        handler.onExpandMessage(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<ExpandMessageEventHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<ExpandMessageEventHandler> getAssociatedType() {
+        return TYPE;
+    }
 
-	
+    
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/ReplyMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/ReplyMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/ReplyMessage.java	(working copy)
@@ -25,21 +25,21 @@
 
 public class ReplyMessage extends ForwardMessage {
 
-	private static final long serialVersionUID = -383135476236902779L;
+    private static final long serialVersionUID = -383135476236902779L;
 
-	private boolean replyAll;
-	
-	public ReplyMessage(SMTPMessage msg, IMAPFolder folder, long uid, boolean replyAll) {
-		super(msg, folder, uid);
-		this.replyAll = replyAll;
-	}
+    private boolean replyAll;
+    
+    public ReplyMessage(SMTPMessage msg, IMAPFolder folder, long uid, boolean replyAll) {
+        super(msg, folder, uid);
+        this.replyAll = replyAll;
+    }
 
-	protected ReplyMessage() {
-		
-	}
-	
-	public boolean getReplyAll() {
-		return replyAll;
-	}
-	
+    protected ReplyMessage() {
+        
+    }
+    
+    public boolean getReplyAll() {
+        return replyAll;
+    }
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/RenameFolder.java	(working copy)
@@ -25,24 +25,24 @@
 
 public class RenameFolder implements Action<GenericResult>{
 
-	private static final long serialVersionUID = 1924419911921600320L;
-	private IMAPFolder folder;
-	private String newName;
+    private static final long serialVersionUID = 1924419911921600320L;
+    private IMAPFolder folder;
+    private String newName;
 
-	public RenameFolder(IMAPFolder folder, String newName) {
-		this.folder = folder;
-		this.newName = newName;
-	}
-	
-	protected RenameFolder() {
-		
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public String getNewName() {
-		return newName;
-	}
+    public RenameFolder(IMAPFolder folder, String newName) {
+        this.folder = folder;
+        this.newName = newName;
+    }
+    
+    protected RenameFolder() {
+        
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public String getNewName() {
+        return newName;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/LogoutUserResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/LogoutUserResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/LogoutUserResult.java	(working copy)
@@ -25,21 +25,21 @@
 
 public class LogoutUserResult implements Result {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -1788523843461596092L;
-	private User user;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -1788523843461596092L;
+    private User user;
 
-	public LogoutUserResult(User user) {
-		this.user = user;
-	}
-	
-	@SuppressWarnings("unused")
-	private LogoutUserResult() {
-	}
-	
-	public User getUser() {
-		return user;
-	}
+    public LogoutUserResult(User user) {
+        this.user = user;
+    }
+    
+    @SuppressWarnings("unused")
+    private LogoutUserResult() {
+    }
+    
+    public User getUser() {
+        return user;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/FetchFoldersResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/FetchFoldersResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/FetchFoldersResult.java	(working copy)
@@ -27,22 +27,22 @@
 
 public class FetchFoldersResult implements Result{
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -6215610133650989605L;
-	private ArrayList<IMAPFolder> folders;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -6215610133650989605L;
+    private ArrayList<IMAPFolder> folders;
 
-	public FetchFoldersResult(ArrayList<IMAPFolder> folders) {
-		this.folders=folders;
-	}
-	
-	@SuppressWarnings("unused")
-	private FetchFoldersResult() {
-		
-	}
-	
-	public ArrayList<IMAPFolder> getFolders() {
-		return folders;
-	}
+    public FetchFoldersResult(ArrayList<IMAPFolder> folders) {
+        this.folders=folders;
+    }
+    
+    @SuppressWarnings("unused")
+    private FetchFoldersResult() {
+        
+    }
+    
+    public ArrayList<IMAPFolder> getFolders() {
+        return folders;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/LogoutUser.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/LogoutUser.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/LogoutUser.java	(working copy)
@@ -24,9 +24,9 @@
 
 public class LogoutUser implements Action<LogoutUserResult>{
 
-	private static final long serialVersionUID = 2255166545722718094L;
-	
-	public LogoutUser() {
-	}
-	
+    private static final long serialVersionUID = 2255166545722718094L;
+    
+    public LogoutUser() {
+    }
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/FetchFolders.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/FetchFolders.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/FetchFolders.java	(working copy)
@@ -24,8 +24,8 @@
 
 public class FetchFolders implements Action<FetchFoldersResult>{
 
-	private static final long serialVersionUID = 8515539585915762904L;
+    private static final long serialVersionUID = 8515539585915762904L;
 
-	public FetchFolders() {
-	}
+    public FetchFolders() {
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/NoopResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/NoopResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/NoopResult.java	(working copy)
@@ -23,6 +23,6 @@
 
 public class NoopResult implements Result {
 
-	private static final long serialVersionUID = 5530385273335407315L;
+    private static final long serialVersionUID = 5530385273335407315L;
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/MoveMessageResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/MoveMessageResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/MoveMessageResult.java	(working copy)
@@ -21,9 +21,9 @@
 
 public class MoveMessageResult extends GenericResult{
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 341407423455525004L;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 341407423455525004L;
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/Noop.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/Noop.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/Noop.java	(working copy)
@@ -24,6 +24,6 @@
 
 public class Noop implements Action<NoopResult>{
 
-	private static final long serialVersionUID = 4076791577558340559L;
+    private static final long serialVersionUID = 4076791577558340559L;
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/MoveMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/MoveMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/MoveMessage.java	(working copy)
@@ -25,29 +25,29 @@
 
 public class MoveMessage implements Action<MoveMessageResult>{
 
-	private static final long serialVersionUID = 7771146077050895244L;
-	private IMAPFolder oldFolder;
-	private IMAPFolder newFolder;
-	private long messageUid;
+    private static final long serialVersionUID = 7771146077050895244L;
+    private IMAPFolder oldFolder;
+    private IMAPFolder newFolder;
+    private long messageUid;
 
-	public MoveMessage(IMAPFolder oldFolder, IMAPFolder newFolder, long messageUid) {
-		this.oldFolder = oldFolder;
-		this.newFolder = newFolder;
-		this.messageUid = messageUid;
-	}
-	
-	protected MoveMessage() {
-	}
-	
-	public long getMessageUid() {
-		return messageUid;
-	}
-	
-	public IMAPFolder getOldFolder() {
-		return oldFolder;
-	}
-	
-	public IMAPFolder getNewFolder() {
-		return newFolder;
-	}
+    public MoveMessage(IMAPFolder oldFolder, IMAPFolder newFolder, long messageUid) {
+        this.oldFolder = oldFolder;
+        this.newFolder = newFolder;
+        this.messageUid = messageUid;
+    }
+    
+    protected MoveMessage() {
+    }
+    
+    public long getMessageUid() {
+        return messageUid;
+    }
+    
+    public IMAPFolder getOldFolder() {
+        return oldFolder;
+    }
+    
+    public IMAPFolder getNewFolder() {
+        return newFolder;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/GenericResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/GenericResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/GenericResult.java	(working copy)
@@ -3,39 +3,39 @@
 import net.customware.gwt.dispatch.shared.Result;
 
 public class GenericResult implements Result{
-	
-	private static final long serialVersionUID = 405509532584299203L;
-	private String message = null;
-	private boolean success = true;
+    
+    private static final long serialVersionUID = 405509532584299203L;
+    private String message = null;
+    private boolean success = true;
 
-	public GenericResult() {
-	}
+    public GenericResult() {
+    }
 
-	public GenericResult(String message, boolean success) {
-		this.message = message;
-		this.success = success;
-	}
+    public GenericResult(String message, boolean success) {
+        this.message = message;
+        this.success = success;
+    }
 
-	public String getMessage() {
-    	return message;
+    public String getMessage() {
+        return message;
     }
 
-	public boolean isSuccess() {
-    	return success;
+    public boolean isSuccess() {
+        return success;
     }
 
-	public void setMessage(String message) {
-    	this.message = message;
+    public void setMessage(String message) {
+        this.message = message;
     }
 
-	public void setSuccess(boolean success) {
-    	this.success = success;
+    public void setSuccess(boolean success) {
+        this.success = success;
     }
-	
-	public void setError(String message) {
-		setMessage(message);
-		setSuccess(false);
-	}
-	
+    
+    public void setError(String message) {
+        setMessage(message);
+        setSuccess(false);
+    }
+    
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/TagMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/TagMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/TagMessage.java	(working copy)
@@ -29,30 +29,30 @@
 
 public class TagMessage implements Action<GenericResult>{
 
-	private static final long serialVersionUID = 4323236257115412763L;
-	private IMAPFolder folder;
-	private ArrayList<Long> messageUids;
-	private Tag tag;
+    private static final long serialVersionUID = 4323236257115412763L;
+    private IMAPFolder folder;
+    private ArrayList<Long> messageUids;
+    private Tag tag;
 
-	protected TagMessage() {
-	}
-	
-	public TagMessage(Tag tag, IMAPFolder folder, ArrayList<Long> messageUids) {
-		this.tag = tag;
-		this.folder = folder;
-		this.messageUids = messageUids;
-	}
-	
-	public Tag getTag() {
-		return tag;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public ArrayList<Long> getMessageUids() {
-		return messageUids;
-	}
+    protected TagMessage() {
+    }
+    
+    public TagMessage(Tag tag, IMAPFolder folder, ArrayList<Long> messageUids) {
+        this.tag = tag;
+        this.folder = folder;
+        this.messageUids = messageUids;
+    }
+    
+    public Tag getTag() {
+        return tag;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public ArrayList<Long> getMessageUids() {
+        return messageUids;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/CheckSessionResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/CheckSessionResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/CheckSessionResult.java	(working copy)
@@ -25,20 +25,20 @@
 
 public class CheckSessionResult implements Result {
 
-	private static final long serialVersionUID = -4785233314922498952L;
-	boolean valid = false;
+    private static final long serialVersionUID = -4785233314922498952L;
+    boolean valid = false;
 
-	private User user;
+    private User user;
 
-	public User getUser() {
-		return user;
-	}
+    public User getUser() {
+        return user;
+    }
 
-	public void setUser(User user) {
-		this.user = user;
-	}
+    public void setUser(User user) {
+        this.user = user;
+    }
 
-	public boolean isValid() {
-		return user != null && user.getAuthenticated();
-	}
+    public boolean isValid() {
+        return user != null && user.getAuthenticated();
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/CheckSession.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/CheckSession.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/CheckSession.java	(working copy)
@@ -24,6 +24,6 @@
 
 public class CheckSession implements Action<CheckSessionResult> {
 
-	private static final long serialVersionUID = 2255166545722718094L;
-	
+    private static final long serialVersionUID = 2255166545722718094L;
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/FetchRecentMessages.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/FetchRecentMessages.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/FetchRecentMessages.java	(working copy)
@@ -23,14 +23,14 @@
 
 public class FetchRecentMessages extends FetchMessages{
 
-	private static final long serialVersionUID = 4380357285905033821L;
+    private static final long serialVersionUID = 4380357285905033821L;
 
-	protected FetchRecentMessages() {
-	}
-	
-	public FetchRecentMessages(IMAPFolder folder, int start,
-			int offset, String searchString) {
-		super(folder, start, offset, searchString);
-	}
+    protected FetchRecentMessages() {
+    }
+    
+    public FetchRecentMessages(IMAPFolder folder, int start,
+            int offset, String searchString) {
+        super(folder, start, offset, searchString);
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/DeleteAllMessages.java	(working copy)
@@ -23,13 +23,13 @@
 
 public class DeleteAllMessages extends DeleteMessage{
 
-	private static final long serialVersionUID = -6801849429581798842L;
+    private static final long serialVersionUID = -6801849429581798842L;
 
-	public DeleteAllMessages(IMAPFolder folder) {
-		super(folder);
-	}
-	
-	protected DeleteAllMessages() {
-		
-	}
+    public DeleteAllMessages(IMAPFolder folder) {
+        super(folder);
+    }
+    
+    protected DeleteAllMessages() {
+        
+    }
 } 
Index: shared/src/main/java/org/apache/hupa/shared/rpc/RawMessageResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/RawMessageResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/RawMessageResult.java	(working copy)
@@ -23,23 +23,23 @@
 
 public class RawMessageResult implements Result{
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -6244846164658274324L;
-	private String rawMessage;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -6244846164658274324L;
+    private String rawMessage;
 
-	protected RawMessageResult() {
-		
-	}
-	
-	public RawMessageResult(String rawMessage) {
-		this.rawMessage = rawMessage;
-	}
-	
-	
-	public String getRawMessage() {
-		return rawMessage;
-	}
-	
+    protected RawMessageResult() {
+        
+    }
+    
+    public RawMessageResult(String rawMessage) {
+        this.rawMessage = rawMessage;
+    }
+    
+    
+    public String getRawMessage() {
+        return rawMessage;
+    }
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/RawMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/RawMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/RawMessage.java	(working copy)
@@ -26,39 +26,39 @@
 
 public class RawMessage implements Action<RawMessageResult> {
 
-	private static final long serialVersionUID = 5826298202494313834L;
-	private IMAPFolder folder;
-	private long uid;
+    private static final long serialVersionUID = 5826298202494313834L;
+    private IMAPFolder folder;
+    private long uid;
 
-	public RawMessage(IMAPFolder folder, long uid) {
-		this.folder = folder;
-		this.uid = uid;
-	}
+    public RawMessage(IMAPFolder folder, long uid) {
+        this.folder = folder;
+        this.uid = uid;
+    }
 
-	@SuppressWarnings("unused")
-	private RawMessage() {
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public long getUid() {
-		return uid;
-	}
-	
-	public boolean equals(Object obj) {
-		if (obj instanceof RawMessage) {
-			RawMessage action = (RawMessage) obj;
-			if (action.getFolder().equals(getFolder()) && action.getUid() == getUid()) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		return (int) (getFolder().hashCode() * getUid());
-	}
-	
+    @SuppressWarnings("unused")
+    private RawMessage() {
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public long getUid() {
+        return uid;
+    }
+    
+    public boolean equals(Object obj) {
+        if (obj instanceof RawMessage) {
+            RawMessage action = (RawMessage) obj;
+            if (action.getFolder().equals(getFolder()) && action.getUid() == getUid()) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    public int hashCode() {
+        return (int) (getFolder().hashCode() * getUid());
+    }
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/CreateFolder.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/CreateFolder.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/CreateFolder.java	(working copy)
@@ -25,18 +25,18 @@
 
 public class CreateFolder implements Action<GenericResult>{
 
-	private static final long serialVersionUID = -4966856616698265177L;
-	private IMAPFolder folder;
+    private static final long serialVersionUID = -4966856616698265177L;
+    private IMAPFolder folder;
 
-	public CreateFolder(IMAPFolder folder) {
-		this.folder = folder;
-	}
+    public CreateFolder(IMAPFolder folder) {
+        this.folder = folder;
+    }
 
-	protected CreateFolder() {
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
+    protected CreateFolder() {
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageByUid.java	(working copy)
@@ -25,20 +25,20 @@
 
 public class DeleteMessageByUid extends DeleteMessage {
 
-	private static final long serialVersionUID = -5980938676368660849L;
+    private static final long serialVersionUID = -5980938676368660849L;
 
-	private ArrayList<Long> messageUids;
+    private ArrayList<Long> messageUids;
 
-	public DeleteMessageByUid(IMAPFolder folder, ArrayList<Long> messageUids) {
-		super(folder);
-		this.messageUids = messageUids;
-	}
-	
-	protected DeleteMessageByUid() {
-	}
-	
-	public ArrayList<Long> getMessageUids() {
-		return messageUids;
-	}
+    public DeleteMessageByUid(IMAPFolder folder, ArrayList<Long> messageUids) {
+        super(folder);
+        this.messageUids = messageUids;
+    }
+    
+    protected DeleteMessageByUid() {
+    }
+    
+    public ArrayList<Long> getMessageUids() {
+        return messageUids;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessageResult.java	(working copy)
@@ -26,37 +26,37 @@
 
 public class DeleteMessageResult implements Result{
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -5149203502019947912L;
-	private User user;
-	private IMAPFolder folder;
-	private int deleteCount;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -5149203502019947912L;
+    private User user;
+    private IMAPFolder folder;
+    private int deleteCount;
 
 
-	
-	@SuppressWarnings("unused")
-	private DeleteMessageResult() {
-		
-	}
-	
-	public DeleteMessageResult(User user,IMAPFolder folder, int deleteCount) {
-		this.user = user;
-		this.folder = folder;
-		this.deleteCount = deleteCount;
-	}
-	
-	public int getCount() {
-		return deleteCount;
-	}
-	
-	public User getUser() {
-		return user;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
+    
+    @SuppressWarnings("unused")
+    private DeleteMessageResult() {
+        
+    }
+    
+    public DeleteMessageResult(User user,IMAPFolder folder, int deleteCount) {
+        this.user = user;
+        this.folder = folder;
+        this.deleteCount = deleteCount;
+    }
+    
+    public int getCount() {
+        return deleteCount;
+    }
+    
+    public User getUser() {
+        return user;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/LoginUserResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/LoginUserResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/LoginUserResult.java	(working copy)
@@ -29,16 +29,16 @@
      * 
      */
     private static final long serialVersionUID = -8740775403377441876L;
-	private User user;
+    private User user;
 
     public LoginUserResult(User user) {
-    	this.user = user;
+        this.user = user;
     }
     
-	@SuppressWarnings("unused")
-	private LoginUserResult() {}
+    @SuppressWarnings("unused")
+    private LoginUserResult() {}
     
     public User getUser() {
-    	return user;
+        return user;
     }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/DeleteMessage.java	(working copy)
@@ -25,19 +25,19 @@
 
 public class DeleteMessage implements Action<DeleteMessageResult>{
 
-	private static final long serialVersionUID = 801294103124082592L;
-	private IMAPFolder folder;
+    private static final long serialVersionUID = 801294103124082592L;
+    private IMAPFolder folder;
 
-	public DeleteMessage(IMAPFolder folder) {
-		this.folder = folder;
-	}
-	
-	protected DeleteMessage() {
-		
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
+    public DeleteMessage(IMAPFolder folder) {
+        this.folder = folder;
+    }
+    
+    protected DeleteMessage() {
+        
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/LoginUser.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/LoginUser.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/LoginUser.java	(working copy)
@@ -25,14 +25,14 @@
 
 public class LoginUser implements Action<LoginUserResult>{
 
-	private static final long serialVersionUID = -7541443368424711160L;
+    private static final long serialVersionUID = -7541443368424711160L;
     
     private String userName;
     private String password;
 
     
-	@SuppressWarnings("unused")
-	private LoginUser() {}
+    @SuppressWarnings("unused")
+    private LoginUser() {}
     
     public LoginUser(String userName,String password) {
         this.userName = userName;
Index: shared/src/main/java/org/apache/hupa/shared/rpc/ForwardMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/ForwardMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/ForwardMessage.java	(working copy)
@@ -25,23 +25,23 @@
 
 public class ForwardMessage extends SendMessage {
 
-	private static final long serialVersionUID = 1656671247843122192L;
-	private long uid;
-	private IMAPFolder folder;
+    private static final long serialVersionUID = 1656671247843122192L;
+    private long uid;
+    private IMAPFolder folder;
 
-	public ForwardMessage(SMTPMessage msg, IMAPFolder folder, long uid) {
-		this.uid = uid;
-		this.folder = folder;
-	}
-	
-	protected ForwardMessage() {
-	}
+    public ForwardMessage(SMTPMessage msg, IMAPFolder folder, long uid) {
+        this.uid = uid;
+        this.folder = folder;
+    }
+    
+    protected ForwardMessage() {
+    }
 
-	public long getReplyMessageUid() {
-		return uid;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
+    public long getReplyMessageUid() {
+        return uid;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessagesResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessagesResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessagesResult.java	(working copy)
@@ -45,45 +45,45 @@
 
 public class FetchMessagesResult implements Result{
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 8692400285949934424L;
-	private ArrayList<Message> messages;
-	private int start;
-	private int offset;
-	private int realCount;
-	private int realUnreadCount;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 8692400285949934424L;
+    private ArrayList<Message> messages;
+    private int start;
+    private int offset;
+    private int realCount;
+    private int realUnreadCount;
 
-	@SuppressWarnings("unused")
-	private FetchMessagesResult() {
-	}
-	
-	public FetchMessagesResult(ArrayList<Message> messages,int start,int offset,int realCount, int realUnreadCount) {
-		this.messages = messages;
-		this.start = start;
-		this.offset = offset;
-		this.realCount = realCount;
-		this.realUnreadCount = realUnreadCount;
-	}
-	
-	public ArrayList<Message> getMessages() {
-		return messages;
-	}
-	
-	public int getOffset() {
-		return offset;
-	}
-	
-	public int getStart() {
-		return start;
-	}
-	
-	public int getRealCount() {
-		return realCount;
-	}
-	
-	public int getRealUnreadCount() {
-		return realUnreadCount;
-	}
+    @SuppressWarnings("unused")
+    private FetchMessagesResult() {
+    }
+    
+    public FetchMessagesResult(ArrayList<Message> messages,int start,int offset,int realCount, int realUnreadCount) {
+        this.messages = messages;
+        this.start = start;
+        this.offset = offset;
+        this.realCount = realCount;
+        this.realUnreadCount = realUnreadCount;
+    }
+    
+    public ArrayList<Message> getMessages() {
+        return messages;
+    }
+    
+    public int getOffset() {
+        return offset;
+    }
+    
+    public int getStart() {
+        return start;
+    }
+    
+    public int getRealCount() {
+        return realCount;
+    }
+    
+    public int getRealUnreadCount() {
+        return realUnreadCount;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessages.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessages.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/FetchMessages.java	(working copy)
@@ -24,37 +24,37 @@
 import org.apache.hupa.shared.data.IMAPFolder;
 
 public class FetchMessages implements Action<FetchMessagesResult>{
-	
-	private static final long serialVersionUID = -3181183289937321202L;
-	private IMAPFolder folder;
-	private int start;
-	private int offset;
-	private String searchString;
+    
+    private static final long serialVersionUID = -3181183289937321202L;
+    private IMAPFolder folder;
+    private int start;
+    private int offset;
+    private String searchString;
 
-	protected FetchMessages() {
-	}
-	
-	public FetchMessages(IMAPFolder folder,int start, int offset,String searchString) {
-		this.folder = folder;
-		this.start = start;
-		this.offset = offset;
-		this.searchString = searchString;
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public int getStart() {
-		return start;
-	}
-	
-	public int getOffset() {
-		return offset;
-	}
+    protected FetchMessages() {
+    }
+    
+    public FetchMessages(IMAPFolder folder,int start, int offset,String searchString) {
+        this.folder = folder;
+        this.start = start;
+        this.offset = offset;
+        this.searchString = searchString;
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public int getStart() {
+        return start;
+    }
+    
+    public int getOffset() {
+        return offset;
+    }
 
-	public String getSearchString() {
-		return searchString;
-	}
+    public String getSearchString() {
+        return searchString;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/SetFlag.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/SetFlag.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/SetFlag.java	(working copy)
@@ -28,34 +28,34 @@
 
 public class SetFlag implements Action<GenericResult>{
 
-	private static final long serialVersionUID = 662741801793895357L;
-	private IMAPFlag flag;
-	private ArrayList<Long> uids;
-	private IMAPFolder folder;
-	private boolean value;
-	
-	public SetFlag(IMAPFolder folder, IMAPFlag flag, boolean value, ArrayList<Long> uids) {
-		this.flag = flag;
-		this.value = value;
-		this.uids = uids;
-		this.folder = folder;
-	}
-	
-	protected SetFlag() {
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public boolean getValue() {
-		return value;
-	}
-	public IMAPFlag getFlag() {
-		return flag;
-	}
-	
-	public ArrayList<Long> getUids() {
-		return uids;
-	}
+    private static final long serialVersionUID = 662741801793895357L;
+    private IMAPFlag flag;
+    private ArrayList<Long> uids;
+    private IMAPFolder folder;
+    private boolean value;
+    
+    public SetFlag(IMAPFolder folder, IMAPFlag flag, boolean value, ArrayList<Long> uids) {
+        this.flag = flag;
+        this.value = value;
+        this.uids = uids;
+        this.folder = folder;
+    }
+    
+    protected SetFlag() {
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public boolean getValue() {
+        return value;
+    }
+    public IMAPFlag getFlag() {
+        return flag;
+    }
+    
+    public ArrayList<Long> getUids() {
+        return uids;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/GetMessageDetailsResult.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/GetMessageDetailsResult.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/GetMessageDetailsResult.java	(working copy)
@@ -25,23 +25,23 @@
 
 public class GetMessageDetailsResult implements Result{
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 6738085246457556043L;
-	private MessageDetails message;
-	
-	@SuppressWarnings("unused")
-	private GetMessageDetailsResult() {
-		
-	}
-	
-	public GetMessageDetailsResult(MessageDetails message) {
-		this.message = message;
-	}
-	
-	public MessageDetails getMessageDetails() {
-		return message;
-	}
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 6738085246457556043L;
+    private MessageDetails message;
+    
+    @SuppressWarnings("unused")
+    private GetMessageDetailsResult() {
+        
+    }
+    
+    public GetMessageDetailsResult(MessageDetails message) {
+        this.message = message;
+    }
+    
+    public MessageDetails getMessageDetails() {
+        return message;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/GetMessageDetails.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/GetMessageDetails.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/GetMessageDetails.java	(working copy)
@@ -26,39 +26,39 @@
 
 public class GetMessageDetails implements Action<GetMessageDetailsResult>{
 
-	private static final long serialVersionUID = 5826298202494313834L;
-	private IMAPFolder folder;
-	private long uid;
+    private static final long serialVersionUID = 5826298202494313834L;
+    private IMAPFolder folder;
+    private long uid;
 
-	public GetMessageDetails(IMAPFolder folder, long uid) {
-		this.folder = folder;
-		this.uid = uid;
-	}
+    public GetMessageDetails(IMAPFolder folder, long uid) {
+        this.folder = folder;
+        this.uid = uid;
+    }
 
-	@SuppressWarnings("unused")
-	private GetMessageDetails() {
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
-	
-	public long getUid() {
-		return uid;
-	}
-	
-	public boolean equals(Object obj) {
-		if (obj instanceof GetMessageDetails) {
-			GetMessageDetails action = (GetMessageDetails) obj;
-			if (action.getFolder().equals(getFolder()) && action.getUid() == getUid()) {
-				return true;
-			}
-		}
-		return false;
-		
-	}
-	
-	public int hashCode() {
-		return (int) (getFolder().hashCode() * getUid());
-	}
+    @SuppressWarnings("unused")
+    private GetMessageDetails() {
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
+    
+    public long getUid() {
+        return uid;
+    }
+    
+    public boolean equals(Object obj) {
+        if (obj instanceof GetMessageDetails) {
+            GetMessageDetails action = (GetMessageDetails) obj;
+            if (action.getFolder().equals(getFolder()) && action.getUid() == getUid()) {
+                return true;
+            }
+        }
+        return false;
+        
+    }
+    
+    public int hashCode() {
+        return (int) (getFolder().hashCode() * getUid());
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/DeleteFolder.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/DeleteFolder.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/DeleteFolder.java	(working copy)
@@ -25,18 +25,18 @@
 
 public class DeleteFolder implements Action<GenericResult>{
 
-	private static final long serialVersionUID = 7921329310932404439L;
-	
-	private IMAPFolder folder;
+    private static final long serialVersionUID = 7921329310932404439L;
+    
+    private IMAPFolder folder;
 
-	public DeleteFolder(IMAPFolder folder) {
-		this.folder = folder;
-	}
+    public DeleteFolder(IMAPFolder folder) {
+        this.folder = folder;
+    }
 
-	protected DeleteFolder() {
-	}
-	
-	public IMAPFolder getFolder() {
-		return folder;
-	}
+    protected DeleteFolder() {
+    }
+    
+    public IMAPFolder getFolder() {
+        return folder;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/rpc/SendMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/rpc/SendMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/rpc/SendMessage.java	(working copy)
@@ -25,21 +25,21 @@
 import org.apache.hupa.shared.data.SMTPMessage;
 
 public class SendMessage implements Action<GenericResult>{
-	
-	private static final long serialVersionUID = 973668124208945015L;
+    
+    private static final long serialVersionUID = 973668124208945015L;
 
-	private SMTPMessage msg;
-	
-	public SendMessage(SMTPMessage msg) {
-		this.msg = msg;
-	}
-	
-	protected SendMessage() {
-		
-	}
-	
-	public SMTPMessage getMessage() {
-		return msg;
-	}
-	
+    private SMTPMessage msg;
+    
+    public SendMessage(SMTPMessage msg) {
+        this.msg = msg;
+    }
+    
+    protected SendMessage() {
+        
+    }
+    
+    public SMTPMessage getMessage() {
+        return msg;
+    }
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/Settings.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/Settings.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/Settings.java	(working copy)
@@ -23,50 +23,50 @@
 
 public class Settings implements Serializable{
 
-	public static final String DEFAULT_INBOX = "INBOX"; 
-	public static final String DEFAULT_TRASH = "Trash"; 
-	public static final String DEFAULT_SENT = "Sent"; 
-	
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -8051377307421345664L;
-	private String trashFolderName = DEFAULT_TRASH;
-	private String sentFolderName = DEFAULT_SENT;
-	private String inboxFolderName = DEFAULT_INBOX;
-	private int prefetchCount = 20;
-	
-	public String getInboxFolderName() {
-		return inboxFolderName;
-	}
-	
-	public void setInboxFolderName(String inboxFolderName) {
-		this.inboxFolderName = inboxFolderName;
-	}
-	
-	public String getTrashFolderName() {
-		return trashFolderName;
-	}
-	
-	public void setTrashFolderName(String trashFolderName) {
-		this.trashFolderName = trashFolderName;
-	}
-	
-	public String getSentFolderName() {
-		return sentFolderName;
-	}
-	
-	public void setSentFolderName(String sentFolderName) {
-		this.sentFolderName = sentFolderName;
-	}
-	
-	public int getPostFetchMessageCount() {
-		return prefetchCount;
-	}
-	
-	public void setPostFetchMessageCount(int prefetchCount) {
-		this.prefetchCount  = prefetchCount;
-	}
-	
-	
+    public static final String DEFAULT_INBOX = "INBOX"; 
+    public static final String DEFAULT_TRASH = "Trash"; 
+    public static final String DEFAULT_SENT = "Sent"; 
+    
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -8051377307421345664L;
+    private String trashFolderName = DEFAULT_TRASH;
+    private String sentFolderName = DEFAULT_SENT;
+    private String inboxFolderName = DEFAULT_INBOX;
+    private int prefetchCount = 20;
+    
+    public String getInboxFolderName() {
+        return inboxFolderName;
+    }
+    
+    public void setInboxFolderName(String inboxFolderName) {
+        this.inboxFolderName = inboxFolderName;
+    }
+    
+    public String getTrashFolderName() {
+        return trashFolderName;
+    }
+    
+    public void setTrashFolderName(String trashFolderName) {
+        this.trashFolderName = trashFolderName;
+    }
+    
+    public String getSentFolderName() {
+        return sentFolderName;
+    }
+    
+    public void setSentFolderName(String sentFolderName) {
+        this.sentFolderName = sentFolderName;
+    }
+    
+    public int getPostFetchMessageCount() {
+        return prefetchCount;
+    }
+    
+    public void setPostFetchMessageCount(int prefetchCount) {
+        this.prefetchCount  = prefetchCount;
+    }
+    
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/IMAPFolder.java	(working copy)
@@ -28,166 +28,166 @@
  */
 public class IMAPFolder implements Serializable {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 2084188092060266479L;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 2084188092060266479L;
 
-	private ArrayList<IMAPFolder> childs = new ArrayList<IMAPFolder>();
-	private String fullName;
-	private String delimiter;
-	private int msgCount;
-	private int unseenMsgCount;
-	private boolean subscribed = false;
+    private ArrayList<IMAPFolder> childs = new ArrayList<IMAPFolder>();
+    private String fullName;
+    private String delimiter;
+    private int msgCount;
+    private int unseenMsgCount;
+    private boolean subscribed = false;
 
-	public IMAPFolder() {
-	}
+    public IMAPFolder() {
+    }
 
-	public IMAPFolder(String fullName) {
-		setFullName(fullName);
-	}
+    public IMAPFolder(String fullName) {
+        setFullName(fullName);
+    }
 
-	public void setSubscribed(boolean subscribed) {
-		this.subscribed = subscribed;
-	}
-	
-	public boolean getSubscribed() {
-		return subscribed;
-	}
-	
-	
-	/**
-	 * Get the name of the folder
-	 * 
-	 * @return name
-	 */
-	public String getName() {
-		if (delimiter != null) {
-			String fParts[] = getFullName().split("\\" + delimiter);
-			if (fParts != null && fParts.length > 0) {
-				return fParts[fParts.length - 1];
-			}
-		}
-		return fullName;
-	}
+    public void setSubscribed(boolean subscribed) {
+        this.subscribed = subscribed;
+    }
+    
+    public boolean getSubscribed() {
+        return subscribed;
+    }
+    
+    
+    /**
+     * Get the name of the folder
+     * 
+     * @return name
+     */
+    public String getName() {
+        if (delimiter != null) {
+            String fParts[] = getFullName().split("\\" + delimiter);
+            if (fParts != null && fParts.length > 0) {
+                return fParts[fParts.length - 1];
+            }
+        }
+        return fullName;
+    }
 
-	/**
-	 * Set the child folders 
-	 * 
-	 * @param childs
-	 */
-	public void setChildIMAPFolders(ArrayList<IMAPFolder> childs) {
-		this.childs = childs;
-	}
+    /**
+     * Set the child folders 
+     * 
+     * @param childs
+     */
+    public void setChildIMAPFolders(ArrayList<IMAPFolder> childs) {
+        this.childs = childs;
+    }
 
-	/**
-	 * Return the childs of this folder
-	 * 
-	 * @return childs
-	 */
-	public ArrayList<IMAPFolder> getChildIMAPFolders() {
-		return childs;
-	}
+    /**
+     * Return the childs of this folder
+     * 
+     * @return childs
+     */
+    public ArrayList<IMAPFolder> getChildIMAPFolders() {
+        return childs;
+    }
 
-	/**
-	 * Return the full name of the folder. This include the full path
-	 * @return
-	 */
-	public String getFullName() {
-		return fullName;
-	}
+    /**
+     * Return the full name of the folder. This include the full path
+     * @return
+     */
+    public String getFullName() {
+        return fullName;
+    }
 
-	/**
-	 * Set the full name of the folder
-	 * 
-	 * @param fullName
-	 */
-	public void setFullName(String fullName) {
-		this.fullName = fullName;
-	}
+    /**
+     * Set the full name of the folder
+     * 
+     * @param fullName
+     */
+    public void setFullName(String fullName) {
+        this.fullName = fullName;
+    }
 
-	/**
-	 * Set the delimiter which is used to seperate folders
-	 * 
-	 * @param delimiter
-	 */
-	public void setDelimiter(String delimiter) {
-		this.delimiter = delimiter;
-	}
+    /**
+     * Set the delimiter which is used to seperate folders
+     * 
+     * @param delimiter
+     */
+    public void setDelimiter(String delimiter) {
+        this.delimiter = delimiter;
+    }
 
-	/**
-	 * Return the delimiter
-	 * 
-	 * @return delimiter
-	 */
-	public String getDelimiter() {
-		return delimiter;
-	}
+    /**
+     * Return the delimiter
+     * 
+     * @return delimiter
+     */
+    public String getDelimiter() {
+        return delimiter;
+    }
 
-	/**
-	 * Return the total message count of the messages that exists within this folder
-	 * 
-	 * @return msgCount
-	 */
-	public int getMessageCount() {
-		return msgCount;
-	}
+    /**
+     * Return the total message count of the messages that exists within this folder
+     * 
+     * @return msgCount
+     */
+    public int getMessageCount() {
+        return msgCount;
+    }
 
-	/**
-	 * Set total message count
-	 * 
-	 * @param msgCount
-	 */
-	public void setMessageCount(int msgCount) {
-		this.msgCount = msgCount;
-	}
+    /**
+     * Set total message count
+     * 
+     * @param msgCount
+     */
+    public void setMessageCount(int msgCount) {
+        this.msgCount = msgCount;
+    }
 
-	/**
-	 * Set the count of all unseen messages within this folder
-	 * 
-	 * @param unseenMsgCount
-	 */
-	public void setUnseenMessageCount(int unseenMsgCount) {
-		this.unseenMsgCount = unseenMsgCount;
-	}
+    /**
+     * Set the count of all unseen messages within this folder
+     * 
+     * @param unseenMsgCount
+     */
+    public void setUnseenMessageCount(int unseenMsgCount) {
+        this.unseenMsgCount = unseenMsgCount;
+    }
 
-	/**
-	 * Return the unseen message count
-	 * 
-	 * @return unseenMsgCount
-	 */
-	public int getUnseeMessageCount() {
-		return unseenMsgCount;
-	}
+    /**
+     * Return the unseen message count
+     * 
+     * @return unseenMsgCount
+     */
+    public int getUnseeMessageCount() {
+        return unseenMsgCount;
+    }
 
-	@Override
-	public String toString() {
-		return getFullName();
-	}
-	
-	@Override
-	public boolean equals(Object o) {
-		if (o instanceof IMAPFolder) {
-			if (((IMAPFolder) o).getFullName().equals(getFullName())) {
-				return true;
-			}
-		}
-		return false;
-	}
+    @Override
+    public String toString() {
+        return getFullName();
+    }
+    
+    @Override
+    public boolean equals(Object o) {
+        if (o instanceof IMAPFolder) {
+            if (((IMAPFolder) o).getFullName().equals(getFullName())) {
+                return true;
+            }
+        }
+        return false;
+    }
 
-	@Override
-	public int hashCode() {
-		return getFullName().hashCode();
-	}
-	
-	public static IMAPFolder from(IMAPFolder folder) {
-		IMAPFolder newFolder = new IMAPFolder();
-		newFolder.setChildIMAPFolders(folder.getChildIMAPFolders());
-		newFolder.setDelimiter(folder.getDelimiter());
-		newFolder.setFullName(folder.getFullName());
-		newFolder.setMessageCount(folder.getMessageCount());
-		newFolder.setUnseenMessageCount(folder.getMessageCount());
-		return newFolder;
-	}
+    @Override
+    public int hashCode() {
+        return getFullName().hashCode();
+    }
+    
+    public static IMAPFolder from(IMAPFolder folder) {
+        IMAPFolder newFolder = new IMAPFolder();
+        newFolder.setChildIMAPFolders(folder.getChildIMAPFolders());
+        newFolder.setDelimiter(folder.getDelimiter());
+        newFolder.setFullName(folder.getFullName());
+        newFolder.setMessageCount(folder.getMessageCount());
+        newFolder.setUnseenMessageCount(folder.getMessageCount());
+        return newFolder;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/Message.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/Message.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/Message.java	(working copy)
@@ -28,68 +28,68 @@
  */
 public class Message extends AbstractMessage {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -101492974974136423L;
-	private long uid;
-	private ArrayList<IMAPFlag> flags;
-	private ArrayList<Tag> tags;
-	private Date rDate;
-	
-	public enum IMAPFlag {
-		SEEN, DELETED, RECENT, ANSWERED, JUNK, DRAFT
-	}
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -101492974974136423L;
+    private long uid;
+    private ArrayList<IMAPFlag> flags;
+    private ArrayList<Tag> tags;
+    private Date rDate;
+    
+    public enum IMAPFlag {
+        SEEN, DELETED, RECENT, ANSWERED, JUNK, DRAFT
+    }
 
-	public void setFlags(ArrayList<IMAPFlag> flags) {
-		this.flags = flags;
-	}
+    public void setFlags(ArrayList<IMAPFlag> flags) {
+        this.flags = flags;
+    }
 
-	public ArrayList<IMAPFlag> getFlags() {
-		return flags;
-	}
-	
-	public void setTags(ArrayList<Tag> tags) {
-		this.tags = tags;
-	}
-	
-	public ArrayList<Tag> getTags() {
-		return tags;
-	}
-	
-	public long getUid() {
-		return uid;
-	}
+    public ArrayList<IMAPFlag> getFlags() {
+        return flags;
+    }
+    
+    public void setTags(ArrayList<Tag> tags) {
+        this.tags = tags;
+    }
+    
+    public ArrayList<Tag> getTags() {
+        return tags;
+    }
+    
+    public long getUid() {
+        return uid;
+    }
 
-	public void setUid(long uid) {
-		this.uid = uid;
-	}
-	
-	
-	public void setReceivedDate(Date rDate) {
-		this.rDate = rDate;
-	}
+    public void setUid(long uid) {
+        this.uid = uid;
+    }
+    
+    
+    public void setReceivedDate(Date rDate) {
+        this.rDate = rDate;
+    }
 
-	public Date getReceivedDate() {
-		return rDate;
-	}
-	
+    public Date getReceivedDate() {
+        return rDate;
+    }
+    
 
-	public String toString() {
-		return String.valueOf(getUid());
-	}
-	
-	public boolean equals(Object obj) {
-		if (obj instanceof Message) {
-			if (((Message)obj).getUid() == getUid()) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		Long l = new Long(getUid());
-		return l.intValue() * 16;
-	}
+    public String toString() {
+        return String.valueOf(getUid());
+    }
+    
+    public boolean equals(Object obj) {
+        if (obj instanceof Message) {
+            if (((Message)obj).getUid() == getUid()) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    public int hashCode() {
+        Long l = new Long(getUid());
+        return l.intValue() * 16;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/AbstractMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/AbstractMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/AbstractMessage.java	(working copy)
@@ -23,78 +23,78 @@
 import java.util.ArrayList;
 
 public class AbstractMessage implements Serializable{
-	
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 5208272852772006815L;
-	private String from;
-	private String subject;
-	private ArrayList<String> to;
-	private ArrayList<String> cc;
-	private boolean hasAttachment;
-	
-	public boolean hasAttachment() {
-		return hasAttachment;
-	}
-	
-	public void setHasAttachments(boolean hasAttachments) {
-		this.hasAttachment = hasAttachments;
-	}
-	
-	/**
-	 * Set the From: header field
-	 * 
-	 * @param from
-	 */
-	public void setFrom(String from) {
-		this.from = from;
-	}
+    
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 5208272852772006815L;
+    private String from;
+    private String subject;
+    private ArrayList<String> to;
+    private ArrayList<String> cc;
+    private boolean hasAttachment;
+    
+    public boolean hasAttachment() {
+        return hasAttachment;
+    }
+    
+    public void setHasAttachments(boolean hasAttachments) {
+        this.hasAttachment = hasAttachments;
+    }
+    
+    /**
+     * Set the From: header field
+     * 
+     * @param from
+     */
+    public void setFrom(String from) {
+        this.from = from;
+    }
 
-	/**
-	 * Return the From: header field
-	 * 
-	 * @return from
-	 */
-	public String getFrom() {
-		return from;
-	}
+    /**
+     * Return the From: header field
+     * 
+     * @return from
+     */
+    public String getFrom() {
+        return from;
+    }
 
 
-	public void setCc(ArrayList<String> cc) {
-		this.cc = cc;
-	}
+    public void setCc(ArrayList<String> cc) {
+        this.cc = cc;
+    }
 
-	public ArrayList<String> getCc() {
-		return cc;
-	}
+    public ArrayList<String> getCc() {
+        return cc;
+    }
 
-	/**
-	 * Set the Subject: header field
-	 * 
-	 * @param subject
-	 */
-	public void setSubject(String subject) {
-		this.subject = subject;
-	}
+    /**
+     * Set the Subject: header field
+     * 
+     * @param subject
+     */
+    public void setSubject(String subject) {
+        this.subject = subject;
+    }
 
-	/**
-	 * Return the Subject: header field
-	 * 
-	 * @return subject
-	 */
-	public String getSubject() {
-		return subject;
-	}
+    /**
+     * Return the Subject: header field
+     * 
+     * @return subject
+     */
+    public String getSubject() {
+        return subject;
+    }
 
-	public  ArrayList<String> getTo() {
-		return to;
-	}
+    public  ArrayList<String> getTo() {
+        return to;
+    }
 
-	public void setTo( ArrayList<String> to) {
-		this.to = to;
-	}
-	
+    public void setTo( ArrayList<String> to) {
+        this.to = to;
+    }
+    
 
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/SMTPMessage.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/SMTPMessage.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/SMTPMessage.java	(working copy)
@@ -22,51 +22,51 @@
 import java.util.ArrayList;
 
 public class SMTPMessage extends AbstractMessage{
-	private static final long serialVersionUID = 7331361994526216161L;
-	private ArrayList<String> bcc;
-	private String text;
-	private ArrayList<MessageAttachment> aList;
-	
-	public ArrayList<String> getBcc() {
-		return bcc;
-	}
-	public void setBcc( ArrayList<String> bcc) {
-		this.bcc = bcc;
-	}
-	
-	/**
-	 * Set the body text of the content
-	 * 
-	 * @param text
-	 */
-	public void setText(String text) {
-		this.text = text;
-	}
+    private static final long serialVersionUID = 7331361994526216161L;
+    private ArrayList<String> bcc;
+    private String text;
+    private ArrayList<MessageAttachment> aList;
+    
+    public ArrayList<String> getBcc() {
+        return bcc;
+    }
+    public void setBcc( ArrayList<String> bcc) {
+        this.bcc = bcc;
+    }
+    
+    /**
+     * Set the body text of the content
+     * 
+     * @param text
+     */
+    public void setText(String text) {
+        this.text = text;
+    }
 
-	/**
-	 * Return the body text of the content
-	 * @return
-	 */
-	public String getText() {
-		return text;
-	}
+    /**
+     * Return the body text of the content
+     * @return
+     */
+    public String getText() {
+        return text;
+    }
 
-	/**
-	 * Set the attachments 
-	 * 
-	 * @param aList
-	 */
-	public void setMessageAttachments(ArrayList<MessageAttachment> aList) {
-		this.aList = aList;
-	}
+    /**
+     * Set the attachments 
+     * 
+     * @param aList
+     */
+    public void setMessageAttachments(ArrayList<MessageAttachment> aList) {
+        this.aList = aList;
+    }
 
-	/**
-	 * Return the attachments 
-	 * 
-	 * @return aList
-	 */
-	public ArrayList<MessageAttachment> getMessageAttachments() {
-		return aList;
-	}
+    /**
+     * Return the attachments 
+     * 
+     * @return aList
+     */
+    public ArrayList<MessageAttachment> getMessageAttachments() {
+        return aList;
+    }
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/MessageDetails.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/MessageDetails.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/MessageDetails.java	(working copy)
@@ -23,112 +23,112 @@
 import java.util.ArrayList;
 
 public class MessageDetails implements Serializable{
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 7611536915564919521L;
-	private boolean isHTML;
-	private String text;
-	private ArrayList<MessageAttachment> aList;
-	private long uid;
-	private String raw;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 7611536915564919521L;
+    private boolean isHTML;
+    private String text;
+    private ArrayList<MessageAttachment> aList;
+    private long uid;
+    private String raw;
 
-	
-	public long getUid() {
-		return uid;
-	}
+    
+    public long getUid() {
+        return uid;
+    }
 
-	public void setUid(long uid) {
-		this.uid = uid;
-	}
-	
-	/**
-	 * Set a raw String representation of the header
-	 * 
-	 * @param raw
-	 */
-	public void setRawHeader(String raw) {
-		this.raw = raw;
-	}
+    public void setUid(long uid) {
+        this.uid = uid;
+    }
+    
+    /**
+     * Set a raw String representation of the header
+     * 
+     * @param raw
+     */
+    public void setRawHeader(String raw) {
+        this.raw = raw;
+    }
 
-	/**
-	 * Return a raw String representation of the header
-	 * 
-	 * @return raw
-	 */
-	public String getRawHeader() {
-		return raw;
-	}
-	
-	/**
-	 * Set if the count is plain/html
-	 * 
-	 * @param isHTML
-	 */
-	public void setIsHTML(boolean isHTML) {
-		this.isHTML = isHTML;
-	}
+    /**
+     * Return a raw String representation of the header
+     * 
+     * @return raw
+     */
+    public String getRawHeader() {
+        return raw;
+    }
+    
+    /**
+     * Set if the count is plain/html
+     * 
+     * @param isHTML
+     */
+    public void setIsHTML(boolean isHTML) {
+        this.isHTML = isHTML;
+    }
 
-	/**
-	 * Return if the content is plain/html or plain/text
-	 * 
-	 * @return isHTML
-	 */
-	public boolean isHTML() {
-		return isHTML;
-	}
+    /**
+     * Return if the content is plain/html or plain/text
+     * 
+     * @return isHTML
+     */
+    public boolean isHTML() {
+        return isHTML;
+    }
 
-	/**
-	 * Set the body text of the content
-	 * 
-	 * @param text
-	 */
-	public void setText(String text) {
-		this.text = text;
-	}
+    /**
+     * Set the body text of the content
+     * 
+     * @param text
+     */
+    public void setText(String text) {
+        this.text = text;
+    }
 
-	/**
-	 * Return the body text of the content
-	 * @return
-	 */
-	public String getText() {
-		return text;
-	}
+    /**
+     * Return the body text of the content
+     * @return
+     */
+    public String getText() {
+        return text;
+    }
 
-	/**
-	 * Set the attachments 
-	 * 
-	 * @param aList
-	 */
-	public void setMessageAttachments(ArrayList<MessageAttachment> aList) {
-		this.aList = aList;
-	}
+    /**
+     * Set the attachments 
+     * 
+     * @param aList
+     */
+    public void setMessageAttachments(ArrayList<MessageAttachment> aList) {
+        this.aList = aList;
+    }
 
-	/**
-	 * Return the attachments 
-	 * 
-	 * @return aList
-	 */
-	public ArrayList<MessageAttachment> getMessageAttachments() {
-		return aList;
-	}
+    /**
+     * Return the attachments 
+     * 
+     * @return aList
+     */
+    public ArrayList<MessageAttachment> getMessageAttachments() {
+        return aList;
+    }
 
 
-	public String toString() {
-		return String.valueOf(getUid());
-	}
-	
-	public boolean equals(Object obj) {
-		if (obj instanceof MessageDetails) {
-			if (((MessageDetails)obj).getUid() == getUid()) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		Long l = new Long(getUid());
-		return l.intValue() * 16;
-	}
+    public String toString() {
+        return String.valueOf(getUid());
+    }
+    
+    public boolean equals(Object obj) {
+        if (obj instanceof MessageDetails) {
+            if (((MessageDetails)obj).getUid() == getUid()) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    public int hashCode() {
+        Long l = new Long(getUid());
+        return l.intValue() * 16;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/Tag.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/Tag.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/Tag.java	(working copy)
@@ -21,28 +21,28 @@
 
 public class Tag {
 
-	public static String PREFIX = "TAG.";
-	private String tagName;
-	
-	@SuppressWarnings("unused")
-	private Tag() {
-		
-	}
-	
-	public Tag(String tagName) {
-		this.tagName = tagName;
-	}
-	
-	public String getName() {
-		return tagName;
-	}
-	
-	public String getPrefix() {
-		return PREFIX;
-	}
-	
-	public String toString() {
-		return PREFIX + tagName;
-	}
-	
+    public static String PREFIX = "TAG.";
+    private String tagName;
+    
+    @SuppressWarnings("unused")
+    private Tag() {
+        
+    }
+    
+    public Tag(String tagName) {
+        this.tagName = tagName;
+    }
+    
+    public String getName() {
+        return tagName;
+    }
+    
+    public String getPrefix() {
+        return PREFIX;
+    }
+    
+    public String toString() {
+        return PREFIX + tagName;
+    }
+    
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/MessageAttachment.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/MessageAttachment.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/MessageAttachment.java	(working copy)
@@ -28,66 +28,66 @@
  */
 public class MessageAttachment implements Serializable {
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = -6896197131104882424L;
-	private String cType;
-	private int size;
-	private String name;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = -6896197131104882424L;
+    private String cType;
+    private int size;
+    private String name;
 
-	/**
-	 * Set the name of the attachment
-	 * 
-	 * @param name
-	 */
-	public void setName(String name) {
-		this.name = name;
-		
-	}
+    /**
+     * Set the name of the attachment
+     * 
+     * @param name
+     */
+    public void setName(String name) {
+        this.name = name;
+        
+    }
 
-	/**
-	 * Return the name of the attachment
-	 * 
-	 * @return name
-	 */
-	public String getName() {
-		return name;
-	}
+    /**
+     * Return the name of the attachment
+     * 
+     * @return name
+     */
+    public String getName() {
+        return name;
+    }
 
-	/**
-	 * Set the content-type of the attachment
-	 * 
-	 * @param cType
-	 */
-	public void setContentType(String cType) {
-		this.cType = cType;
-	}
-	
-	/**
-	 * Return the content-type of the attachment
-	 * 
-	 * @return cType
-	 */
-	public String getContentType() {
-		return cType;
-	}
+    /**
+     * Set the content-type of the attachment
+     * 
+     * @param cType
+     */
+    public void setContentType(String cType) {
+        this.cType = cType;
+    }
+    
+    /**
+     * Return the content-type of the attachment
+     * 
+     * @return cType
+     */
+    public String getContentType() {
+        return cType;
+    }
 
-	/**
-	 * Set the content size in bytes
-	 * 
-	 * @param size
-	 */
-	public void setSize(int size) {
-		this.size = size;
-	}
+    /**
+     * Set the content size in bytes
+     * 
+     * @param size
+     */
+    public void setSize(int size) {
+        this.size = size;
+    }
 
-	/**
-	 * Return the content size in bytes
-	 * 
-	 * @return size
-	 */
-	public int getSize() {
-		return size;
-	}
+    /**
+     * Return the content size in bytes
+     * 
+     * @return size
+     */
+    public int getSize() {
+        return size;
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/data/User.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/data/User.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/data/User.java	(working copy)
@@ -28,112 +28,112 @@
  *
  */
 public class User implements Serializable{
-	
-	private static final long serialVersionUID = -573674209289821920L;
-	private String name;
-	private String password;
-	private Date loginDate;
-	private boolean auth;
-	private Settings settings;
-	
-	
-	/**
-	 * The name of the User
-	 * 
-	 * @param name
-	 */
-	public void setName(String name) {
-		this.name = name;
-	}
+    
+    private static final long serialVersionUID = -573674209289821920L;
+    private String name;
+    private String password;
+    private Date loginDate;
+    private boolean auth;
+    private Settings settings;
+    
+    
+    /**
+     * The name of the User
+     * 
+     * @param name
+     */
+    public void setName(String name) {
+        this.name = name;
+    }
 
-	/**
-	 * Get name of the User
-	 * 
-	 * @return name
-	 */
-	public String getName() {
-		return name;
-	}
+    /**
+     * Get name of the User
+     * 
+     * @return name
+     */
+    public String getName() {
+        return name;
+    }
 
-	/**
-	 * Set the Password of the User
-	 * 
-	 * @param password
-	 */
-	public void setPassword(String password) {
-		this.password = password;
-	}
+    /**
+     * Set the Password of the User
+     * 
+     * @param password
+     */
+    public void setPassword(String password) {
+        this.password = password;
+    }
 
-	/**
-	 * Get the Password of the User
-	 * 
-	 * @return password
-	 */
-	public String getPassword() {
-		return password;
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#toString()
-	 */
-	public String toString() {
-		return getName();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see java.lang.Object#equals(java.lang.Object)
-	 */
-	public boolean equals(Object object) {
-		if (object instanceof User) {
-			if (((User) object).getName().equals(getName())) {
-				return true;
-			}
-		}
-		return false;
-	}
-	
-	public int hashCode() {
-		return getName().hashCode();
-	}
-	/**
-	 * Get the Date on which the User was logged in the last time
-	 * 
-	 * @return loginDate
-	 */
-	public Date getLoginDate() {
-		return loginDate;
-	}
+    /**
+     * Get the Password of the User
+     * 
+     * @return password
+     */
+    public String getPassword() {
+        return password;
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see java.lang.Object#toString()
+     */
+    public String toString() {
+        return getName();
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see java.lang.Object#equals(java.lang.Object)
+     */
+    public boolean equals(Object object) {
+        if (object instanceof User) {
+            if (((User) object).getName().equals(getName())) {
+                return true;
+            }
+        }
+        return false;
+    }
+    
+    public int hashCode() {
+        return getName().hashCode();
+    }
+    /**
+     * Get the Date on which the User was logged in the last time
+     * 
+     * @return loginDate
+     */
+    public Date getLoginDate() {
+        return loginDate;
+    }
 
-	/**
-	 * Set if the User was successful authenticated
-	 * 
-	 * @param auth
-	 */
-	public void setAuthenticated(boolean auth) {
-		this.auth = auth;
-		if (auth) {
-			loginDate = new Date();
-		}
-	}
+    /**
+     * Set if the User was successful authenticated
+     * 
+     * @param auth
+     */
+    public void setAuthenticated(boolean auth) {
+        this.auth = auth;
+        if (auth) {
+            loginDate = new Date();
+        }
+    }
 
-	/**
-	 * Get if the User was successful authenticated
-	 * 
-	 * @return auth
-	 */
-	public boolean getAuthenticated() {
-		return auth;
-	}
-	
-	public void setSettings(Settings settings) {
-		this.settings = settings;
-	}
-	
-	public Settings getSettings() {
-		return settings;
-	}
+    /**
+     * Get if the User was successful authenticated
+     * 
+     * @return auth
+     */
+    public boolean getAuthenticated() {
+        return auth;
+    }
+    
+    public void setSettings(Settings settings) {
+        this.settings = settings;
+    }
+    
+    public Settings getSettings() {
+        return settings;
+    }
 
 
 }
Index: shared/src/main/java/org/apache/hupa/shared/Util.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/Util.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/Util.java	(working copy)
@@ -22,40 +22,40 @@
 import java.util.ArrayList;
 
 public class Util {
-	
-	public final static String HTML_LT = "&lt;";
-	public final static String STRING_LT = "<";
-	public final static String HTML_GT = "&gt;";
-	public final static String STRING_GT = ">";
-	public final static String HTML_CR = "<br>";
-	public final static String STRING_CR = "\n";
-	
-	public static String toString(String string) {
-		if (string != null) {
-			string = string.replaceAll(HTML_LT, STRING_LT);
-			string = string.replaceAll(HTML_GT, STRING_GT);
-			string = string.replaceAll(HTML_CR, STRING_CR);
-		}
-		return string;
-	}
+    
+    public final static String HTML_LT = "&lt;";
+    public final static String STRING_LT = "<";
+    public final static String HTML_GT = "&gt;";
+    public final static String STRING_GT = ">";
+    public final static String HTML_CR = "<br>";
+    public final static String STRING_CR = "\n";
+    
+    public static String toString(String string) {
+        if (string != null) {
+            string = string.replaceAll(HTML_LT, STRING_LT);
+            string = string.replaceAll(HTML_GT, STRING_GT);
+            string = string.replaceAll(HTML_CR, STRING_CR);
+        }
+        return string;
+    }
 
-	public static String toHtml(String string) {
-		if (string != null) {
-			string = string.replaceAll(STRING_LT, HTML_LT);
-			string = string.replaceAll(STRING_GT, HTML_GT);
-			string = string.replaceAll(STRING_CR, HTML_CR);
-		}
-		return string;
-	}
-	
-	public static String arrayToString(ArrayList<String> aList) {
-		StringBuffer sb = new StringBuffer();
-		for (int i = 0; i < aList.size(); i++) {
-			sb.append(aList.get(i));
-			if (i < aList.size()-1) {
-				sb.append(", ");
-			}
-		}
-		return sb.toString();
-	}
+    public static String toHtml(String string) {
+        if (string != null) {
+            string = string.replaceAll(STRING_LT, HTML_LT);
+            string = string.replaceAll(STRING_GT, HTML_GT);
+            string = string.replaceAll(STRING_CR, HTML_CR);
+        }
+        return string;
+    }
+    
+    public static String arrayToString(ArrayList<String> aList) {
+        StringBuffer sb = new StringBuffer();
+        for (int i = 0; i < aList.size(); i++) {
+            sb.append(aList.get(i));
+            if (i < aList.size()-1) {
+                sb.append(", ");
+            }
+        }
+        return sb.toString();
+    }
 }
Index: shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java
===================================================================
--- shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java	(revision 825462)
+++ shared/src/main/java/org/apache/hupa/shared/exception/InvalidSessionException.java	(working copy)
@@ -26,12 +26,12 @@
  */
 public class InvalidSessionException extends ActionException{
 
-	/**
-	 * 
-	 */
-	private static final long serialVersionUID = 995112620968798947L;
+    /**
+     * 
+     */
+    private static final long serialVersionUID = 995112620968798947L;
 
-	public InvalidSessionException(String msg) {
-		super(msg);
-	}
+    public InvalidSessionException(String msg) {
+        super(msg);
+    }
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/event/EditHandler.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/event/EditHandler.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/event/EditHandler.java	(working copy)
@@ -23,5 +23,5 @@
 
 public interface EditHandler extends EventHandler{
 
-	public void onEditEvent(EditEvent event);
+    public void onEditEvent(EditEvent event);
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/event/EditEvent.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/event/EditEvent.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/event/EditEvent.java	(working copy)
@@ -27,63 +27,63 @@
  *
  */
 public class EditEvent extends GwtEvent<EditHandler>{
-	public static final Type<EditHandler> TYPE = new Type<EditHandler>();
-	private EventType eType;
-	private Object oldValue;
-	private Object newValue;
+    public static final Type<EditHandler> TYPE = new Type<EditHandler>();
+    private EventType eType;
+    private Object oldValue;
+    private Object newValue;
 
-	/**
-	 * The edit types
-	 *
-	 */
-	 public enum  EventType{
-		Start,
-		Stop,
-		Cancel
-	}
-	 
-	 public EditEvent(EventType eType,Object oldValue,Object newValue) {
-		 this.eType = eType;
-		 this.oldValue = oldValue;
-		 this.newValue = newValue;
-	 }
-	 
-	 /**
-	  * Return the edit type
-	  * 
-	  * @return eType
-	  */
-	 public EventType getEventType() {
-		 return eType;
-	 }
-	 
-	 /**
-	  * Return the oldvalue of the editing component
-	  * 
-	  * @return oldValue
-	  */
-	 public Object getOldValue() {
-		 return oldValue;
-	 }
-	 
-	 /**
-	  * Return the newvalue of the editing component
-	  * 
-	  * @return newValue
-	  */
-	 public Object getNewValue() {
-		 return newValue;
-	 }
-	 
-	@Override
-	protected void dispatch(EditHandler handler) {
-		handler.onEditEvent(this);
-	}
+    /**
+     * The edit types
+     *
+     */
+     public enum  EventType{
+        Start,
+        Stop,
+        Cancel
+    }
+     
+     public EditEvent(EventType eType,Object oldValue,Object newValue) {
+         this.eType = eType;
+         this.oldValue = oldValue;
+         this.newValue = newValue;
+     }
+     
+     /**
+      * Return the edit type
+      * 
+      * @return eType
+      */
+     public EventType getEventType() {
+         return eType;
+     }
+     
+     /**
+      * Return the oldvalue of the editing component
+      * 
+      * @return oldValue
+      */
+     public Object getOldValue() {
+         return oldValue;
+     }
+     
+     /**
+      * Return the newvalue of the editing component
+      * 
+      * @return newValue
+      */
+     public Object getNewValue() {
+         return newValue;
+     }
+     
+    @Override
+    protected void dispatch(EditHandler handler) {
+        handler.onEditEvent(this);
+    }
 
-	@Override
-	public com.google.gwt.event.shared.GwtEvent.Type<EditHandler> getAssociatedType() {
-		return TYPE;
-	}
+    @Override
+    public com.google.gwt.event.shared.GwtEvent.Type<EditHandler> getAssociatedType() {
+        return TYPE;
+    }
 
-	
+    
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/HasEditHandlers.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/HasEditHandlers.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/HasEditHandlers.java	(working copy)
@@ -25,5 +25,5 @@
 
 public interface HasEditHandlers {
 
-	public HandlerRegistration addEditHandler(EditHandler handler);
+    public HandlerRegistration addEditHandler(EditHandler handler);
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/HasEnable.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/HasEnable.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/HasEnable.java	(working copy)
@@ -25,10 +25,10 @@
  */
 public interface HasEnable {
 
-	/**
-	 * Enable or disable 
-	 * 
-	 * @param enable
-	 */
-	public void setEnabled(boolean enable);
+    /**
+     * Enable or disable 
+     * 
+     * @param enable
+     */
+    public void setEnabled(boolean enable);
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/HasEditable.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/HasEditable.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/HasEditable.java	(working copy)
@@ -26,25 +26,25 @@
  */
 public interface HasEditable {
 
-	/**
-	 * Start editing
-	 */
-	public void startEdit();
-	
-	/**
-	 * Cancel editing
-	 */
-	public void cancelEdit();
+    /**
+     * Start editing
+     */
+    public void startEdit();
+    
+    /**
+     * Cancel editing
+     */
+    public void cancelEdit();
 
-	/**
-	 * Stop editing
-	 */
-	public void stopEdit();
-	
-	/**
-	 * Return if editing is currently active
-	 * 
-	 * @return editing
-	 */
-	public boolean isEdit();
+    /**
+     * Stop editing
+     */
+    public void stopEdit();
+    
+    /**
+     * Return if editing is currently active
+     * 
+     * @return editing
+     */
+    public boolean isEdit();
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/EditableTreeItem.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/EditableTreeItem.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/EditableTreeItem.java	(working copy)
@@ -41,133 +41,133 @@
  *
  */
 public class EditableTreeItem extends TreeItem implements HasEditable,HasEditHandlers{
-	protected TextBox editBox = new TextBox();
-	protected String oldValue;
-	protected Widget normalItem = new Label();
-	protected HandlerManager manager = new HandlerManager(this);
-	public EditableTreeItem() {
-		editBox.setWidth("100px");
-		editBox.addKeyDownHandler(new KeyDownHandler() {
+    protected TextBox editBox = new TextBox();
+    protected String oldValue;
+    protected Widget normalItem = new Label();
+    protected HandlerManager manager = new HandlerManager(this);
+    public EditableTreeItem() {
+        editBox.setWidth("100px");
+        editBox.addKeyDownHandler(new KeyDownHandler() {
 
-			public void onKeyDown(KeyDownEvent event) {
-				int code = event.getNativeKeyCode();
-				switch (code) {
-				// handle ENTER and ESCAPE keys
-				case KeyCodes.KEY_ENTER:
-					stopEdit();
-					break;
-				case KeyCodes.KEY_ESCAPE:
-					cancelEdit();
-					break;
+            public void onKeyDown(KeyDownEvent event) {
+                int code = event.getNativeKeyCode();
+                switch (code) {
+                // handle ENTER and ESCAPE keys
+                case KeyCodes.KEY_ENTER:
+                    stopEdit();
+                    break;
+                case KeyCodes.KEY_ESCAPE:
+                    cancelEdit();
+                    break;
 
-				default:
-					break;
-				}
+                default:
+                    break;
+                }
 
-			}
+            }
 
-		});
-		
-		// Just cancel the editing if the user click outside the TextBox
-		editBox.addBlurHandler(new BlurHandler() {
+        });
+        
+        // Just cancel the editing if the user click outside the TextBox
+        editBox.addBlurHandler(new BlurHandler() {
 
-			public void onBlur(BlurEvent event) {
-				cancelEdit();
-			}
-			
-		});
-		super.setWidget(normalItem);
-	}
-	
+            public void onBlur(BlurEvent event) {
+                cancelEdit();
+            }
+            
+        });
+        super.setWidget(normalItem);
+    }
+    
 
-	@Override
-	public void setText(String text) {
-		editBox.setText(text);
-		((HasText)normalItem).setText(text);
-	}
+    @Override
+    public void setText(String text) {
+        editBox.setText(text);
+        ((HasText)normalItem).setText(text);
+    }
 
 
-	@Override
-	public void setWidget(Widget newWidget) {
-		if (newWidget instanceof HasText) {
-			normalItem = newWidget;
-			super.setWidget(newWidget);
-		} else {
-			throw new IllegalArgumentException("Widget need to implement HasText");
-		}
-	}
+    @Override
+    public void setWidget(Widget newWidget) {
+        if (newWidget instanceof HasText) {
+            normalItem = newWidget;
+            super.setWidget(newWidget);
+        } else {
+            throw new IllegalArgumentException("Widget need to implement HasText");
+        }
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.widgets.HasEditable#cancelEdit()
-	 */
-	public void cancelEdit() {
-		showItem(oldValue);
-		manager.fireEvent(new EditEvent(EditEvent.EventType.Start,oldValue,null));
-	}
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.widgets.HasEditable#isEdit()
-	 */
-	public boolean isEdit() {
-		return getWidget().equals(editBox);
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.widgets.HasEditable#cancelEdit()
+     */
+    public void cancelEdit() {
+        showItem(oldValue);
+        manager.fireEvent(new EditEvent(EditEvent.EventType.Start,oldValue,null));
+    }
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.widgets.HasEditable#isEdit()
+     */
+    public boolean isEdit() {
+        return getWidget().equals(editBox);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.widgets.HasEditable#startEdit()
-	 */
-	public void startEdit() {
-		oldValue = getText();
-		showEditBox(oldValue);
-		manager.fireEvent(new EditEvent(EditEvent.EventType.Start,oldValue,null));
-	}
-	
-	/**
-	 * Show the editbox filled with the given value 
-	 * 
-	 * @param value
-	 */
-	protected void showEditBox(String value) {
-		editBox.setText(value);
-		editBox.setCursorPos(value.length());
-		editBox.setFocus(true);
-		super.setWidget(editBox);
-	}
-	
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.widgets.HasEditable#startEdit()
+     */
+    public void startEdit() {
+        oldValue = getText();
+        showEditBox(oldValue);
+        manager.fireEvent(new EditEvent(EditEvent.EventType.Start,oldValue,null));
+    }
+    
+    /**
+     * Show the editbox filled with the given value 
+     * 
+     * @param value
+     */
+    protected void showEditBox(String value) {
+        editBox.setText(value);
+        editBox.setCursorPos(value.length());
+        editBox.setFocus(true);
+        super.setWidget(editBox);
+    }
+    
 
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.widgets.HasEditable#stopEdit()
-	 */
-	public void stopEdit() {
-		showItem(editBox.getText());
-		manager.fireEvent(new EditEvent(EditEvent.EventType.Stop,oldValue,editBox.getText()));
-	}
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.widgets.HasEditable#stopEdit()
+     */
+    public void stopEdit() {
+        showItem(editBox.getText());
+        manager.fireEvent(new EditEvent(EditEvent.EventType.Stop,oldValue,editBox.getText()));
+    }
 
-	/**
-	 * Show the "normal" item with the given text
-	 * 
-	 * @param text
-	 */
-	protected void showItem(String text) {
-		((HasText)normalItem).setText(text);
-		setWidget(normalItem);
-	}
-	
-	@Override
-	public String getText() {
-		return ((HasText)normalItem).getText();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.widgets.HasEditHandlers#addEditHandler(org.apache.hupa.client.widgets.EditHandler)
-	 */
-	public HandlerRegistration addEditHandler(EditHandler handler) {
-		return manager.addHandler(EditEvent.TYPE, handler);
-	}
-	
-	 
+    /**
+     * Show the "normal" item with the given text
+     * 
+     * @param text
+     */
+    protected void showItem(String text) {
+        ((HasText)normalItem).setText(text);
+        setWidget(normalItem);
+    }
+    
+    @Override
+    public String getText() {
+        return ((HasText)normalItem).getText();
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.widgets.HasEditHandlers#addEditHandler(org.apache.hupa.client.widgets.EditHandler)
+     */
+    public HandlerRegistration addEditHandler(EditHandler handler) {
+        return manager.addHandler(EditEvent.TYPE, handler);
+    }
+    
+     
 
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/NumberOnlyTextBox.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/NumberOnlyTextBox.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/NumberOnlyTextBox.java	(working copy)
@@ -29,20 +29,20 @@
  *
  */
 public class NumberOnlyTextBox extends TextBox implements KeyPressHandler{
-	
-	public NumberOnlyTextBox() {
-		addKeyPressHandler(this);
-	}
+    
+    public NumberOnlyTextBox() {
+        addKeyPressHandler(this);
+    }
 
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.event.dom.client.KeyPressHandler#onKeyPress(com.google.gwt.event.dom.client.KeyPressEvent)
-	 */
-	public void onKeyPress(KeyPressEvent event) {
-		char keyCode = event.getCharCode();
-	    if (!Character.isDigit(keyCode)) {
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.event.dom.client.KeyPressHandler#onKeyPress(com.google.gwt.event.dom.client.KeyPressEvent)
+     */
+    public void onKeyPress(KeyPressEvent event) {
+        char keyCode = event.getCharCode();
+        if (!Character.isDigit(keyCode)) {
             cancelKey();
         } 
-	}
-	
+    }
+    
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/EditableTree.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/EditableTree.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/EditableTree.java	(working copy)
@@ -31,40 +31,40 @@
  *
  */
 public class EditableTree extends Tree {
-	public EditableTree(TreeImages images, boolean leaf) {
-		super(images, leaf);
-	}
+    public EditableTree(TreeImages images, boolean leaf) {
+        super(images, leaf);
+    }
 
-	public EditableTree() {
-		super();
-	}
-	
-	public EditableTree(TreeImages images) {
-		super(images);
-	}
-	
-	/**
-	 * Prevent  Event.ONCLICK, Event.ONMOUSEDOWN, Event.ONKEYDOWN from bubble down if the item is in editing mode
-	 */
-	public void onBrowserEvent(Event event) {
-		TreeItem item = getSelectedItem();
-		
-		// Check if the selectedItem is Editable and if so make sure the events are not fired
-		if (item instanceof HasEditable) {
-			if (item != null && ((HasEditable) item).isEdit()) {
-				int type = DOM.eventGetType(event);
-				switch (type) {
-				case Event.ONCLICK:
-					return;
-				case Event.ONMOUSEDOWN:
-					return;
-				case Event.ONKEYDOWN:
-					return;
-				default:
-					break;
-				}
-			}
-		}
-		super.onBrowserEvent(event);
-	}
+    public EditableTree() {
+        super();
+    }
+    
+    public EditableTree(TreeImages images) {
+        super(images);
+    }
+    
+    /**
+     * Prevent  Event.ONCLICK, Event.ONMOUSEDOWN, Event.ONKEYDOWN from bubble down if the item is in editing mode
+     */
+    public void onBrowserEvent(Event event) {
+        TreeItem item = getSelectedItem();
+        
+        // Check if the selectedItem is Editable and if so make sure the events are not fired
+        if (item instanceof HasEditable) {
+            if (item != null && ((HasEditable) item).isEdit()) {
+                int type = DOM.eventGetType(event);
+                switch (type) {
+                case Event.ONCLICK:
+                    return;
+                case Event.ONMOUSEDOWN:
+                    return;
+                case Event.ONKEYDOWN:
+                    return;
+                default:
+                    break;
+                }
+            }
+        }
+        super.onBrowserEvent(event);
+    }
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/ToolTip.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/ToolTip.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/ToolTip.java	(working copy)
@@ -42,64 +42,64 @@
  *
  */
 public class ToolTip extends Label {
-	private int y = 0;
-	private int x = 0;
-	private final PopupPanel popup = new PopupPanel();
-	private final Timer showTimer = new Timer() {
+    private int y = 0;
+    private int x = 0;
+    private final PopupPanel popup = new PopupPanel();
+    private final Timer showTimer = new Timer() {
 
-		@Override
-		public void run() {
-			popup.setPopupPosition(y,x);
-			popup.show();
-		}
-		
-	};
-	public ToolTip(final Widget w) {
-		if (!(w instanceof HasMouseOverHandlers) || (!( w instanceof HasMouseOutHandlers)) || (!(w instanceof HasMouseMoveHandlers))) {
-			throw new IllegalArgumentException("Widget must implement HasMouseOverHandlers and HasMouseOutHandlers");
-		}
-		((HasMouseOverHandlers) w).addMouseOverHandler(new MouseOverHandler() {
+        @Override
+        public void run() {
+            popup.setPopupPosition(y,x);
+            popup.show();
+        }
+        
+    };
+    public ToolTip(final Widget w) {
+        if (!(w instanceof HasMouseOverHandlers) || (!( w instanceof HasMouseOutHandlers)) || (!(w instanceof HasMouseMoveHandlers))) {
+            throw new IllegalArgumentException("Widget must implement HasMouseOverHandlers and HasMouseOutHandlers");
+        }
+        ((HasMouseOverHandlers) w).addMouseOverHandler(new MouseOverHandler() {
 
-			public void onMouseOver(MouseOverEvent event) {
-				showTimer.schedule(1000);
-			}
-			
-		});
-		
-		((HasMouseOutHandlers)w).addMouseOutHandler(new MouseOutHandler() {
+            public void onMouseOver(MouseOverEvent event) {
+                showTimer.schedule(1000);
+            }
+            
+        });
+        
+        ((HasMouseOutHandlers)w).addMouseOutHandler(new MouseOutHandler() {
 
-			public void onMouseOut(MouseOutEvent event) {
-				showTimer.cancel();
-				popup.hide();
-			}
-			
-		});
-		
-		((HasMouseMoveHandlers) w).addMouseMoveHandler(new MouseMoveHandler() {
+            public void onMouseOut(MouseOutEvent event) {
+                showTimer.cancel();
+                popup.hide();
+            }
+            
+        });
+        
+        ((HasMouseMoveHandlers) w).addMouseMoveHandler(new MouseMoveHandler() {
 
-			public void onMouseMove(MouseMoveEvent event) {
-				y = event.getScreenY();
-				x = w.getAbsoluteTop() + w.getOffsetHeight();
-			}
-			
-		});
-		popup.addCloseHandler(new CloseHandler<PopupPanel>() {
+            public void onMouseMove(MouseMoveEvent event) {
+                y = event.getScreenY();
+                x = w.getAbsoluteTop() + w.getOffsetHeight();
+            }
+            
+        });
+        popup.addCloseHandler(new CloseHandler<PopupPanel>() {
 
-			public void onClose(CloseEvent<PopupPanel> event) {
-				showTimer.cancel();
-			}
-			
-		});
-		addStyleName("hupa-ToolTip");
-		popup.addStyleName("hupa-ToolTip");
-		popup.setAnimationEnabled(true);
-		popup.setAutoHideEnabled(true);
-	}
-	
-	public void setText(String text) {
-		super.setText(text);
-		popup.setWidget(this);
-	}
-	
-	
+            public void onClose(CloseEvent<PopupPanel> event) {
+                showTimer.cancel();
+            }
+            
+        });
+        addStyleName("hupa-ToolTip");
+        popup.addStyleName("hupa-ToolTip");
+        popup.setAnimationEnabled(true);
+        popup.setAutoHideEnabled(true);
+    }
+    
+    public void setText(String text) {
+        super.setText(text);
+        popup.setWidget(this);
+    }
+    
+    
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/EnableHyperlink.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/EnableHyperlink.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/EnableHyperlink.java	(working copy)
@@ -35,82 +35,82 @@
  *
  */
 public class EnableHyperlink extends Composite implements HasClickHandlers,HasHTML,HasText, HasEnable{
-	private SimplePanel panel = new SimplePanel();
-	private Hyperlink link;
-	private HTML html;
-	
-	public EnableHyperlink(String text, String historyToken) {
-		this(text,false,historyToken);
-	}
-	
-	public EnableHyperlink(String text, boolean asHTML, String historyToken) {
-		link = new Hyperlink(text,asHTML,historyToken);
-		html = new HTML();
-		if (asHTML) {
-			html.setHTML(text);
-		} else {
-			html.setText(text);
-		}
-		
-		// mimic hyperlink 
-		html.getElement().getStyle().setProperty("textDecoration", "underline");
-		
-		// use color code to workaround for https://issues.apache.org/jira/browse/HUPA-27
-		html.getElement().getStyle().setProperty("color", "#8d8d8d");
-		panel.setWidget(link);
-		initWidget(panel);
-	}
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.event.dom.client.HasClickHandlers#addClickHandler(com.google.gwt.event.dom.client.ClickHandler)
-	 */
-	public HandlerRegistration addClickHandler(ClickHandler handler) {
-		return link.addClickHandler(handler);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.user.client.ui.HasText#getText()
-	 */
-	public String getText() {
-		return link.getText();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.user.client.ui.HasText#setText(java.lang.String)
-	 */
-	public void setText(String text) {
-		link.setText(text);
-		html.setText(text);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.user.client.ui.HasHTML#getHTML()
-	 */
-	public String getHTML() {
-		return link.getHTML();
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see com.google.gwt.user.client.ui.HasHTML#setHTML(java.lang.String)
-	 */
-	public void setHTML(String html) {
-		this.html.setHTML(html);
-	}
-	
-	/*
-	 * (non-Javadoc)
-	 * @see org.apache.hupa.client.widgets.HasEnable#setEnabled(boolean)
-	 */
-	public void setEnabled(boolean enable) {
-		if (enable) {
-			panel.setWidget(link);
-		} else {
-			panel.setWidget(html);
-		}
-	}
+    private SimplePanel panel = new SimplePanel();
+    private Hyperlink link;
+    private HTML html;
+    
+    public EnableHyperlink(String text, String historyToken) {
+        this(text,false,historyToken);
+    }
+    
+    public EnableHyperlink(String text, boolean asHTML, String historyToken) {
+        link = new Hyperlink(text,asHTML,historyToken);
+        html = new HTML();
+        if (asHTML) {
+            html.setHTML(text);
+        } else {
+            html.setText(text);
+        }
+        
+        // mimic hyperlink 
+        html.getElement().getStyle().setProperty("textDecoration", "underline");
+        
+        // use color code to workaround for https://issues.apache.org/jira/browse/HUPA-27
+        html.getElement().getStyle().setProperty("color", "#8d8d8d");
+        panel.setWidget(link);
+        initWidget(panel);
+    }
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.event.dom.client.HasClickHandlers#addClickHandler(com.google.gwt.event.dom.client.ClickHandler)
+     */
+    public HandlerRegistration addClickHandler(ClickHandler handler) {
+        return link.addClickHandler(handler);
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.user.client.ui.HasText#getText()
+     */
+    public String getText() {
+        return link.getText();
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.user.client.ui.HasText#setText(java.lang.String)
+     */
+    public void setText(String text) {
+        link.setText(text);
+        html.setText(text);
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.user.client.ui.HasHTML#getHTML()
+     */
+    public String getHTML() {
+        return link.getHTML();
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see com.google.gwt.user.client.ui.HasHTML#setHTML(java.lang.String)
+     */
+    public void setHTML(String html) {
+        this.html.setHTML(html);
+    }
+    
+    /*
+     * (non-Javadoc)
+     * @see org.apache.hupa.client.widgets.HasEnable#setEnabled(boolean)
+     */
+    public void setEnabled(boolean enable) {
+        if (enable) {
+            panel.setWidget(link);
+        } else {
+            panel.setWidget(html);
+        }
+    }
 
 }
Index: widgets/src/main/java/org/apache/hupa/widgets/ui/RefetchPagingScrollTable.java
===================================================================
--- widgets/src/main/java/org/apache/hupa/widgets/ui/RefetchPagingScrollTable.java	(revision 825462)
+++ widgets/src/main/java/org/apache/hupa/widgets/ui/RefetchPagingScrollTable.java	(working copy)
@@ -43,103 +43,103 @@
  *
  */
 public class RefetchPagingScrollTable<RowType> extends PagingScrollTable<RowType>{
-	private ArrayList<RowType> selectedRows = new ArrayList<RowType>();
+    private ArrayList<RowType> selectedRows = new ArrayList<RowType>();
 
-	
-	public RefetchPagingScrollTable(MutableTableModel<RowType> tableModel,
-			FixedWidthGrid dataTable, FixedWidthFlexTable headerTable,
-			TableDefinition<RowType> tableDefinition) {
-		super(tableModel, dataTable, headerTable, tableDefinition);
+    
+    public RefetchPagingScrollTable(MutableTableModel<RowType> tableModel,
+            FixedWidthGrid dataTable, FixedWidthFlexTable headerTable,
+            TableDefinition<RowType> tableDefinition) {
+        super(tableModel, dataTable, headerTable, tableDefinition);
 
-		getDataTable().addRowSelectionHandler(new RowSelectionHandler() {
+        getDataTable().addRowSelectionHandler(new RowSelectionHandler() {
 
-			public void onRowSelection(RowSelectionEvent event) {
-				Iterator<Row> rowIndexIt = event.getSelectedRows().iterator();
-				while(rowIndexIt.hasNext()) {
-					RowType row = getRowValue(rowIndexIt.next().getRowIndex());
-					if (selectedRows.contains(row) == false) {
-						selectedRows.add(row);
-					}
-				}
-				
-				Iterator<Row> rowDeselectIndexIt = event.getDeselectedRows().iterator();
-				while(rowDeselectIndexIt.hasNext()) {
-					RowType row = getRowValue(rowDeselectIndexIt.next().getRowIndex());
-					selectedRows.remove(row);
-				}
-			}
-			
-		});
-	}
-	
-	/**
-	 * Get selected rows
-	 * 
-	 * @return rows
-	 */
-	public ArrayList<RowType> getSelectedRows() {
-		return selectedRows;
-	}
+            public void onRowSelection(RowSelectionEvent event) {
+                Iterator<Row> rowIndexIt = event.getSelectedRows().iterator();
+                while(rowIndexIt.hasNext()) {
+                    RowType row = getRowValue(rowIndexIt.next().getRowIndex());
+                    if (selectedRows.contains(row) == false) {
+                        selectedRows.add(row);
+                    }
+                }
+                
+                Iterator<Row> rowDeselectIndexIt = event.getDeselectedRows().iterator();
+                while(rowDeselectIndexIt.hasNext()) {
+                    RowType row = getRowValue(rowDeselectIndexIt.next().getRowIndex());
+                    selectedRows.remove(row);
+                }
+            }
+            
+        });
+    }
+    
+    /**
+     * Get selected rows
+     * 
+     * @return rows
+     */
+    public ArrayList<RowType> getSelectedRows() {
+        return selectedRows;
+    }
 
-	/**
-	 * Remove the given rows from the underlying dataTable 
-	 * 
-	 * @param rows
-	 */
-	@SuppressWarnings("unchecked")
-	public void removeRows(ArrayList<RowType> rows) {
-		ArrayList<Integer> rowsIndex = new ArrayList<Integer>();
-		for (int i = 0; i < rows.size(); i++) {
-			int rowIndex = getRowValues().indexOf(rows.get(i));
-			if (rowsIndex.contains(rowIndex) == false) {
-				rowsIndex.add(rowIndex);
-			}
-		}
-		// Check if we found any rows to remove
-		if (rowsIndex.isEmpty() == false) {
-			// remove the row value on deletion
-			for (int i = 0; i <rowsIndex.size();i++) {
-				int index = rowsIndex.get(i) -i;
-				selectedRows.remove(getRowValue(index));
-				getRowValues().remove(index);
+    /**
+     * Remove the given rows from the underlying dataTable 
+     * 
+     * @param rows
+     */
+    @SuppressWarnings("unchecked")
+    public void removeRows(ArrayList<RowType> rows) {
+        ArrayList<Integer> rowsIndex = new ArrayList<Integer>();
+        for (int i = 0; i < rows.size(); i++) {
+            int rowIndex = getRowValues().indexOf(rows.get(i));
+            if (rowsIndex.contains(rowIndex) == false) {
+                rowsIndex.add(rowIndex);
+            }
+        }
+        // Check if we found any rows to remove
+        if (rowsIndex.isEmpty() == false) {
+            // remove the row value on deletion
+            for (int i = 0; i <rowsIndex.size();i++) {
+                int index = rowsIndex.get(i) -i;
+                selectedRows.remove(getRowValue(index));
+                getRowValues().remove(index);
 
-				((MutableTableModel) getTableModel()).removeRow(index);
-			}
-			
-			// Check if we need to refetch rows
-			if (getTableModel().getRowCount() > (getPageCount() * getPageSize())) {
-				// request new rows to fill the table again
-				Request r = new Request(getAbsoluteLastRowIndex(),rowsIndex.size());
-				getTableModel().requestRows(r, new Callback<RowType>() {
+                ((MutableTableModel) getTableModel()).removeRow(index);
+            }
+            
+            // Check if we need to refetch rows
+            if (getTableModel().getRowCount() > (getPageCount() * getPageSize())) {
+                // request new rows to fill the table again
+                Request r = new Request(getAbsoluteLastRowIndex(),rowsIndex.size());
+                getTableModel().requestRows(r, new Callback<RowType>() {
 
-					public void onFailure(Throwable caught) {
-					// Nothing todo
-					}
+                    public void onFailure(Throwable caught) {
+                    // Nothing todo
+                    }
 
-					public void onRowsReady(Request request,
-							Response<RowType> response) {
-						// Add the new row values
-						Iterator<RowType> it = response.getRowValues();
-						while (it.hasNext()) {
-							getRowValues().add(it.next());
-						}
-						// copy the selected rows to reset it after reloading the data
-						Iterator<Integer> selected = new HashSet<Integer>(getDataTable().getSelectedRows()).iterator();
-					
-						// set the data
-						setData(getAbsoluteFirstRowIndex(), getRowValues().iterator());
-					
-						// select the rows again
-						while (selected.hasNext()) {
-							getDataTable().selectRow(selected.next(), false);
-						}
-					}
-				
-				});
-			} else {
-				// redraw the table to eliminate empty rows
-				redraw();
-			}
-		}
-	}
+                    public void onRowsReady(Request request,
+                            Response<RowType> response) {
+                        // Add the new row values
+                        Iterator<RowType> it = response.getRowValues();
+                        while (it.hasNext()) {
+                            getRowValues().add(it.next());
+                        }
+                        // copy the selected rows to reset it after reloading the data
+                        Iterator<Integer> selected = new HashSet<Integer>(getDataTable().getSelectedRows()).iterator();
+                    
+                        // set the data
+                        setData(getAbsoluteFirstRowIndex(), getRowValues().iterator());
+                    
+                        // select the rows again
+                        while (selected.hasNext()) {
+                            getDataTable().selectRow(selected.next(), false);
+                        }
+                    }
+                
+                });
+            } else {
+                // redraw the table to eliminate empty rows
+                redraw();
+            }
+        }
+    }
 }
