Warning: Can't synchronize with repository "(default)" (/home/git/ome.git does not appear to be a Git repository.). Look in the Trac log for more information.
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 #11856 (closed)

Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

BUG: channel name truncation

Reported by: pwalczysko Owned by: jburel
Priority: major Milestone: 5.0.0
Component: Insight Version: 5.0.0-beta1
Keywords: n.a. Cc: ux@…,
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: n.a.
Sprint: n.a.

Description

Reported by Iain Porter, during 4.0 - 5.0 upgrade testing.
Ini Insight, when the channel name is chosen as "longs" (in his case, around 10 characters is a typical name).
When opened in full viewer, in the channel color tool boxes on the left of the image, the name is truncated both from the left and from the right, leaving only the middle visible (=the least important part). See screenshot.

Attachments (1)

Screen Shot 2013-12-17 at 15.24.24.png (6.5 KB) - added by pwalczysko 10 years ago.

Download all attachments as: .zip

Change History (7)

Changed 10 years ago by pwalczysko

comment:1 Changed 10 years ago by pwalczysko

Please note as well: when a madly long text (hundreds of characters) is pasted into the channel name, and then press Sava, exception is thrown.

java.lang.Exception: org.openmicroscopy.shoola.env.data.DSAccessException: Cannot access data. 
Cannot update the object.
	at org.openmicroscopy.shoola.env.data.OMEROGateway.handleException(OMEROGateway.java:852)
	at org.openmicroscopy.shoola.env.data.OMEROGateway.saveAndReturnObject(OMEROGateway.java:2737)
	at org.openmicroscopy.shoola.env.data.OmeroMetadataServiceImpl.saveChannelData(OmeroMetadataServiceImpl.java:2134)
	at org.openmicroscopy.shoola.env.data.views.calls.ChannelDataSaver$1.doCall(ChannelDataSaver.java:76)
	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: omero.ValidationException
    serverStackTrace = "ome.conditions.ValidationException: could not update: [ome.model.core.LogicalChannel#209]; SQL [update logicalchannel set contrastMethod=?, group_id=?, owner_id=?, update_id=?, detectorSettings=?, emissionWave=?, excitationWave=?, filterSet=?, fluor=?, illumination=?, lightPath=?, lightSourceSettings=?, "mode"=?, name=?, ndFilter=?, otf=?, photometricInterpretation=?, pinHoleSize=?, pockelCellSetting=?, samplesPerPixel=?, version=? where id=?]; nested exception is org.hibernate.exception.DataException: could not update: [ome.model.core.LogicalChannel#209]
                        	at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:642)
                        	at org.springframework.orm.hibernate3.HibernateAccessor.convertHibernateAccessException(HibernateAccessor.java:412)
                        	at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:117)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                        	at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:108)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                        	at ome.tools.hibernate.ProxyCleanupFilter$Interceptor.invoke(ProxyCleanupFilter.java:241)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                        	at ome.services.util.ServiceHandler.invoke(ServiceHandler.java:116)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                        	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
                        	at sun.proxy.$Proxy104.saveAndReturnArray(Unknown Source)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                        	at java.lang.reflect.Method.invoke(Method.java:601)
                        	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.security.basic.BasicSecurityWiring.invoke(BasicSecurityWiring.java:98)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                        	at ome.services.blitz.fire.AopContextInitializer.invoke(AopContextInitializer.java:43)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                        	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
                        	at sun.proxy.$Proxy104.saveAndReturnArray(Unknown Source)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                        	at java.lang.reflect.Method.invoke(Method.java:601)
                        	at ome.services.blitz.util.IceMethodInvoker.invoke(IceMethodInvoker.java:179)
                        	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:149)
                        	at ome.services.blitz.impl.UpdateI.saveAndReturnArray_async(UpdateI.java:58)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
                        	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
                        	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
                        	at java.lang.reflect.Method.invoke(Method.java:601)
                        	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:78)
                        	at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
                        	at org.springframework.aop.framework.JdkDynamicAopProxy.invoke(JdkDynamicAopProxy.java:202)
                        	at sun.proxy.$Proxy105.saveAndReturnArray_async(Unknown Source)
                        	at omero.api._IUpdateTie.saveAndReturnArray_async(_IUpdateTie.java:87)
                        	at omero.api._IUpdateDisp.___saveAndReturnArray(_IUpdateDisp.java:241)
                        	at omero.api._IUpdateDisp.__dispatch(_IUpdateDisp.java:369)
                        	at IceInternal.Incoming.invoke(Incoming.java:159)
                        	at Ice.ConnectionI.invokeAll(ConnectionI.java:2357)
                        	at Ice.ConnectionI.dispatch(ConnectionI.java:1208)
                        	at Ice.ConnectionI.message(ConnectionI.java:1163)
                        	at IceInternal.ThreadPool.run(ThreadPool.java:302)
                        	at IceInternal.ThreadPool.access$300(ThreadPool.java:12)
                        	at IceInternal.ThreadPool$EventHandlerThread.run(ThreadPool.java:643)
                        	at java.lang.Thread.run(Thread.java:722)
                        "
    serverExceptionClass = "ome.conditions.ValidationException"
    message = "could not update: [ome.model.core.LogicalChannel#209]; SQL [update logicalchannel set contrastMethod=?, group_id=?, owner_id=?, update_id=?, detectorSettings=?, emissionWave=?, excitationWave=?, filterSet=?, fluor=?, illumination=?, lightPath=?, lightSourceSettings=?, "mode"=?, name=?, ndFilter=?, otf=?, photometricInterpretation=?, pinHoleSize=?, pockelCellSetting=?, samplesPerPixel=?, version=? where id=?]; nested exception is org.hibernate.exception.DataException: could not update: [ome.model.core.LogicalChannel#209]"
	at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
	at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
	at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
	at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
	at java.lang.Class.newInstance0(Class.java:357)
	at java.lang.Class.newInstance(Class.java:310)
	at IceInternal.BasicStream$DynamicUserExceptionFactory.createAndThrow(BasicStream.java:2243)
	at IceInternal.BasicStream.throwException(BasicStream.java:1632)
	at IceInternal.Outgoing.throwUserException(Outgoing.java:442)
	at omero.api._IUpdateDelM.saveAndReturnArray(_IUpdateDelM.java:139)
	at omero.api.IUpdatePrxHelper.saveAndReturnArray(IUpdatePrxHelper.java:186)
	at omero.api.IUpdatePrxHelper.saveAndReturnArray(IUpdatePrxHelper.java:158)
	at org.openmicroscopy.shoola.env.data.OMEROGateway.saveAndReturnObject(OMEROGateway.java:2735)
	... 9 more

	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.showErrorDialog(UserNotifierImpl.java:191)
	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:291)
	at org.openmicroscopy.shoola.env.ui.UserNotifierImpl.notifyError(UserNotifierImpl.java:259)
	at org.openmicroscopy.shoola.agents.metadata.EditorLoader.handleException(EditorLoader.java:159)
	at org.openmicroscopy.shoola.env.data.events.DSCallAdapter.eventFired(DSCallAdapter.java:84)
	at org.openmicroscopy.shoola.env.data.views.BatchCallMonitor$1.run(BatchCallMonitor.java:124)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:209)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:715)
	at java.awt.EventQueue.access$400(EventQueue.java:82)
	at java.awt.EventQueue$2.run(EventQueue.java:676)
	at java.awt.EventQueue$2.run(EventQueue.java:674)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:86)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:685)
	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 10 years ago by jburel

