Repository: incubator-ignite
Updated Branches:
  refs/heads/ignite-639 fdf56a5db -> 43fa7148b


# ignite-675


Project: http://git-wip-us.apache.org/repos/asf/incubator-ignite/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-ignite/commit/c88e8a77
Tree: http://git-wip-us.apache.org/repos/asf/incubator-ignite/tree/c88e8a77
Diff: http://git-wip-us.apache.org/repos/asf/incubator-ignite/diff/c88e8a77

Branch: refs/heads/ignite-639
Commit: c88e8a771905f49764ec7ccbe4c9be7f9b00b33a
Parents: 09a3a82
Author: sboikov <sboi...@gridgain.com>
Authored: Fri Apr 3 13:39:13 2015 +0300
Committer: sboikov <sboi...@gridgain.com>
Committed: Fri Apr 3 13:42:06 2015 +0300

----------------------------------------------------------------------
 .../apache/ignite/internal/IgniteKernal.java    |  2 +-
 .../processors/task/GridTaskProcessor.java      | 24 ++++++++++++++++++--
 2 files changed, 23 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c88e8a77/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java 
b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
index 2789a0c..a623cb9 100644
--- a/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
+++ b/modules/core/src/main/java/org/apache/ignite/internal/IgniteKernal.java
@@ -760,7 +760,7 @@ public class IgniteKernal implements IgniteEx, 
IgniteMXBean, Externalizable {
             startProcessor((GridProcessor)SCHEDULE.createOptional(ctx));
             startProcessor(new GridRestProcessor(ctx));
             startProcessor(new DataStreamProcessor(ctx));
-            startProcessor((GridProcessor) IGFS.create(ctx, 
F.isEmpty(cfg.getFileSystemConfiguration())));
+            startProcessor((GridProcessor)IGFS.create(ctx, 
F.isEmpty(cfg.getFileSystemConfiguration())));
             startProcessor(new GridContinuousProcessor(ctx));
             startProcessor((GridProcessor)(cfg.isPeerClassLoadingEnabled() ?
                 IgniteComponentType.HADOOP.create(ctx, true): // No-op when 
peer class loading is enabled.

http://git-wip-us.apache.org/repos/asf/incubator-ignite/blob/c88e8a77/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
----------------------------------------------------------------------
diff --git 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
index 274310e..0dce4ad 100644
--- 
a/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
+++ 
b/modules/core/src/main/java/org/apache/ignite/internal/processors/task/GridTaskProcessor.java
@@ -84,7 +84,10 @@ public class GridTaskProcessor extends GridProcessorAdapter {
     private final GridSpinReadWriteLock lock = new GridSpinReadWriteLock();
 
     /** Internal metadata cache. */
-    private GridCache<GridTaskNameHashKey, String> tasksMetaCache;
+    private volatile GridCache<GridTaskNameHashKey, String> tasksMetaCache;
+
+    /** */
+    private final CountDownLatch startLatch = new CountDownLatch(1);
 
     /**
      * @param ctx Kernal context.
@@ -112,6 +115,8 @@ public class GridTaskProcessor extends GridProcessorAdapter 
{
     /** {@inheritDoc} */
     @Override public void onKernalStart() throws IgniteCheckedException {
         tasksMetaCache = ctx.security().enabled() ? 
ctx.cache().<GridTaskNameHashKey, String>utilityCache() : null;
+
+        startLatch.countDown();
     }
 
     /** {@inheritDoc} */
@@ -191,6 +196,18 @@ public class GridTaskProcessor extends 
GridProcessorAdapter {
             log.debug("Finished executing task processor onKernalStop() 
callback.");
     }
 
+    /**
+     * @return Task metadata cache.
+     */
+    private GridCache<GridTaskNameHashKey, String> taskMetaCache() {
+        assert ctx.security().enabled();
+
+        if (tasksMetaCache == null)
+            U.awaitQuiet(startLatch);
+
+        return tasksMetaCache;
+    }
+
     /** {@inheritDoc} */
     @Override public void stop(boolean cancel) {
         if (log.isDebugEnabled())
@@ -345,7 +362,7 @@ public class GridTaskProcessor extends GridProcessorAdapter 
{
         assert ctx.security().enabled();
 
         try {
-            return tasksMetaCache.localPeek(
+            return taskMetaCache().localPeek(
                 new GridTaskNameHashKey(taskNameHash), 
CachePeekModes.ONHEAP_ONLY, null);
         }
         catch (IgniteCheckedException e) {
@@ -676,6 +693,7 @@ public class GridTaskProcessor extends GridProcessorAdapter 
{
      * Saves task name metadata to utility cache.
      *
      * @param taskName Task name.
+     * @throws IgniteCheckedException If failed.
      */
     private void saveTaskMetadata(String taskName) throws 
IgniteCheckedException {
         if (ctx.isDaemon())
@@ -691,6 +709,8 @@ public class GridTaskProcessor extends GridProcessorAdapter 
{
 
         GridTaskNameHashKey key = new GridTaskNameHashKey(nameHash);
 
+        GridCache<GridTaskNameHashKey, String> tasksMetaCache = 
taskMetaCache();
+
         String existingName = tasksMetaCache.get(key);
 
         if (existingName == null)

Reply via email to