You are viewing a plain text version of this content. The canonical link for it is here.
Posted to olio-commits@incubator.apache.org by sh...@apache.org on 2009/03/19 17:33:39 UTC

svn commit: r756105 - in /incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util: GrowthTest.java ScaleFactors.java UserName.java

Author: shanti
Date: Thu Mar 19 17:33:39 2009
New Revision: 756105

URL: http://svn.apache.org/viewvc?rev=756105&view=rev
Log:
Fix for OLIO-51. With the larger scale of the db, the username generation also had to be fixed to support a much larger scale. Fixes from Akara.

Modified:
    incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/GrowthTest.java
    incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/ScaleFactors.java
    incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/UserName.java

Modified: incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/GrowthTest.java
URL: http://svn.apache.org/viewvc/incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/GrowthTest.java?rev=756105&r1=756104&r2=756105&view=diff
==============================================================================
--- incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/GrowthTest.java (original)
+++ incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/GrowthTest.java Thu Mar 19 17:33:39 2009
@@ -1,3 +1,22 @@
+/*
+ * 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.olio.workload.util;
 
 /**

Modified: incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/ScaleFactors.java
URL: http://svn.apache.org/viewvc/incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/ScaleFactors.java?rev=756105&r1=756104&r2=756105&view=diff
==============================================================================
--- incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/ScaleFactors.java (original)
+++ incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/ScaleFactors.java Thu Mar 19 17:33:39 2009
@@ -1,3 +1,22 @@
+/*
+ * 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.
+ * 
+ * $Id: ScaleFactors.java,v 1.1.1.1 2008/09/29 22:33:08 sp208304 Exp $
+ */
 package org.apache.olio.workload.util;
 
 import java.util.logging.Logger;
@@ -8,8 +27,11 @@
  */
 public class ScaleFactors {
 
-    /** The total number of loaded users */
+    /** The ratio between loaded and active users. */
+    public static final int USERS_RATIO = 100;
     public static int activeUsers = -1;
+
+    /** The total number of loaded users */
     public static int users;
     public static int events;
     public static int tagCount;
@@ -30,7 +52,7 @@
         }
         if (activeUsers == -1) {
             activeUsers = userCount;
-            users = activeUsers * 4;
+            users = activeUsers * USERS_RATIO;
             tagCount = getTagCount(users);
             events = tagCount * 3;
         }

Modified: incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/UserName.java
URL: http://svn.apache.org/viewvc/incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/UserName.java?rev=756105&r1=756104&r2=756105&view=diff
==============================================================================
--- incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/UserName.java (original)
+++ incubator/olio/workload/rails/trunk/src/org/apache/olio/workload/util/UserName.java Thu Mar 19 17:33:39 2009
@@ -1,12 +1,23 @@
-package org.apache.olio.workload.util;
 /*
- * Copyright (c) 2000-2004 by Sun Microsystems, Inc. All Rights Reserved.
- * This software is the proprietary information of Sun Microsystems, Inc.
- * Use is subject to license terms.
+ * 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
  *
- * $Id: UserName.java,v 1.1 2007/06/20 19:57:47 akara Exp $
+ *     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.
+ * 
+ * $Id: UserName.java,v 1.1.1.1 2008/09/29 22:33:08 sp208304 Exp $
  */
+package org.apache.olio.workload.util;
 
 import java.util.HashSet;
 import java.io.*;
@@ -15,52 +26,19 @@
  * The user utility creates usernames and passwords from user ids.
  * It uses the scrambled character sequences generated by the Scramble
  * class. The username length distribution are controlled so 5% of the
