Notice: In order to edit this ticket you need to be either: a Product Owner, The owner or the reporter of the ticket, or, in case of a Task not yet assigned, a team_member"

Task #9645 (closed)

Opened 7 years ago

Closed 7 years ago

Last modified 7 years ago

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

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)

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)

Note: See TracTickets for help on using tickets. You may also have a look at Agilo extensions to the ticket.

1.3.13-PRO © 2008-2011 Agilo Software all rights reserved (this page was served in: 0.75395 sec.)

We're Hiring!