File tree Expand file tree Collapse file tree
mars/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs
neon/org.eclipse.core.jobs/src/org/eclipse/core/internal/jobs
oxygen/org.eclipse.core.jobs
src/org/eclipse/core/internal/jobs Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -288,9 +288,11 @@ else if (state != Job.NONE)
288288 } finally {
289289 if (interrupted )
290290 Thread .currentThread ().interrupt ();
291- //only update the lock state if we ended up using the thread job that was given to us
292- waitEnd (threadJob , threadJob == result , monitor );
293- if (threadJob == result ) {
291+ ISchedulingRule resultRule = result .getRule ();
292+ ISchedulingRule threadJobRule = threadJob .getRule ();
293+ boolean containsRule = resultRule != null && threadJobRule != null && resultRule .contains (threadJobRule );
294+ waitEnd (threadJob , containsRule , monitor );
295+ if (containsRule ) {
294296 if (waiting )
295297 manager .implicitJobs .removeWaiting (threadJob );
296298 }
Original file line number Diff line number Diff line change @@ -288,9 +288,11 @@ else if (state != Job.NONE)
288288 } finally {
289289 if (interrupted )
290290 Thread .currentThread ().interrupt ();
291- //only update the lock state if we ended up using the thread job that was given to us
292- waitEnd (threadJob , threadJob == result , monitor );
293- if (threadJob == result ) {
291+ ISchedulingRule resultRule = result .getRule ();
292+ ISchedulingRule threadJobRule = threadJob .getRule ();
293+ boolean containsRule = resultRule != null && threadJobRule != null && resultRule .contains (threadJobRule );
294+ waitEnd (threadJob , containsRule , monitor );
295+ if (containsRule ) {
294296 if (waiting )
295297 manager .implicitJobs .removeWaiting (threadJob );
296298 }
Original file line number Diff line number Diff line change @@ -2,7 +2,7 @@ Manifest-Version: 1.0
22Bundle-ManifestVersion : 2
33Bundle-Name : org.eclipse.core.jobs patched for bug 478634
44Bundle-SymbolicName : org.eclipse.core.jobs; singleton:=true
5- Bundle-Version : 3.9.1.qualifier
5+ Bundle-Version : 3.9.0.v20170322-0013
66Bundle-Vendor : %providerName
77Bundle-Localization : plugin
88Export-Package : org.eclipse.core.internal.jobs;x-internal:=true,
Load Diff This file was deleted.
Original file line number Diff line number Diff line change @@ -303,9 +303,11 @@ else if (state != Job.NONE)
303303 manager .getLockManager ().removeLockWaitThread (currentThread , threadJob .getRule ());
304304 }
305305 } finally {
306- //only update the lock state if we ended up using the thread job that was given to us
307- waitEnd (threadJob , threadJob == result , monitor );
308- if (threadJob == result ) {
306+ ISchedulingRule resultRule = result .getRule ();
307+ ISchedulingRule threadJobRule = threadJob .getRule ();
308+ boolean containsRule = resultRule != null && threadJobRule != null && resultRule .contains (threadJobRule );
309+ waitEnd (threadJob , containsRule , monitor );
310+ if (containsRule ) {
309311 if (waiting )
310312 manager .implicitJobs .removeWaiting (threadJob );
311313 }
You can’t perform that action at this time.
0 commit comments