- * users have 3 letter names, 8% of the users have 4 letter names,
- * 17% of the users have 5 letter names, 25% of the users have 6 letter
- * names, 24% of the users have 7 letter names, and 21% of the users
- * have 8 letter names. This ratio is based on Sun's own users that
- * DO NOT use standard names such as ab123456.<p>
- * At the current state, this utility can generate 711,880 non-duplicate
+ * users have 6 letter names, 8% of the users have 7 letter names,
+ * 17% of the users have 8 letter names, 25% of the users have 9 letter
+ * names, 24% of the users have 10 letter names, and 21% of the users
+ * have 11 letter names.<p>
+ * At the current state, this utility can generate 36,058,857,640 non-duplicate
  * names.
  *
  * @author Akara Sucharitakul
  */
 public class UserName {
 
-    private static final char[][][] scramble = {{{'0'}}, {{'0'}},
-    {{'s', 'k', 'u', 'p', 'n', 't', 'j', 'z', 'b', 'g', 'q', 'l', 'w', 'd',
-    'v', 'y', 'm', 'f', 'x', 'i', 'c', 'h', 'r', 'o', 'e', 'a'},
-    {'w', '_', 'q', 'l', 'z', 'h', 'j', 'k', '1', '6', 'e', '5', '4', 't', 'b',
-    '2', 'p', 'r', 'g', 'm', '8', '3', 'c', 'u', '7', 'v', 'i', 'y', 'o', 'a',
-    'x', 'n', '0', '9', 's', 'd', 'f'},
-    {'8', '7', '2', 'm', 'l', 's', 'q', '6', '1', 'j', 'b', 'n', '3', 'i', '_',
-    'w', 'a', 'z', '4', 'x', 'e', 'f', '9', 'c', 'g', 't', 'h', '0', 'd', 'y',
-    'k', 'v', 'u', 'p', 'r', '5', 'o'}},
-    {{'q', 'c', 'r', 'p', 'm', 'o', 'n', 'y', 't', 'x', 'a', 'k', 'l', 's',
-    'e', 'g', 'z', 'h', 'w', 'j', 'v', 'u', 'b', 'f', 'i', 'd'},
-    {'0', 'g', 'l', '8', 'f', 'p', 'x', 'q', 'm', '6', 's', 'y', 'c', '2', '7',
-    'e', '4', '5', 'v', 'b', 'z', 'i', 'd', 'h', '1', 'n', '3', '9', 'w', 'o',
-    '_', 'r', 'j', 't', 'k', 'u', 'a'},
-    {'5', 'e', '0', '4', 'j', 'd', 'a', 'b', 'g', 'w', 'n', 'v', '3', 'u', '9',
-    'x', 'i', 'c', 'h', 'q', 'y', 'r', '_', 'm', 't', '6', '8', '2', 'l', 'k',
-    'p', '7', 's', 'o', 'z', 'f', '1'},
-    {'r', 'v', 'g', 'a', '0', 'w', 't', '7', '5', '_', 'o', '6', 'f', 'z', 'j',
-    '2', 'c', 'e', '4', '1', 's', 'y', 'p', '8', 'n', 'u', '3', 'l', 'k', 'h',
-    'd', 'b', 'q', 'x', 'i', '9', 'm'}},
-    {{'p', 's', 'c', 'o', 'r', 't', 'u', 'i', 'k', 'q', 'v', 'e', 'f', 'x',
-    'n', 'j', 'y', 'w', 'z', 'd', 'a', 'b', 'g', 'm', 'l', 'h'},
-    {'i', 'f', 'w', '0', '5', 'p', '7', 'o', '6', 'z', '8', 'h', 't', '2', '4',
-    'u', 'a', 'x', 'r', 's', '9', 'v', 'k', 'j', 'e', 'g', '3', 'q', 'm', '1',
-    'l', 'y', 'd', 'n', '_', 'c', 'b'},
-    {'n', 'z', 'q', 'd', '8', '1', '5', 'o', 'b', 'u', 'e', 'a', 'c', '2', 'y',
-    'w', 'k', '9', 'i', '7', 'h', '_', '3', '0', 'j', 'g', 'l', 'm', 'p', 's',
-    'v', 't', '4', 'x', '6', 'f', 'r'},
-    {'f', 'd', '5', 't', 'j', 'e', 'h', 'q', 'u', 'c', 'b', 'w', 'l', 'k', 'a',
-    'n', 'r', 'm', '1', 'o', '_', 'y', '6', 's', '7', 'g', 'i', '2', '0', 'p',
-    'x', 'v', '3', '4', 'z', '9', '8'},
-    {'4', 'm', 'q', 'o', '9', 'v', 'z', 'w', '7', '6', '5', '8', 'f', 'g', 'd',
-    'a', 'p', 'j', '1', '_', 'y', '3', 'h', 'r', 't', 'c', 'n', 'l', '0', 'e',
-    'k', 'b', 'x', 'i', '2', 's', 'u'}},
+private static final char[][][] scramble =
+        {{{'0'}}, {{'0'}}, {{'0'}}, {{'0'}}, {{'0'}},
     {{'r', 'b', 'd', 'm', 'f', 't', 'x', 'e', 'i', 'o', 's', 'p', 'a', 'l',
     'g', 'h', 'n', 'w', 'z', 'q', 'u', 'v', 'k', 'j', 'c', 'y'},
     {'h', 'i', 'b', 'f', '2', 'o', 'd', 'u', '7', '9', 'w', 'v', 'j', '3', '6',
@@ -120,11 +98,98 @@
     'd', 'r', 't', '7', 'f', 'l', 'c'},
     {'t', 'z', 'n', 'y', '6', 'm', 'i', 'w', 'c', '2', 'f', 'q', 'e', 'h', '_',
     'v', 'j', '9', '0', '8', 's', '5', 'g', 'd', 'p', 'l', '4', 'u', 'o', '1',
-    'k', '3', 'r', 'b', 'a', 'x', '7'}}};
-
+'k', '3', 'r', 'b', 'a', 'x', '7'}},
+{{'n', 'w', 'e', 'q', 'k', 'p', 's', 'a', 'j', 'm', 'i', 'c', 'h', 'g',
+'z', 'u', 'd', 'l', 'y', 'v', 'f', 'o', 'b', 't', 'r', 'x'},
+{'l', 'x', 'd', 'k', 'u', 'q', '5', 'r', 'w', 's', '_', 'h', 'i', 'z', 'p',
+'g', 'a', 'c', 'y', 'v', 'e', 'f', '6', 'j', 'o', '4', '8', 't', '0', '9',
+'7', '3', 'b', 'n', '1', '2', 'm'},
+{'h', '_', 'y', 'm', 'a', 'v', 'r', 'k', 'j', 'i', 't', '3', '5', '2', 'f',
+'u', 'd', '4', 'n', 'b', 'e', '1', 'q', '0', 'c', 'p', '8', '7', 'x', '6',
+'9', 'o', 's', 'w', 'l', 'g', 'z'},
+{'k', 'y', 'a', '4', 'f', 'i', '0', '_', '1', 'b', 'p', '9', 'x', 'w', 'v',
+'n', 'd', 't', 'm', 'u', 'q', 'l', '6', 'o', '5', 'j', 's', '8', '7', 'h',
+'z', 'e', 'r', '3', 'c', '2', 'g'},
+{'y', 'q', '2', 'j', 'z', 'f', 'h', 'r', 'x', 'g', 'w', '9', '5', '0', '3',
+'4', 't', 'a', 'e', '7', 'b', 'p', 'd', 'c', 's', 'v', '_', '6', 'k', 'o',
+'i', 'l', 'n', 'u', '8', 'm', '1'},
+{'a', '0', 's', '5', 'h', '4', 'c', 'x', '8', 'w', 'r', '1', 't', '6', 'u',
+'7', 'e', 'b', 'd', 'j', 'i', '3', 'f', 'y', '2', 'v', 'n', 'o', '_', 'q',
+'9', 'm', 'g', 'k', 'p', 'l', 'z'},
+{'o', '7', 'n', 'r', 'g', 'v', 't', 'h', 'w', '_', '5', 'z', '1', '4', 'y',
+'a', '3', 'u', 'k', 'f', 'e', 'b', 'm', 'i', 'x', 'l', 'd', '0', 'c', '9',
+'p', '2', 'j', '8', 's', 'q', '6'},
+{'u', '2', 'o', 'a', 'k', '3', '_', 'i', 'z', 'r', 'e', 'x', '6', 'v', '4',
+'y', 'n', 'f', 'm', 'd', '7', '1', 'p', 'h', 't', 'l', '0', '8', '5', 'w',
+'c', '9', 'g', 's', 'b', 'q', 'j'},
+{'h', 'o', '3', '5', 'g', 'j', 'p', 'y', 'r', '4', 'q', '7', '9', '6', 't',
+'e', 'z', 'v', 'f', 'w', '1', 'i', 'b', '0', 'l', 's', 'a', 'x', '_', 'k',
+'u', 'c', 'd', 'n', '2', '8', 'm'}},
+{{'p', 'f', 'x', 'n', 'v', 'q', 'w', 'r', 'd', 'i', 'h', 'z', 'b', 't',
+'g', 'l', 'o', 'c', 'y', 's', 'u', 'm', 'e', 'k', 'a', 'j'},
+{'k', 'e', 'u', '0', 't', 'o', 'd', 'x', '_', '4', 'l', 'y', '7', '2', 'z',
+'9', 'a', 'm', 'r', 'b', 'f', '8', 'q', 's', 'n', 'g', '5', 'i', 'j', 'p',
+'6', '1', 'v', 'h', 'w', 'c', '3'},
+{'r', '4', '5', 'q', '_', 's', '2', 'p', 'z', 'n', 'o', 'm', 'g', 'a', 'c',
+'u', 'v', 'j', 'e', 'k', 'x', '7', 'l', 'd', 'w', '0', '8', 'i', '6', 'h',
+'3', '1', 'y', '9', 'f', 't', 'b'},
+{'q', 'x', 'i', 'g', 'z', 'v', '2', 'u', '4', 's', '1', 'd', 'k', 'n', 'a',
+'5', '7', 't', 'y', '9', 'm', 'r', '8', 'j', '0', 'b', 'c', 'o', 'l', 'h',
+'f', '6', 'e', 'p', '3', 'w', '_'},
+{'c', 'k', '1', 'd', '6', '_', 'o', '5', 'm', 'w', 'e', 'g', 'b', '0', 'q',
+'t', '8', 'r', 'u', 'i', 'n', 'j', 'x', 's', '7', '2', 'z', 'f', 'l', '4',
+'v', 'y', 'a', 'p', 'h', '9', '3'},
+{'t', 'v', '_', 'j', 'w', '5', 'l', '8', 's', 'n', '9', 'e', '0', 'd', 'x',
+'r', 'c', '2', '6', 'a', 'k', '3', 'g', '1', 'u', 'y', '4', 'o', 'q', 'f',
+'m', 'p', 'b', 'z', '7', 'i', 'h'},
+{'k', 'm', 'v', 'p', 'w', '9', 'x', 'j', 't', '_', 'i', 'h', 'a', '5', 'd',
+'e', 'z', 'n', 'f', '4', 'o', '0', 'l', '6', 'c', '8', 's', 'b', 'g', '2',
+'1', '3', 'r', 'y', '7', 'u', 'q'},
+{'i', 'a', 'b', 'v', 'l', 'y', 't', 'f', 'z', '8', '3', 'e', '2', 'p', 'r',
+'u', '6', '7', 's', '5', 'c', 'k', '0', 'j', 'm', 'n', 'h', 'd', '1', 'g',
+'o', 'w', 'x', '4', 'q', '9', '_'},
+{'8', '9', 'x', 'f', 'h', '7', '0', '4', 'o', '2', 'g', 'v', 'j', 't', 'e',
+'1', '3', 'q', 'w', 'a', '_', 'n', 'd', 'l', 'i', '6', 'm', 's', 'c', 'b',
+'y', 'z', '5', 'u', 'k', 'p', 'r'},
+{'f', '5', '_', 's', 'p', 'o', 'r', 'w', '1', 'y', '4', 'g', 'e', '8', 'b',
+'a', 'c', '0', 'v', 'h', 'm', 'q', 't', '6', 'u', 'n', 'd', '3', 'x', 'i',
+'7', 'z', 'j', 'k', '9', 'l', '2'}},
+{{'o', 't', 'q', 'k', 'b', 'p', 'a', 'f', 'x', 'd', 'c', 's', 'w', 'e',
+'y', 'r', 'l', 'm', 'z', 'i', 'v', 'g', 'n', 'j', 'h', 'u'},
+{'1', 'f', '5', 'u', 'j', 'q', 'r', 'w', 'i', 'x', '2', 'h', 'o', '0', '6',
+'p', 'c', 'd', 'z', 't', 'l', 'n', '_', '7', '3', 'b', 'a', 'g', 'e', '9',
+'y', '4', 'v', 's', '8', 'k', 'm'},
+{'v', '9', 'u', '0', 'r', 'g', '_', '4', 'y', 'n', 'j', '7', 'p', 'k', '2',
+'t', '1', 'o', 'e', 'b', 'f', 'i', 'x', 'z', 'c', 'q', '6', '8', 'w', 'm',
+'d', 'h', '5', 'a', 's', '3', 'l'},
+{'_', 'v', '8', 'y', 'g', 'e', 'o', 'b', 'r', 't', 'n', '1', 'm', '6', '5',
+'k', 'h', 'd', 'w', 's', 'x', 'q', 'l', '4', 'j', 'z', 'i', '7', '3', 'c',
+'p', 'a', '2', 'u', 'f', '0', '9'},
+{'j', 'z', 'd', '_', '3', '5', '9', 'p', '8', 'l', 'k', 'r', '7', 'q', '6',
+'a', 's', 'w', 'b', '0', 'f', 'x', 'e', 'v', 't', 'o', '4', 'h', '2', '1',
+'c', 'm', 'i', 'u', 'y', 'g', 'n'},
+{'a', 'f', '0', 'n', 'h', 'v', 'u', '7', '6', 'j', 'p', 'b', 'm', '_', '5',
+'9', 'q', 'd', '3', 'y', '4', 'i', '2', 'k', 'z', 't', 'w', 'g', '8', 'c',
+'r', '1', 'e', 'x', 'l', 'o', 's'},
+{'e', 'o', 'p', '9', 'f', 'u', 'j', 'y', '0', 'g', 's', 'r', '6', 't', 'n',
+'b', 'a', 'x', 'w', 'l', 'i', 'c', '1', 'k', 'q', '5', '7', 'd', 'h', '_',
+'2', 'z', '4', '3', 'v', 'm', '8'},
+{'5', 'f', 'b', 'g', 'v', 'a', '8', 'd', 'm', '_', 'k', 'o', 'u', '2', 'w',
+'x', 'c', '9', 'j', '7', 'n', 'e', '4', 'l', 'p', 'r', 'h', 'q', 'i', '1',
+'0', 't', '6', 's', 'z', 'y', '3'},
+{'s', 'j', 'h', 'z', '1', 'b', 'w', '2', 'y', 'l', 'u', '8', 'd', 'q', 'a',
+'5', 'x', 'k', '0', 'e', 't', 'v', '9', '7', 'n', 'i', 'p', 'm', 'r', '_',
+'3', '4', '6', 'o', 'c', 'g', 'f'},
+{'v', 'c', 'q', '1', 'a', '0', 'o', 'i', '3', '6', 'e', 'b', '9', 'w', 'x',
+'2', '5', 'l', 'd', 'z', 's', 'n', 'h', 'g', 'r', 'y', '8', 't', 'k', '4',
+'_', 'p', 'j', 'f', 'u', 'm', '7'},
+{'k', '4', 's', 'q', 'i', 'j', 'v', 'e', 'y', '8', 'l', 'u', '_', 'o', 'c',
+'g', 'd', 'r', 'x', 'b', 'a', 'w', '9', 'p', '3', '5', 'n', 'f', '1', '2',
+'0', 'h', 'z', 't', '7', '6', 'm'}}};
 
     // Note that these sum up to 100
