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 #9117 (closed)

Opened 12 years ago

Closed 12 years ago

Last modified 12 years ago

Bug: MIXED GROUP when changing groups

Reported by: sylittlewood Owned by: jamoore
Priority: critical Milestone: OMERO-4.4
Component: General Version: n.a.
Keywords: n.a. Cc: jamoore
Resources: n.a. Referenced By: n.a.
References: n.a. Remaining Time: n.a.
Sprint: 2012-06-19 (17)

Description

Attempting to run the unit tests Jean-Marie worked on for changing the group for a Dataset/Project? are showcasing an issue in the server.

The following branch has the failing test in /components/tools/OmeroJava/src

https://github.com/scottlittlewood/openmicroscopy/tree/permission-testing-1

Running the unit test results with the following command results in the stack trace results from the test failure

./build.py -f components/tools/OmeroJava/build.xml test -DTEST=integration/chgrp/MovingDatasetPermissionTests
junit.framework.AssertionFailedError: Found ERR when pass==true: ::omero::api::Save (failed) params={message=MIXED GROUP: ome.model.containers.ProjectDatasetLink:Id_2(group=ome.model.meta.ExperimenterGroup:Id_7) and ome.model.containers.Dataset:Id_2(group=ome.model.meta.ExperimenterGroup:Id_8) cannot be linked., obj=omero.model.ProjectDatasetLinkI@357506de, stacktrace=ome.conditions.GroupSecurityViolation: MIXED GROUP: ome.model.containers.ProjectDatasetLink:Id_2(group=ome.model.meta.ExperimenterGroup:Id_7) and ome.model.containers.Dataset:Id_2(group=ome.model.meta.ExperimenterGroup:Id_8) cannot be linked.
at ome.security.basic.OmeroInterceptor.throwIfGroupsDontMatch(OmeroInterceptor.java:1042)
at ome.security.basic.OmeroInterceptor.evaluateLinkages(OmeroInterceptor.java:419)
at ome.security.basic.OmeroInterceptor.onSave(OmeroInterceptor.java:154)
at org.hibernate.event.def.AbstractSaveEventListener.substituteValuesIfNecessary(AbstractSaveEventListener.java:414)
at org.hibernate.event.def.AbstractSaveEventListener.performSaveOrReplicate(AbstractSaveEventListener.java:293)
at org.hibernate.event.def.AbstractSaveEventListener.performSave(AbstractSaveEventListener.java:204)
at org.hibernate.event.def.AbstractSaveEventListener.saveWithGeneratedId(AbstractSaveEventListener.java:144)
at org.hibernate.event.def.DefaultMergeEventListener.saveTransientEntity(DefaultMergeEventListener.java:415)
at org.hibernate.event.def.DefaultMergeEventListener.mergeTransientEntity(DefaultMergeEventListener.java:341)
at org.hibernate.event.def.DefaultMergeEventListener.entityIsTransient(DefaultMergeEventListener.java:303)
at org.springframework.orm.hibernate3.support.IdTransferringMergeEventListener.entityIsTransient(IdTransferringMergeEventListener.java:59)
at ome.security.basic.MergeEventListener.entityIsTransient(MergeEventListener.java:161)
at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:258)
at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:94)
at org.hibernate.event.def.DefaultMergeEventListener.onMerge(DefaultMergeEventListener.java:84)
at ome.security.basic.MergeEventListener.onMerge(MergeEventListener.java:80)
at org.hibernate.impl.SessionImpl.fireMerge(SessionImpl.java:861)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:845)
at org.hibernate.impl.SessionImpl.merge(SessionImpl.java:849)
at ome.logic.UpdateImpl.internalMerge(UpdateImpl.java:273)
at ome.logic.UpdateImpl$2.run(UpdateImpl.java:121)
at ome.logic.UpdateImpl$2.run(UpdateImpl.java:118)
at ome.logic.UpdateImpl.doAction(UpdateImpl.java:311)
at ome.logic.UpdateImpl.doAction(UpdateImpl.java:302)
at ome.logic.UpdateImpl.saveAndReturnObject(UpdateImpl.java:118)
at ome.services.blitz.impl.commands.SaveI.step(SaveI.java:60)
at omero.cmd.basic.DoAllI$X.step(DoAllI.java:100)
at omero.cmd.basic.DoAllI.step(DoAllI.java:295)
at omero.cmd.HandleI.steps(HandleI.java:439)
at omero.cmd.HandleI.doRun(HandleI.java:414)
at omero.cmd.HandleI$1.doWork(HandleI.java:361)
at omero.cmd.HandleI$1.doWork(HandleI.java:357)
at sun.reflect.GeneratedMethodAccessor268.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.services.util.Executor$Impl$Interceptor.invoke(Executor.java:502)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at ome.security.basic.EventHandler.invoke(EventHandler.java:154)
at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
at org.springframework.orm.hibernate3.HibernateInterceptor.invoke(HibernateInterceptor.java:111)
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 $Proxy65.doWork(Unknown Source)
at ome.services.util.Executor$Impl.execute(Executor.java:406)
at omero.cmd.HandleI.run(HandleI.java:355)
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:441)
at ome.services.util.Executor$Impl$1.call(Executor.java:431)
at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:303)
at java.util.concurrent.FutureTask.run(FutureTask.java:138)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
at java.lang.Thread.run(Thread.java:680)
}
junit.framework.Assert.fail(Assert.java:47)
integration.AbstractServerTest.doChange(AbstractServerTest.java:1582)
integration.AbstractServerTest.doChange(AbstractServerTest.java:1532)
integration.chgrp.MovingDatasetPermissionTests.moveDataDatasetToProject(MovingDatasetPermissionTests.java:180)
integration.chgrp.MovingDatasetPermissionTests.testMoveDatasetToProjectRWRtoRWR(MovingDatasetPermissionTests.java:257)
sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
java.lang.reflect.Method.invoke(Method.java:597)
org.testng.internal.MethodInvocationHelper.invokeMethod(MethodInvocationHelper.java:74)
org.testng.internal.Invoker.invokeMethod(Invoker.java:673)
org.testng.internal.Invoker.invokeTestMethod(Invoker.java:846)
org.testng.internal.Invoker.invokeTestMethods(Invoker.java:1170)
org.testng.internal.TestMethodWorker.invokeTestMethods(TestMethodWorker.java:125)
org.testng.internal.TestMethodWorker.run(TestMethodWorker.java:109)
org.testng.TestRunner.runWorkers(TestRunner.java:1125)
org.testng.TestRunner.privateRun(TestRunner.java:749)
org.testng.TestRunner.run(TestRunner.java:600)
org.testng.SuiteRunner.runTest(SuiteRunner.java:317)
org.testng.SuiteRunner.runSequentially(SuiteRunner.java:312)
org.testng.SuiteRunner.privateRun(SuiteRunner.java:274)
org.testng.SuiteRunner.run(SuiteRunner.java:223)
org.testng.SuiteRunnerWorker.runSuite(SuiteRunnerWorker.java:52)
org.testng.SuiteRunnerWorker.run(SuiteRunnerWorker.java:86)
org.testng.TestNG.runSuitesSequentially(TestNG.java:1007)
org.testng.TestNG.runSuitesLocally(TestNG.java:932)
org.testng.TestNG.run(TestNG.java:868)
org.testng.TestNG.privateMain(TestNG.java:1150)
org.testng.TestNG.main(TestNG.java:1114)

Change History (4)

comment:1 Changed 12 years ago by sylittlewood

  • Priority changed from minor to critical

comment:2 Changed 12 years ago by jmoore

Elwood, I can't find this test anywhere. Can you give me a sha1?

comment:3 Changed 12 years ago by sylittlewood

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

comment:4 Changed 12 years ago by sylittlewood

All tests are passing now.

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

We're Hiring!