From 4f74872124a76d89616394056175f422ef5198cc Mon Sep 17 00:00:00 2001 From: Andy Schlaikjer Date: Fri, 13 Apr 2012 16:23:10 -0700 Subject: [PATCH] Adds Precondition to TopicModel.update(Matrix) This will catch poorly behaved clients who request less than one thread on TopicModel instantiation, but then attempt to use the multithreaded update method. --- .../java/org/apache/mahout/clustering/lda/cvb/TopicModel.java | 3 +++ 1 file changed, 3 insertions(+) diff --git a/core/src/main/java/org/apache/mahout/clustering/lda/cvb/TopicModel.java b/core/src/main/java/org/apache/mahout/clustering/lda/cvb/TopicModel.java index 83162410e..6a55676a3 100644 --- a/core/src/main/java/org/apache/mahout/clustering/lda/cvb/TopicModel.java +++ b/core/src/main/java/org/apache/mahout/clustering/lda/cvb/TopicModel.java @@ -16,6 +16,7 @@ */ package org.apache.mahout.clustering.lda.cvb; +import com.google.common.base.Preconditions; import com.google.common.collect.Lists; import org.apache.hadoop.conf.Configurable; import org.apache.hadoop.conf.Configuration; @@ -329,6 +330,8 @@ public Vector infer(Vector original, Vector docTopicPrior, double minRelPerplexi } public void update(Matrix docTopicCounts) { + Preconditions.checkState(updaters.length > 0, + "Unable to update model; No threads requested during TopicModel instantiation"); for(int x = 0; x < numTopics; x++) { updaters[x % updaters.length].update(x, docTopicCounts.viewRow(x)); }