Repository: flink
Updated Branches:
  refs/heads/release-0.8 aca62100f -> 44b799d6e


[FLINK-1479] [runtime] Spawned threads in sorter get the same context class 
loader as the parent thread


Project: http://git-wip-us.apache.org/repos/asf/flink/repo
Commit: http://git-wip-us.apache.org/repos/asf/flink/commit/44b799d6
Tree: http://git-wip-us.apache.org/repos/asf/flink/tree/44b799d6
Diff: http://git-wip-us.apache.org/repos/asf/flink/diff/44b799d6

Branch: refs/heads/release-0.8
Commit: 44b799d6edc7eb006a3c669df5f63294e18f4268
Parents: aca6210
Author: Stephan Ewen <[email protected]>
Authored: Thu Feb 5 14:09:51 2015 +0100
Committer: Stephan Ewen <[email protected]>
Committed: Mon Feb 9 13:23:27 2015 +0100

----------------------------------------------------------------------
 .../runtime/operators/sort/UnilateralSortMerger.java  | 14 ++++++++++++++
 1 file changed, 14 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flink/blob/44b799d6/flink-runtime/src/main/java/org/apache/flink/runtime/operators/sort/UnilateralSortMerger.java
----------------------------------------------------------------------
diff --git 
a/flink-runtime/src/main/java/org/apache/flink/runtime/operators/sort/UnilateralSortMerger.java
 
b/flink-runtime/src/main/java/org/apache/flink/runtime/operators/sort/UnilateralSortMerger.java
index 459ef82..a24c702 100644
--- 
a/flink-runtime/src/main/java/org/apache/flink/runtime/operators/sort/UnilateralSortMerger.java
+++ 
b/flink-runtime/src/main/java/org/apache/flink/runtime/operators/sort/UnilateralSortMerger.java
@@ -401,6 +401,20 @@ public class UnilateralSortMerger<E> implements Sorter<E> {
                                memoryManager, ioManager, serializerFactory, 
comparator, this.sortReadMemory, this.writeMemory, 
                                maxNumFileHandles);
                
+               // propagate the context class loader to the spawned threads
+               ClassLoader contextLoader = 
Thread.currentThread().getContextClassLoader();
+               if (contextLoader != null) {
+                       if (this.readThread != null) {
+                               
this.readThread.setContextClassLoader(contextLoader);
+                       }
+                       if (this.sortThread != null) {
+                               
this.sortThread.setContextClassLoader(contextLoader);
+                       }
+                       if (this.spillThread != null) {
+                               
this.spillThread.setContextClassLoader(contextLoader);
+                       }
+               }
+               
                startThreads();
        }
        

Reply via email to