Task #5539 (closed)
Opened 13 years ago
Closed 13 years ago
Bug: Improve Pyramid exception support in web
Reported by: | jamoore | Owned by: | wmoore |
---|---|---|---|
Priority: | critical | Milestone: | OMERO-Beta4.3 |
Component: | Web | Version: | n.a. |
Keywords: | n.a. | Cc: | cxallan, atarkowska |
Resources: | n.a. | Referenced By: | n.a. |
References: | n.a. | Remaining Time: | 0.0d |
Sprint: | 2011-06-02 (13) |
Description (last modified by wmoore)
After import
- Improve message
- Display default thumbnail
When opening viewer, display message indicating the time remaining before the image can be viewed:
try: rawPixelsStore.setPixelId(id) # Or anywhere that MissingPyramidException is handld except omero.MissingPyramidException, mpe: # Or any omero.ConcurrencyException backOffInMillis = mpe.backOff backOffInSecs = backOffInMillis / 1000 self.handleSuggestedBackOff(backOffInSecs)
Need to handle renderingEngine.load() which is called in _prepareRE which is called by _prepareRenderingEngineused in the decorator
@assert_re
which is used by the following methods
- saveDefaults ()
- getDefaultT() & getDefaultZ()
- getT() & getZ() Not sure why re is needed here?
- renderColLinePlotGif() & renderRowLinePlotGif() Not sure why re is needed here?
- createMovie()
- renderJpeg()
- renderJpegRegion()
- getRenderingModel()
- getRenderingModels()
- getChannels()
- _getProjectedThumbnail ()
Currently, if re.load() throws a MissingPyramidException?, it is thrown by _prepareRE but eaten by _prepareRenderingEngine() and image._re is simply None. E.g leading to errors like:
("error in call","Traceback (most recent call last): File "/Users/will/Desktop/OMERO/components/tools/OmeroWeb/omeroweb/../omeroweb/webgateway/views.py", line 917, in wrap rv = f(request, *args, **kwargs) File "/Users/will/Desktop/OMERO/components/tools/OmeroWeb/omeroweb/../omeroweb/webgateway/views.py", line 1119, in imageData_json rv = imageMarshal(image, key) File "/Users/will/Desktop/OMERO/components/tools/OmeroWeb/omeroweb/../omeroweb/webgateway/views.py", line 1043, in imageMarshal tiles = image._re.requiresPixelsPyramid() AttributeError: 'NoneType' object has no attribute 'requiresPixelsPyramid' ")
See #5534 for Insight ticket
Change History (12)
comment:1 Changed 13 years ago by atarkowska
- Sprint set to 2011-06-02 (13)
comment:2 Changed 13 years ago by atarkowska
- Priority changed from minor to critical
comment:3 Changed 13 years ago by wmoore
- Description modified (diff)
comment:4 Changed 13 years ago by wmoore
- Owner changed from atarkowska to wmoore
comment:5 Changed 13 years ago by Will Moore <will@…>
(In [b40686bfe685ff0930a3a5ebd5a825ee4f4b95c7/ome.git] on branch develop) missing_pyramid.py gateway test for MPException handling. See #5539
comment:6 Changed 13 years ago by wmoore
- Cc cxallan atarkowska added
comment:7 Changed 13 years ago by wmoore
- Status changed from new to accepted
comment:8 Changed 13 years ago by Will Moore <will@…>
(In [6efc0cd9ed00317e7ae5438a7115463462390077/ome.git] on branch develop) Blitz _prepareRenderingEngine() throws MissingPyramidException?. See #5539
comment:9 Changed 13 years ago by Will Moore <will@…>
(In [ac75961a8a03e1d69aca59c52f932cbabfc2394b/ome.git] on branch develop) Web Image-viewer displays 'MissingPyramidException?' message on re.load(). See #5539
comment:10 Changed 13 years ago by Will Moore <will@…>
(In [a420ba5e3e9a5d388263a7779fbb810cc9235afe/ome.git] on branch develop) Webgateway imageMarshal handles _prepareRenderingEngine() failure. See #5539
comment:11 Changed 13 years ago by Will Moore <will@…>
(In [2ae90132cfe9c71b0ba9afa8960d8af97e3a0347/ome.git] on branch develop) Blitz gateway handles ConcurrencyException? for missing Pyramid. See #5539
comment:12 Changed 13 years ago by Will Moore <will@…>
- Remaining Time set to 0
- Resolution set to fixed
- Status changed from accepted to closed
(In [303c8014852e7302bb1a5559aaa766494e541eda/ome.git] on branch develop) Update webgateway to use ConcurrencyException? for missing pyramid. Closes #5539
First step is to define here, and in gatewaytests, the behavior we want from the various methods listed above.