-    private static final int[] length_percent = { 0, 0, 5, 8, 17, 25, 24, 21 };
+    // private static final int[] length_percent = { 0, 0, 5, 8, 17, 25, 24, 21 };
+    private static final int[] length_percent = { 0, 0, 0, 0, 0, 5, 8, 17, 25, 24, 21 };
 
     private static int[] selector = new int[length_percent.length];
 
@@ -212,30 +277,61 @@
         return new String(name);
     }
 
+    private static void spaceSize() {
+        long minSpace = Long.MAX_VALUE;
+        int digit = 0;
+        for (int i = 0; i < length_percent.length; i++) {
+            if (length_percent[i] == 0)
+                continue;
+            long space = 26l;
+            for (int j = 1; j < i + 1; j++) {
+                space *= 37l;
+            }
+            space = space * 100l / length_percent[i];
+            if (space >= 0 && space < minSpace) {
+                minSpace = space;
+                digit = i + 1;
+            }
+        }
+        System.out.println("The maximum names of the current config is " +
+                            minSpace);
+        System.out.print("The space is limited by length " + digit);
+    }
+
     /**
      * The main method is used for testing user name generation.
      * It prints out all the user names generated and the
      * percentages of user names for each length. It also
      * reports duplicate users, whenever found.
      */
