Task #8908 (closed)
Opened 7 years ago
Closed 7 years ago
Bug: Class Cast Exception (DetailsI to ObjectI)
| Reported by: | jburel | Owned by: | jamoore |
|---|---|---|---|
| Priority: | critical | Milestone: | OMERO-4.4 |
| Component: | Services | Version: | n.a. |
| Keywords: | n.a. | Cc: | cblackburn, sylittlewood |
| Resources: | n.a. | Referenced By: | n.a. |
| References: | n.a. | Remaining Time: | n.a. |
| Sprint: | 2012-06-05 (16) |
Description
The following java test testResetDefaultInSetForScreen in integration/RenderingSettingsServiceTest leads to the following exception.
testResetDefaultInSetForScreen on instance null(integration.RenderingSettingsServiceTest) 0.911s omero.InternalException
serverStackTrace = "java.lang.ClassCastException: ome.model.internal.Details$1 cannot be cast to ome.model.IObject
at omero.util.IceMapper.reverse(IceMapper.java:949)
at omero.model.ImageI.fillDetails(ImageI.java:222)
at omero.model.ImageI.fillObject(ImageI.java:1213)
at omero.util.IceMapper.reverse(IceMapper.java:953)
at omero.model.WellSampleI.fillImage(WellSampleI.java:188)
at omero.model.WellSampleI.fillObject(WellSampleI.java:548)
at omero.util.IceMapper.reverse(IceMapper.java:953)
at omero.util.IceMapper.reverse(IceMapper.java:798)
at omero.util.IceMapper.reverse(IceMapper.java:862)
at omero.model.WellI.fillWellSamples(WellI.java:392)
at omero.model.WellI.fillObject(WellI.java:710)
at omero.util.IceMapper.reverse(IceMapper.java:953)
at omero.util.IceMapper.reverse(IceMapper.java:798)
at omero.util.IceMapper.reverse(IceMapper.java:862)
at omero.model.PlateI.fillWells(PlateI.java:676)
at omero.model.PlateI.fillObject(PlateI.java:1112)
at omero.util.IceMapper.reverse(IceMapper.java:953)
at omero.model.ScreenPlateLinkI.fillChild(ScreenPlateLinkI.java:177)
at omero.model.ScreenPlateLinkI.fillObject(ScreenPlateLinkI.java:229)
at omero.util.IceMapper.reverse(IceMapper.java:953)
at omero.util.IceMapper.handleInput(IceMapper.java:1055)
at ome.services.blitz.util.IceMethodInvoker.arguments(IceMethodInvoker.java:229)
at ome.services.blitz.util.IceMethodInvoker.invoke(IceMethodInvoker.java:175)
at ome.services.throttling.Callback.run(Callback.java:56)
at ome.services.throttling.InThreadThrottlingStrategy.callInvokerOnRawArgs(InThreadThrottlingStrategy.java:56)
at ome.services.blitz.impl.AbstractAmdServant.callInvokerOnRawArgs(AbstractAmdServant.java:137)
at ome.services.blitz.impl.UpdateI.saveAndReturnObject_async(UpdateI.java:64)
at sun.reflect.GeneratedMethodAccessor772.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 $Proxy88.saveAndReturnObject_async(Unknown Source)
at omero.api._IUpdateTie.saveAndReturnObject_async(_IUpdateTie.java:92)
at omero.api._IUpdateDisp.___saveAndReturnObject(_IUpdateDisp.java:185)
at omero.api._IUpdateDisp.__dispatch(_IUpdateDisp.java:365)
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)
"
serverExceptionClass = "java.lang.ClassCastException"
message = "ome.model.internal.Details$1 cannot be cast to ome.model.IObject"
Change History (3)
comment:1 Changed 7 years ago by cblackburn
comment:2 Changed 7 years ago by cblackburn
- Summary changed from Bug: Class Cast Exception to Bug: Class Cast Exception (DetailsI to ObjectI)
comment:3 Changed 7 years ago by jmoore
- Resolution set to fixed
- Sprint set to 2012-06-05 (16)
- Status changed from new to closed
Fixed and pushing to schema branch:
commit 2fff5b683cf1169e23ec7a18e1b3dc1c25399ee6
Author: jmoore <josh@glencoesoftware.com>
Date: Tue May 29 08:46:02 2012 +0200
Fix ClassCastException of Details (Fix #8908)
I'm not sure what changed to make this now throw,
but the return type of the failing method is
Filterable rather than IObject so there's no need
to be so strict.
diff --git a/components/blitz/src/omero/util/IceMapper.java b/components/blitz/src/omero/util/IceMapper.java
index 586500c..c2f5638 100644
--- a/components/blitz/src/omero/util/IceMapper.java
+++ b/components/blitz/src/omero/util/IceMapper.java
@@ -946,7 +946,7 @@ public class IceMapper extends ome.util.ModelMapper implements
} else if (target2model.containsKey(source)) {
- return (ome.model.IObject) target2model.get(source);
+ return (Filterable) target2model.get(source);^M
Note: See
TracTickets for help on using
tickets.
You may also have a look at Agilo extensions to the ticket.
I'm seeing the same exception in a couple of tests in integration/ishare.py.