Petr: any specific image I should look at. Since I have updated the name of some channels and only have the first part truncated i.e. "... end"

comment:3 Changed 10 years ago by jburel

  • Status changed from new to accepted

comment:4 Changed 10 years ago by pwalczysko

Sorry, I think this is slightly under-described here. I should have written that the workflow should be:

  • open an RGB image in Full Viewer
  • open the "Display Rendering Controls" (opens the right-hand pane in the Full Viewer)
  • still in the Full Viewer, go to the right-hand pane you just opened, General Tab
  • find the channel names, edit one and put in for example "very long name centre very long name"
  • press "Save"
  • the name "very long name centre very long name" will appear immediately in the channel name in the colour channel icon (box) to the left of the image (see screenshot attached previously)
  • it will be distorted as described (= you will see just the part "…centre…" in the box
  • close the full viewer and reopen
  • open the rendering right-hand pane again
  • this time, the names are truncated from the start, you can see just the end of the name (like you suggest)

I think that the main problem is that we did not really test changing the name from the Full Viewer, we always did it from the Data Manager.
There is some update/refresh problem in the main viewer (the things get refreshed immediately in the Data Manager though).

I do not think that this is dependent on an image or image type, but to go for sure, you can
have a look at /home/hudson/for_import_to_howe/archived-imoprt-case/user-4/read-only-1/no_projects/archivedv/CFPNEAT01_R3D.dv.log

user-4

Group: read-only-1

Dataset: archivedv

server: omero4-demo….

client used: latest successful build from Jenkins on Develop

comment:5 Changed 10 years ago by jburel

  • Resolution set to fixed
  • Status changed from accepted to closed

comment:6 Changed 10 years ago by jburel

web ticket created for long channel's name see #11893

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.65662 sec.)

We're Hiring!