-    public static void main (String[] args) throws Exception {
+    public static void main(String[] args) throws Exception {
+        if (args.length == 0) {
+            spaceSize();
+        } else {
         long limit = Long.parseLong(args[0]) * 100;
 	FileWriter tmpfile;
-	if (args.length <= 1)
+            if (args.length <= 1) {
 		tmpfile = new FileWriter("/tmp/users.txt");
-	else    tmpfile = new FileWriter(args[1]);
+            } else {
+                tmpfile = new FileWriter(args[1]);
+            }
+            testGen(limit, tmpfile);
+        }
+    }
 		
-        int[] nameLength = new int[8];
+    private static void testGen(long limit, FileWriter tmpfile)
+            throws IOException {
+        int[] nameLength = new int[length_percent.length];
         HashSet<String> set = new HashSet<String>((int) (limit - 1));
-
         for (long i = 1; i <= limit; i++) {
             String name = getUserName(i);
             System.out.println("User " + i + ": " + name);
             tmpfile.write(name + "\n");
             ++nameLength[name.length() - 1];
-            if (!set.add(name))
+            if (!set.add(name)) {
                 System.out.println("Alert! Duplicate name: " + name);
         }
+        }
 	tmpfile.close();
         long count = 0;
         for (int i = 0; i < nameLength.length; i++) {
@@ -243,7 +339,7 @@
         }
         for (int i = 0; i < nameLength.length; i++) {
             System.out.println("Length " + (i + 1) + ", count " +
-                    nameLength[i] + ", " + (100d * nameLength[i]/count) + "%");
+                   nameLength[i] + ", " + (100d * nameLength[i] / count) + "%");
         }
     }
 }