import gr.ebs.gss.server.domain.User;
import gr.ebs.gss.server.domain.dto.FileHeaderDTO;
import gr.ebs.gss.server.domain.dto.FolderDTO;
+import gr.ebs.gss.server.ejb.TransactionHelper;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
+import java.util.concurrent.Callable;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
put("content", f.getMimeType()).
put("path", f.getFolder().getPath()).
put("creationDate", f.getAuditInfo().getCreationDate().getTime()).
+ put("modificationDate", f.getAuditInfo().getModificationDate().getTime()).
put("uri", getApiRoot() + f.getURI());
JSONObject p = new JSONObject();
p.put("uri", getApiRoot() + f.getFolder().getURI()).
}
try {
User user = getUser(req);
- User owner = getOwner(req);
+ final User owner = getOwner(req);
if (!owner.equals(user))
throw new InsufficientPermissionsException("User " + user.getUsername()
+ " does not have permission to empty the trash can owned by "
+ owner.getUsername());
if (logger.isDebugEnabled())
logger.debug("Emptying trash for user " + owner.getUsername());
- getService().emptyTrash(owner.getId());
+ new TransactionHelper<Void>().tryExecute(new Callable<Void>() {
+ @Override
+ public Void call() throws Exception {
+ getService().emptyTrash(owner.getId());
+ return null;
+ }
+ });
resp.setStatus(HttpServletResponse.SC_NO_CONTENT);
} catch (RpcException e) {
logger.error("", e);
resp.sendError(HttpServletResponse.SC_NOT_FOUND, e.getMessage());
} catch (InsufficientPermissionsException e) {
resp.sendError(HttpServletResponse.SC_METHOD_NOT_ALLOWED, e.getMessage());
+ } catch (Exception e) {
+ logger.error("", e);
+ resp.sendError(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
}
}