Skip to content

Commit 82d598f

Browse files
authored
Merge pull request ome#176 from chris-allan/session-bean-executor-priority
Session bean actions should happen at `SYSTEM` priority
2 parents d094154 + 6c1426b commit 82d598f

File tree

2 files changed

+10
-9
lines changed

2 files changed

+10
-9
lines changed

Diff for: src/main/java/ome/services/sessions/SessionBean.java

+8-7
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import ome.security.basic.LightAdminPrivileges;
3030
import ome.services.sessions.SessionManager.CreationRequest;
3131
import ome.services.util.Executor;
32+
import ome.services.util.Executor.Priority;
3233
import ome.system.Principal;
3334

3435
import org.slf4j.Logger;
@@ -94,7 +95,7 @@ public Session createUserSession(final long timeToLiveMs,
9495
cd.size() > 0 ? cd.getContext().get("omero.agent") : null;
9596
try {
9697
final Principal principal = principal(defaultGroup, user);
97-
Future<Session> future = ex.submit(new Callable<Session>(){
98+
Future<Session> future = ex.submit(Priority.SYSTEM, new Callable<Session>(){
9899
public Session call() throws Exception {
99100
final CreationRequest req = new CreationRequest();
100101
req.principal = principal;
@@ -153,7 +154,7 @@ public Session createSessionWithTimeouts(@NotNull final Principal principal,
153154
final String agent =
154155
cd.size() > 0 ? cd.getContext().get("omero.agent") : null;
155156
try {
156-
Future<Session> future = ex.submit(new Callable<Session>(){
157+
Future<Session> future = ex.submit(Priority.SYSTEM, new Callable<Session>(){
157158
public Session call() throws Exception {
158159
SessionManager.CreationRequest req = new SessionManager.CreationRequest();
159160
req.principal = principal;
@@ -213,7 +214,7 @@ public int getReferenceCount(@NotNull String sessionUuid) {
213214

214215
@RolesAllowed( { "user", "guest" })
215216
public Session updateSession(@NotNull final Session session) {
216-
Future<Session> future = ex.submit(new Callable<Session>(){
217+
Future<Session> future = ex.submit(Priority.SYSTEM, new Callable<Session>(){
217218
public Session call() throws Exception {
218219
return mgr.update(session);
219220
}});
@@ -222,7 +223,7 @@ public Session call() throws Exception {
222223

223224
@RolesAllowed( { "user", "guest" })
224225
public int closeSession(@NotNull final Session session) {
225-
Future<Integer> future = ex.submit(new Callable<Integer>(){
226+
Future<Integer> future = ex.submit(Priority.SYSTEM, new Callable<Integer>(){
226227
public Integer call() throws Exception {
227228
return mgr.close(session.getUuid());
228229
}});
@@ -232,7 +233,7 @@ public Integer call() throws Exception {
232233
@RolesAllowed("user")
233234
public java.util.List<Session> getMyOpenSessions() {
234235
final String uuid = currentContext().getCurrentSessionUuid();
235-
Future<List<Session>> future = ex.submit(new Callable<List<Session>>(){
236+
Future<List<Session>> future = ex.submit(Priority.SYSTEM, new Callable<List<Session>>(){
236237
public List<Session> call() throws Exception {
237238
return mgr.findSameUser(uuid);
238239
}});
@@ -242,7 +243,7 @@ public List<Session> call() throws Exception {
242243
@RolesAllowed("user")
243244
public java.util.List<Session> getMyOpenAgentSessions(final String agent) {
244245
final String uuid = currentContext().getCurrentSessionUuid();
245-
Future<List<Session>> future = ex.submit(new Callable<List<Session>>(){
246+
Future<List<Session>> future = ex.submit(Priority.SYSTEM, new Callable<List<Session>>(){
246247
public List<Session> call() throws Exception {
247248
return mgr.findSameUser(uuid, agent);
248249
}});
@@ -252,7 +253,7 @@ public List<Session> call() throws Exception {
252253
@RolesAllowed("user")
253254
public java.util.List<Session> getMyOpenClientSessions() {
254255
final String uuid = currentContext().getCurrentSessionUuid();
255-
Future<List<Session>> future = ex.submit(new Callable<List<Session>>(){
256+
Future<List<Session>> future = ex.submit(Priority.SYSTEM, new Callable<List<Session>>(){
256257
public List<Session> call() throws Exception {
257258
return mgr.findSameUser(uuid, "OMERO.insight",
258259
"OMERO.web", "OMERO.importer");

Diff for: src/test/java/ome/server/utests/sessions/SessionBeanUnitTest.java

+2-2
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ private void expectsExecutorSubmit() {
111111
exMock.expects(once()).method("submit").will(new Stub(){
112112

113113
public Object invoke(Invocation arg0) throws Throwable {
114-
Callable callable = (Callable) arg0.parameterValues.get(0);
114+
Callable callable = (Callable) arg0.parameterValues.get(1);
115115
final Object rv = callable.call();
116116
return new Future() {
117117

@@ -154,4 +154,4 @@ public StringBuffer describeTo(StringBuffer arg0) {
154154
return arg0;
155155
}});
156156
}
157-
}
157+
}

0 commit comments

Comments
 (0)