You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@metron.apache.org by le...@apache.org on 2016/12/13 13:00:19 UTC

incubator-metron git commit: METRON-618 Eliminate Javac Warnings in metron-analytics (justinleet) closes apache/incubator-metron#391

Repository: incubator-metron
Updated Branches:
  refs/heads/master b36f4b2fb -> 506610cb9


METRON-618 Eliminate Javac Warnings in metron-analytics (justinleet) closes apache/incubator-metron#391


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

Branch: refs/heads/master
Commit: 506610cb99c74bb1161a0dad1f407a1489fd8801
Parents: b36f4b2
Author: justinleet <ju...@gmail.com>
Authored: Tue Dec 13 07:59:45 2016 -0500
Committer: leet <le...@apache.org>
Committed: Tue Dec 13 07:59:45 2016 -0500

----------------------------------------------------------------------
 .../apache/metron/maas/config/MaaSConfig.java   |  2 +-
 .../apache/metron/maas/queue/QueueHandler.java  |  2 +-
 .../metron/maas/service/ApplicationMaster.java  |  8 ++---
 .../org/apache/metron/maas/service/Client.java  |  4 +--
 .../callback/ContainerRequestListener.java      |  4 +--
 .../metron/maas/service/runner/Runner.java      |  5 +--
 .../metron/maas/service/yarn/Resources.java     |  3 +-
 .../metron/maas/submit/ModelSubmission.java     |  5 +--
 .../java/org/apache/metron/maas/util/Utils.java | 32 --------------------
 .../profiler/client/stellar/GetProfile.java     |  2 ++
 .../metron/profiler/client/GetProfileTest.java  |  4 +++
 .../apache/metron/profiler/ProfileBuilder.java  |  2 ++
 .../stellar/DefaultStellarExecutorTest.java     |  3 ++
 .../profiler/bolt/ProfileHBaseMapper.java       |  4 +--
 .../profiler/bolt/ProfileSplitterBolt.java      |  6 ++--
 .../MedianAbsoluteDeviationFunctions.java       |  5 ++-
 16 files changed, 39 insertions(+), 52 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/config/MaaSConfig.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/config/MaaSConfig.java b/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/config/MaaSConfig.java
