diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/ConstantsWorkspaceUploader.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/ConstantsWorkspaceUploader.java index 2c950df..1ccb1ff 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/ConstantsWorkspaceUploader.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/ConstantsWorkspaceUploader.java @@ -43,5 +43,14 @@ public class ConstantsWorkspaceUploader { public static final String FOLDER_PARENT_ID = "FOLDER_PARENT_ID"; public static final String ITEM_NAME = "ITEM_NAME"; + /** + * Log. + * + * @param txt the txt + */ + public static native void jslog(String txt) /*-{ + console.log(txt) + }-*/; + } diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/WorkspaceUploaderListenerController.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/WorkspaceUploaderListenerController.java index 9b602c1..e7cf9bc 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/WorkspaceUploaderListenerController.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/WorkspaceUploaderListenerController.java @@ -12,7 +12,6 @@ import org.gcube.portlets.widgets.workspaceuploader.client.events.NotifyUploadEv import com.google.gwt.core.shared.GWT; import com.google.gwt.event.shared.HandlerManager; -import com.google.gwt.user.client.Timer; /** @@ -52,17 +51,7 @@ public class WorkspaceUploaderListenerController { case UPLOAD_COMPLETED: GWT.log("NotifyUploadEvent Completed"); - - Timer timer = new Timer() { - - @Override - public void run() { - - notifyUploadCompleted(notifyUploadEvent.getParentId(), notifyUploadEvent.getItemId()); - } - }; - //THIS IS A DELAY TO WAIT REPOSITORY SYNCHRONIZATION - timer.schedule(2000); + notifyUploadCompleted(notifyUploadEvent.getParentId(), notifyUploadEvent.getItemId()); break; case ABORTED: GWT.log("NotifyUploadEvent Aborted"); diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/TimerUpload.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/TimerUpload.java index ba09f74..a5aef67 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/TimerUpload.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/client/uploader/TimerUpload.java @@ -3,6 +3,7 @@ */ package org.gcube.portlets.widgets.workspaceuploader.client.uploader; +import org.gcube.portlets.widgets.workspaceuploader.client.ConstantsWorkspaceUploader; import org.gcube.portlets.widgets.workspaceuploader.client.WorkspaceUploaderServiceAsync; import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem; import org.gcube.portlets.widgets.workspaceuploader.shared.WorkspaceUploaderItem.UPLOAD_STATUS; @@ -46,7 +47,7 @@ public class TimerUpload extends Timer{ WorkspaceUploaderServiceAsync.Util.getInstance().getUploadStatus(workspaceUploader.getClientUploadKey(), new AsyncCallback() { @Override - public void onSuccess(WorkspaceUploaderItem result) { + public void onSuccess(final WorkspaceUploaderItem result) { try{ synchronized(this){ // Timer tmn = queue.get(workspaceUploader.getClientUploadKey()); @@ -60,10 +61,21 @@ public class TimerUpload extends Timer{ // queue.remove(workspaceUploader.getClientUploadKey()); // monitor.deleteUploaderByClientKey(workspaceUploader.getClientUploadKey()); - if(!result.getIsOverwrite()) - monitor.notifyUploadCompleted(result.getFile().getParentId(), result.getFile().getItemId()); - else - monitor.notifyOverwriteCompleted(result.getFile().getParentId(), result.getFile().getItemId()); + ConstantsWorkspaceUploader.jslog("Upload Completed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName()); + + Timer timer = new Timer() { + + @Override + public void run() { + ConstantsWorkspaceUploader.jslog("Upload Completed "+result.getFile().getItemId() +" name: "+result.getFile().getFileName()); + if(!result.getIsOverwrite()) + monitor.notifyUploadCompleted(result.getFile().getParentId(), result.getFile().getItemId()); + else + monitor.notifyOverwriteCompleted(result.getFile().getParentId(), result.getFile().getItemId()); + } + }; + //THIS IS A DELAY TO WAIT REPOSITORY SYNCHRONIZATION + timer.schedule(1000); cancel(); monitor.goNextUploaderAfterKey(workspaceUploader.getClientUploadKey()); diff --git a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java index d34c39b..2b81c87 100644 --- a/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java +++ b/src/main/java/org/gcube/portlets/widgets/workspaceuploader/server/WorkspaceUploadServletStream.java @@ -523,20 +523,23 @@ public class WorkspaceUploadServletStream extends HttpServlet implements Servlet inputStream.addListener(uploadProgressListener); workspaceUploader.setUploadProgress(uploadProgressListener.getUploadProgress()); + + //USING isOverwrite to check if the file already exists + try { + isOverwrite = storageHubWrapper.getWorkspace().exists(itemName, destinationFolder.getId()); + workspaceUploader.setIsOverwrite(isOverwrite); + logger.info("The file: "+itemName+ " exists in the folder? "+isOverwrite); + saveWorkspaceUploaderInSession(workspaceUploader, request.getSession()); + }catch (ItemNotFoundException | WrongItemTypeException e) { + logger.warn("Error on checking if the file: "+itemName+" exists in the folder id: "+ destinationFolder.getId()); + } + saveWorkspaceUploaderInSession(workspaceUploader, request.getSession()); String contentType = null; //It's set into HL if(uploadType.compareTo(FILE)==0) {//IS FILE UPLOAD - try { - //USING isOverwrite to check if the file already exists - isOverwrite = storageHubWrapper.getWorkspace().exists(itemName, destinationFolder.getId()); - } - catch (ItemNotFoundException | WrongItemTypeException e) { - //silent - } - workspaceUploader = WorkspaceUploaderMng.uploadFile(storageHubWrapper, user, scopeGroupId, request, workspaceUploader, request.getSession(), itemName, inputStream, destinationFolder, contentType, isOverwrite, size); if(workspaceUploader==null)