Task #9645 (closed)
Bug: better handling of deleted attachment files
| Reported by: | jamoore | Owned by: | wmoore |
|---|---|---|---|
| Priority: | critical | Milestone: | OMERO-4.4.7 |
| Component: | General | Version: | n.a. |
| Keywords: | n.a. | Cc: | jburel, sylittlewood, wmoore |
| Resources: | n.a. | Referenced By: | n.a. |
| References: | n.a. | Remaining Time: | 0.0d |
| Sprint: | 2012-11-20 (2) |
Description
- Attach png in insight to an image
- Delete png in web
- Try to open png in insight
- Error message dialog pops up with a "Failure"
- Clicking on "Failure" would submit a message (unnecessary)
See error below.
Change History (7)
comment:1 Changed 7 years ago by jmoore
comment:2 Changed 7 years ago by jburel
- Owner set to jburel
- Remaining Time set to 0.6
- Sprint set to 2012-11-20 (2)
- Status changed from new to accepted
comment:3 Changed 7 years ago by jburel
- Owner changed from jburel to wmoore
Done in insight see https://github.com/openmicroscopy/openmicroscopy/pull/440
Passing ticket to Will
comment:4 Changed 7 years ago by wmoore
- Remaining Time changed from 0.6 to 0
- Resolution set to wontfix
- Status changed from accepted to closed
Hmmm - it seems to me that the existing behaviour in web is about as good as I can make it.
If the download doesn't work (404 for the annotation) then you get a page that says "Annotation not found".
The only caveat is that you've then got to use the "Back" button on the browser and you lose your context. But, to improve this (always open the download in a new tab or popup) means that you have WORSE behaviour in all the cases where the file annotation Does exist.
comment:5 Changed 7 years ago by Will Moore <will@…>
(In [adf9c168f32e79a29f00a4138580f642292c38c7/ome.git] on branch develop) Removing unused 'action' from download_annotation() See #9645
Conflicts:
components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/annotations/fileann.html
Conflicts:
components/tools/OmeroWeb/omeroweb/webclient/templates/webclient/annotations/fileann.html
comment:6 Changed 7 years ago by jburel <j.burel@…>
(In [743dd2b94e5f07f8278b8af64f324ed287432e57/ome.git] on branch develop) Check if the file still exists before downloading (see #9645)
Conflicts:
components/insight/SRC/org/openmicroscopy/shoola/env/data/OMEROGateway.java
comment:7 Changed 7 years ago by Josh Moore <josh@…>
(In [2bb051dbb398c6cd6980fd766f23bedea071ce27/ome.git] on branch develop) Merge pull request #624 from jburel/delete_handling_develop
Check if the file still exists before downloading (see #9645)
java.lang.Exception: org.openmicroscopy.shoola.env.data.DSAccessException: Cannot access data. Cannot set the file's id. at org.openmicroscopy.shoola.env.data.OMEROGateway.handleException(OMEROGateway.java:860) at org.openmicroscopy.shoola.env.data.OMEROGateway.downloadFile(OMEROGateway.java:3949) at org.openmicroscopy.shoola.env.data.OmeroMetadataServiceImpl.downloadFile(OmeroMetadataServiceImpl.java:1264) at org.openmicroscopy.shoola.env.data.views.calls.FilesLoader$1.doCall(FilesLoader.java:98) at org.openmicroscopy.shoola.env.data.views.BatchCall.doStep(BatchCall.java:144) at org.openmicroscopy.shoola.util.concur.tasks.CompositeTask.doStep(CompositeTask.java:226) at org.openmicroscopy.shoola.env.data.views.CompositeBatchCall.doStep(CompositeBatchCall.java:126) at org.openmicroscopy.shoola.util.concur.tasks.ExecCommand.exec(ExecCommand.java:165) at org.openmicroscopy.shoola.util.concur.tasks.ExecCommand.run(ExecCommand.java:276) at org.openmicroscopy.shoola.util.concur.tasks.AsyncProcessor$Runner.run(AsyncProcessor.java:91) at java.lang.Thread.run(Thread.java:680) Caused by: Ice.UnknownException unknown = "org.springframework.dao.EmptyResultDataAccessException: Incorrect result size: expected 1, actual 0 at org.springframework.dao.support.DataAccessUtils.requiredSingleResult(DataAccessUtils.java:71) at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:729) at org.springframework.jdbc.core.JdbcTemplate.queryForObject(JdbcTemplate.java:744) at org.springframework.jdbc.core.simple.SimpleJdbcTemplate.queryForObject(SimpleJdbcTemplate.java:143) at ome.util.SqlAction$Impl.fileRepo(SqlAction.java:478) at sun.reflect.GeneratedMethodAccessor1625.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at ome.util.SqlAction$LoggingSqlAction.invoke(SqlAction.java:73) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy0.fileRepo(Unknown Source) at ome.services.blitz.impl.RawFileStoreI$1.doWork(RawFileStoreI.java:134) at sun.reflect.GeneratedMethodAccessor293.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy53.doWork(Unknown Source) at ome.services.util.Executor$Impl.executeSql(Executor.java:489) at ome.services.blitz.impl.RawFileStoreI.__redirect(RawFileStoreI.java:129) at ome.services.blitz.impl.RawFileStoreI.setFileId_async(RawFileStoreI.java:88) at sun.reflect.GeneratedMethodAccessor1624.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25) at java.lang.reflect.Method.invoke(Method.java:597) at org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection(AopUtils.java:307) at org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint(ReflectiveMethodInvocation.java:183) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150) at omero.cmd.CallContext.invoke(CallContext.java:59) at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172) at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202) at $Proxy102.setFileId_async(Unknown Source) at omero.api._RawFileStoreTie.setFileId_async(_RawFileStoreTie.java:85) at omero.api._RawFileStoreDisp.___setFileId(_RawFileStoreDisp.java:162) at omero.api._RawFileStoreDisp.__dispatch(_RawFileStoreDisp.java:367) at IceInternal.Incoming.invoke(Incoming.java:159) at Ice.ConnectionI.invokeAll(ConnectionI.java:2037) at Ice.ConnectionI.message(ConnectionI.java:972) at IceInternal.ThreadPool.run(ThreadPool.java:577) at IceInternal.ThreadPool.access$100(ThreadPool.java:12) at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:971) " at IceInternal.Outgoing.invoke(Outgoing.java:147) at omero.api._RawFileStoreDelM.setFileId(_RawFileStoreDelM.java:176) at omero.api.RawFileStorePrxHelper.setFileId(RawFileStorePrxHelper.java:252) at omero.api.RawFileStorePrxHelper.setFileId(RawFileStorePrxHelper.java:224) at org.openmicroscopy.shoola.env.data.OMEROGateway.downloadFile(OMEROGateway.java:3946) ... 9 more at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.showErrorDialog(UserNotifierImpl.java:189) at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:287) at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:257) at org.openmicroscopy.shoola.env.ui.ActivityComponent.showException(ActivityComponent.java:417) at org.openmicroscopy.shoola.env.ui.ActivityComponent.actionPerformed(ActivityComponent.java:931) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2028) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2351) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242) at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272) at java.awt.Component.processMouseEvent(Component.java:6375) at javax.swing.JComponent.processMouseEvent(JComponent.java:3267) at java.awt.Component.processEvent(Component.java:6140) at java.awt.Container.processEvent(Container.java:2083) at java.awt.Component.dispatchEventImpl(Component.java:4737) at java.awt.Container.dispatchEventImpl(Container.java:2141) at java.awt.Component.dispatchEvent(Component.java:4565) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4619) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4280) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4210) at java.awt.Container.dispatchEventImpl(Container.java:2127) at java.awt.Window.dispatchEventImpl(Window.java:2482) at java.awt.Component.dispatchEvent(Component.java:4565) at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:684) at java.awt.EventQueue.access$000(EventQueue.java:85) at java.awt.EventQueue$1.run(EventQueue.java:643) at java.awt.EventQueue$1.run(EventQueue.java:641) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98) at java.awt.EventQueue$2.run(EventQueue.java:657) at java.awt.EventQueue$2.run(EventQueue.java:655) at java.security.AccessController.doPrivileged(Native Method) at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87) at java.awt.EventQueue.dispatchEvent(EventQueue.java:654) at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:296) at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:211) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:201) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:196) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:188) at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)