index b195478..6ed7c2f 100644
--- a/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/config/MaaSConfig.java
+++ b/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/config/MaaSConfig.java
@@ -67,7 +67,7 @@ public class MaaSConfig {
   public void setQueueConfig(Map<String, Object> queueConfig) {
     this.queueConfig = queueConfig;
   }
-  public Queue createQueue(Map<String, Object> additionalConfig) {
+  public Queue<ModelRequest> createQueue(Map<String, Object> additionalConfig) {
     Map<String, Object> configs = new HashMap<>(getQueueConfig());
     configs.putAll(additionalConfig);
     return getQueue().create(configs);

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/queue/QueueHandler.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/queue/QueueHandler.java b/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/queue/QueueHandler.java
index 9e803b8..bebef9b 100644
--- a/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/queue/QueueHandler.java
+++ b/metron-analytics/metron-maas-common/src/main/java/org/apache/metron/maas/queue/QueueHandler.java
@@ -44,7 +44,7 @@ public enum QueueHandler {
    * @param config
    * @return
    */
-  public Queue create(Map<String, Object> config) {
+  public Queue<ModelRequest> create(Map<String, Object> config) {
     return queueCreator.apply(config);
   }
 }

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/ApplicationMaster.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/ApplicationMaster.java b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/ApplicationMaster.java
index bb3c441..dbab00f 100644
--- a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/ApplicationMaster.java
+++ b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/ApplicationMaster.java
@@ -58,6 +58,7 @@ import org.apache.hadoop.yarn.api.records.ContainerId;
 import org.apache.hadoop.yarn.api.records.ContainerLaunchContext;
 import org.apache.hadoop.yarn.api.records.Resource;
 import org.apache.hadoop.yarn.api.records.ResourceRequest;
+import org.apache.hadoop.yarn.client.api.AMRMClient;
 import org.apache.hadoop.yarn.client.api.TimelineClient;
 import org.apache.hadoop.yarn.client.api.async.AMRMClientAsync;
 import org.apache.hadoop.yarn.client.api.async.NMClientAsync;
@@ -77,7 +78,6 @@ import org.apache.metron.maas.queue.ZKQueue;
 import org.apache.metron.maas.service.runner.MaaSHandler;
 import org.apache.metron.maas.service.yarn.Resources;
 import org.apache.metron.maas.service.yarn.YarnUtils;
-import org.apache.metron.maas.util.Utils;
 
 /**
  * An ApplicationMaster for executing shell commands on a set of launched
@@ -156,8 +156,7 @@ public class ApplicationMaster {
   private Configuration conf;
 
   // Handle to communicate with the Resource Manager
-  @SuppressWarnings("rawtypes")
-  private AMRMClientAsync amRMClient;
+  private AMRMClientAsync<AMRMClient.ContainerRequest> amRMClient;
 
   // In both secure and non-secure modes, this points to the job-submitter.
   @VisibleForTesting
@@ -258,9 +257,10 @@ public class ApplicationMaster {
       return new AbstractMap.SimpleEntry<>(this, null);
     }
 
+    @SafeVarargs
     public static String toArgs(Map.Entry<AMOptions, String> ... arg) {
       return
-      Joiner.on(" ").join(Iterables.transform(Utils.INSTANCE.toList(arg)
+      Joiner.on(" ").join(Iterables.transform(Arrays.asList(arg)
                                              , a -> "-" + a.getKey().shortCode
                                                   + (a.getValue() == null?"":(" " + a.getValue()))
                                              )

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/Client.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/Client.java b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/Client.java
index 2a5032d..601f21d 100644
--- a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/Client.java
+++ b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/Client.java
@@ -73,7 +73,6 @@ import org.apache.hadoop.yarn.conf.YarnConfiguration;
 import org.apache.hadoop.yarn.exceptions.YarnException;
 import org.apache.hadoop.yarn.util.ConverterUtils;
 import org.apache.hadoop.yarn.util.timeline.TimelineUtils;
-import org.apache.metron.maas.util.Utils;
 
 import static org.apache.metron.maas.service.Client.ClientOptions.*;
 
@@ -318,9 +317,10 @@ public class Client {
       return new AbstractMap.SimpleEntry<>(this, null);
     }
 
+    @SafeVarargs
     public static String toArgs(Map.Entry<ClientOptions, String> ... arg) {
       return
-      Joiner.on(" ").join(Iterables.transform(Utils.INSTANCE.toList(arg)
+      Joiner.on(" ").join(Iterables.transform(Arrays.asList(arg)
                                              , a -> "-" + a.getKey().shortCode
                                                   + (a.getValue() == null?"":(" " + a.getValue()))
                                              )

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/callback/ContainerRequestListener.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/callback/ContainerRequestListener.java b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/callback/ContainerRequestListener.java
index e9d2d12..0a957e3 100644
--- a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/callback/ContainerRequestListener.java
+++ b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/callback/ContainerRequestListener.java
@@ -40,7 +40,7 @@ public class ContainerRequestListener implements AMRMClientAsync.CallbackHandler
 
   private static final Log LOG = LogFactory.getLog(ContainerRequestListener.class);
   private ContainerTracker state;
-  private AMRMClientAsync amRMClient;
+  private AMRMClientAsync<AMRMClient.ContainerRequest> amRMClient;
   @VisibleForTesting
   private UserGroupInformation appSubmitterUgi;
   private String domainId = null;
@@ -61,7 +61,7 @@ public class ContainerRequestListener implements AMRMClientAsync.CallbackHandler
     state = new ContainerTracker(minMemorySize);
   }
 
-  public void initialize(AMRMClientAsync amRMClient
+  public void initialize(AMRMClientAsync<AMRMClient.ContainerRequest> amRMClient
                         , NMClientAsync nmClient
                         , ServiceDiscoverer serviceDiscoverer
                         )

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/runner/Runner.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/runner/Runner.java b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/runner/Runner.java
index e035566..cc297d2 100644
--- a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/runner/Runner.java
+++ b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/runner/Runner.java
@@ -36,12 +36,12 @@ import org.apache.metron.maas.config.Endpoint;
 import org.apache.metron.maas.util.ConfigUtil;
 import org.apache.metron.maas.config.MaaSConfig;
 import org.apache.metron.maas.config.ModelEndpoint;
-import org.apache.metron.maas.util.Utils;
 
 import java.io.File;
 import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
+import java.util.Arrays;
 import java.util.AbstractMap;
 import java.util.HashSet;
 import java.util.Map;
@@ -110,9 +110,10 @@ public class Runner {
       return new AbstractMap.SimpleEntry<>(this, null);
     }
 
+    @SafeVarargs
     public static String toArgs(Map.Entry<RunnerOptions, String> ... arg) {
       return
-      Joiner.on(" ").join(Iterables.transform(Utils.INSTANCE.toList(arg)
+      Joiner.on(" ").join(Iterables.transform(Arrays.asList(arg)
                                              , a -> "-" + a.getKey().shortCode
                                                   + (a.getValue() == null?"":(" " + a.getValue()))
                                              )

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/yarn/Resources.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/yarn/Resources.java b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/yarn/Resources.java
index a133853..4c3a6d7 100644
--- a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/yarn/Resources.java
+++ b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/service/yarn/Resources.java
@@ -52,8 +52,9 @@ public enum Resources {
     return ret;
   }
   public Map.Entry<Resources, Integer> of(int n) {
-    return new AbstractMap.SimpleEntry<Resources, Integer>(this, n);
+    return new AbstractMap.SimpleEntry<>(this, n);
   }
+  @SafeVarargs
   public static EnumMap<Resources, Integer> toResourceMap( Map.Entry<Resources, Integer>... entry ) {
     EnumMap<Resources, Integer> ret = new EnumMap<>(Resources.class);
     for(Map.Entry<Resources, Integer> kv : entry) {

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/submit/ModelSubmission.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/submit/ModelSubmission.java b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/submit/ModelSubmission.java
index 050f520..885ca0f 100644
--- a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/submit/ModelSubmission.java
+++ b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/submit/ModelSubmission.java
@@ -126,11 +126,12 @@ public class ModelSubmission {
       return new AbstractMap.SimpleEntry<>(this, null);
     }
 
+    @SafeVarargs
     public static String toArgs(Map.Entry<ModelSubmissionOptions, String> ... arg) {
       return
       Joiner.on(" ").join(Iterables.transform(Arrays.asList(arg)
                                              , a -> "-" + a.getKey().option.getOpt()
-                                                  + a.getValue() == null?"":(" " + a.getValue())
+                                                  + (a.getValue() == null?"":(" " + a.getValue()))
                                              )
                          );
 
@@ -214,7 +215,7 @@ public class ModelSubmission {
         Path hdfsPath = new Path(ModelSubmissionOptions.HDFS_MODEL_PATH.get(cli));
         updateHDFS(fs, localDir, hdfsPath);
       }
-      Queue queue = config.createQueue(ImmutableMap.of(ZKQueue.ZK_CLIENT, client));
+      Queue<ModelRequest> queue = config.createQueue(ImmutableMap.of(ZKQueue.ZK_CLIENT, client));
       queue.enqueue(request);
     } finally {
       if (client != null) {

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/util/Utils.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/util/Utils.java b/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/util/Utils.java
deleted file mode 100644
index eec3f67..0000000
--- a/metron-analytics/metron-maas-service/src/main/java/org/apache/metron/maas/util/Utils.java
+++ /dev/null
@@ -1,32 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *     http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-package org.apache.metron.maas.util;
-
-import java.util.ArrayList;
-import java.util.List;
-
-public enum Utils {
-  INSTANCE;
-  public <T> List<T> toList(T[] arr) {
-    List<T> ret = new ArrayList<T>(arr.length);
-    for(T o : arr) {
-      ret.add(o);
-    }
-    return ret;
-  }
-}

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-profiler-client/src/main/java/org/apache/metron/profiler/client/stellar/GetProfile.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-client/src/main/java/org/apache/metron/profiler/client/stellar/GetProfile.java b/metron-analytics/metron-profiler-client/src/main/java/org/apache/metron/profiler/client/stellar/GetProfile.java
index 57472c3..9d4aa54 100644
--- a/metron-analytics/metron-profiler-client/src/main/java/org/apache/metron/profiler/client/stellar/GetProfile.java
+++ b/metron-analytics/metron-profiler-client/src/main/java/org/apache/metron/profiler/client/stellar/GetProfile.java
@@ -146,6 +146,7 @@ public class GetProfile implements StellarFunction {
     // ensure the required capabilities are defined
     Context.Capabilities[] required = { GLOBAL_CONFIG };
     validateCapabilities(context, required);
+    @SuppressWarnings("unchecked")
     Map<String, Object> global = (Map<String, Object>) context.getCapability(GLOBAL_CONFIG).get();
 
     // create the profiler client
@@ -308,6 +309,7 @@ public class GetProfile implements StellarFunction {
 
     TableProvider provider;
     try {
+      @SuppressWarnings("unchecked")
       Class<? extends TableProvider> clazz = (Class<? extends TableProvider>) Class.forName(clazzName);
       provider = clazz.getConstructor().newInstance();
 

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-profiler-client/src/test/java/org/apache/metron/profiler/client/GetProfileTest.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-client/src/test/java/org/apache/metron/profiler/client/GetProfileTest.java b/metron-analytics/metron-profiler-client/src/test/java/org/apache/metron/profiler/client/GetProfileTest.java
index 95582e7..4bb3420 100644
--- a/metron-analytics/metron-profiler-client/src/test/java/org/apache/metron/profiler/client/GetProfileTest.java
+++ b/metron-analytics/metron-profiler-client/src/test/java/org/apache/metron/profiler/client/GetProfileTest.java
@@ -138,6 +138,7 @@ public class GetProfileTest {
 
     // execute - read the profile values - no groups
     String expr = "PROFILE_GET('profile1', 'entity1', 4, 'HOURS')";
+    @SuppressWarnings("unchecked")
     List<Integer> result = run(expr, List.class);
 
     // validate - expect to read all values from the past 4 hours
@@ -168,6 +169,7 @@ public class GetProfileTest {
 
     // execute - read the profile values
     String expr = "PROFILE_GET('profile1', 'entity1', 4, 'HOURS', 'weekends')";
+    @SuppressWarnings("unchecked")
     List<Integer> result = run(expr, List.class);
 
     // validate - expect to read all values from the past 4 hours
@@ -198,6 +200,7 @@ public class GetProfileTest {
 
     // execute - read the profile values
     String expr = "PROFILE_GET('profile1', 'entity1', 4, 'HOURS', 'weekdays', 'tuesday')";
+    @SuppressWarnings("unchecked")
     List<Integer> result = run(expr, List.class);
 
     // validate - expect to read all values from the past 4 hours
@@ -245,6 +248,7 @@ public class GetProfileTest {
 
     // execute - read the profile values
     String expr = "PROFILE_GET('profile1', 'entity1', 4, 'SECONDS')";
+    @SuppressWarnings("unchecked")
     List<Integer> result = run(expr, List.class);
 
     // validate - there should be no values from only 4 seconds ago

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/ProfileBuilder.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/ProfileBuilder.java b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/ProfileBuilder.java
index 2f1bc93..f9beaeb 100644
--- a/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/ProfileBuilder.java
+++ b/metron-analytics/metron-profiler-common/src/main/java/org/apache/metron/profiler/ProfileBuilder.java
@@ -124,6 +124,7 @@ public class ProfileBuilder implements Serializable {
    * Apply a message to the profile.
    * @param message The message to apply.
    */
+  @SuppressWarnings("unchecked")
   public void apply(JSONObject message) {
 
     if(!isInitialized()) {
@@ -145,6 +146,7 @@ public class ProfileBuilder implements Serializable {
     LOG.debug("Flushing profile: profile={}, entity={}", profileName, entity);
 
     // execute the 'result' expression
+    @SuppressWarnings("unchecked")
     Object value = execute(definition.getResult(), new JSONObject(), "result");
 
     // execute the 'groupBy' expression(s) - can refer to value of 'result' expression

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-profiler-common/src/test/java/org/apache/metron/profiler/stellar/DefaultStellarExecutorTest.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler-common/src/test/java/org/apache/metron/profiler/stellar/DefaultStellarExecutorTest.java b/metron-analytics/metron-profiler-common/src/test/java/org/apache/metron/profiler/stellar/DefaultStellarExecutorTest.java
index 9a77f8e..d569536 100644
--- a/metron-analytics/metron-profiler-common/src/test/java/org/apache/metron/profiler/stellar/DefaultStellarExecutorTest.java
+++ b/metron-analytics/metron-profiler-common/src/test/java/org/apache/metron/profiler/stellar/DefaultStellarExecutorTest.java
@@ -47,6 +47,9 @@ import static org.junit.Assert.assertThat;
 /**
  * Tests the DefaultStellarExecutor.
  */
+@SuppressWarnings("unchecked")
+// This test class passes raw JSONObject to the the executor, which gives unchecked cast warnings.
+// Suppressing on the class level, given that every test is a typical example of use pattern.
 public class DefaultStellarExecutorTest {
 
   /**

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java b/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
index 3e7b4d4..cdde001 100644
--- a/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
+++ b/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileHBaseMapper.java
@@ -91,11 +91,11 @@ public class ProfileHBaseMapper implements HBaseMapper {
    */
   @Override
   public Optional<Long> getTTL(Tuple tuple) {
-    Optional result = Optional.empty();
+    Optional<Long> result = Optional.empty();
 
     ProfileConfig profileConfig = (ProfileConfig) tuple.getValueByField("profile");
     if(profileConfig.getExpires() != null) {
-      result = result.of(profileConfig.getExpires());
+      result = Optional.of(profileConfig.getExpires());
     }
 
     return result;

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java b/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
index 57a54f3..8f2ab2b 100644
--- a/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
+++ b/metron-analytics/metron-profiler/src/main/java/org/apache/metron/profiler/bolt/ProfileSplitterBolt.java
@@ -130,13 +130,15 @@ public class ProfileSplitterBolt extends ConfiguredProfilerBolt {
    * @param message The message that may be needed by the profile.
    */
   private void applyProfile(ProfileConfig profile, Tuple input, JSONObject message) throws ParseException, UnsupportedEncodingException {
+    @SuppressWarnings("unchecked")
+    Map<String, Object> state = (Map<String, Object>)message;
 
     // is this message needed by this profile?
     String onlyIf = profile.getOnlyif();
-    if (StringUtils.isBlank(onlyIf) || executor.execute(onlyIf, message, Boolean.class)) {
+    if (StringUtils.isBlank(onlyIf) || executor.execute(onlyIf, state, Boolean.class)) {
 
       // what is the name of the entity in this message?
-      String entity = executor.execute(profile.getForeach(), message, String.class);
+      String entity = executor.execute(profile.getForeach(), state, String.class);
 
       // emit a message for the bolt responsible for building this profile
       collector.emit(input, new Values(entity, profile, message));

http://git-wip-us.apache.org/repos/asf/incubator-metron/blob/506610cb/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/outlier/MedianAbsoluteDeviationFunctions.java
----------------------------------------------------------------------
diff --git a/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/outlier/MedianAbsoluteDeviationFunctions.java b/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/outlier/MedianAbsoluteDeviationFunctions.java
index 4c3fe8e..fdb4b33 100644
--- a/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/outlier/MedianAbsoluteDeviationFunctions.java
+++ b/metron-analytics/metron-statistics/src/main/java/org/apache/metron/statistics/outlier/MedianAbsoluteDeviationFunctions.java
@@ -82,6 +82,7 @@ public class MedianAbsoluteDeviationFunctions {
     @Override
     public Object apply(List<Object> args, Context context) throws ParseException {
       State state = null;
+      @SuppressWarnings("unchecked")
       List<State> states = (List<State>) args.get(0);
       State currentState = null;
       if(args.size() > 1) {
@@ -120,7 +121,9 @@ public class MedianAbsoluteDeviationFunctions {
       List<Double> data = new ArrayList<>();
       if(o != null) {
         if (o instanceof List) {
-          for (Object datum : (List<Object>) o) {
+          @SuppressWarnings("unchecked")
+          List<Object> oList = (List<Object>) o;
+          for (Object datum : oList) {
             Number n = (Number) datum;
             data.add(n.doubleValue());
           }