You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@lucene.apache.org by us...@apache.org on 2013/09/13 14:06:26 UTC

svn commit: r1522888 - /lucene/dev/branches/lucene5207/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptCompiler.java

Author: uschindler
Date: Fri Sep 13 12:06:26 2013
New Revision: 1522888

URL: http://svn.apache.org/r1522888
Log:
LUCENE-5207: Remove stupidity... :(

Modified:
    lucene/dev/branches/lucene5207/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptCompiler.java

Modified: lucene/dev/branches/lucene5207/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptCompiler.java
URL: http://svn.apache.org/viewvc/lucene/dev/branches/lucene5207/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptCompiler.java?rev=1522888&r1=1522887&r2=1522888&view=diff
==============================================================================
--- lucene/dev/branches/lucene5207/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptCompiler.java (original)
+++ lucene/dev/branches/lucene5207/lucene/expressions/src/java/org/apache/lucene/expressions/js/JavascriptCompiler.java Fri Sep 13 12:06:26 2013
@@ -116,6 +116,8 @@ public class JavascriptCompiler {
     }
   }
   
+  private static final int MAX_CLASS_NAME_LENGTH = 1024;
+  
   private static final String EXPRESSION_CLASS_PREFIX = JavascriptCompiler.class.getPackage().getName() + ".Expr_";
   private static final String COMPILED_EXPRESSION_INTERNAL = Type.getInternalName(Expression.class);
   
@@ -184,9 +186,9 @@ public class JavascriptCompiler {
   }
   
   private String createClassName(String sourceText) {
-    final StringBuilder sb = new StringBuilder(sourceText.length() / 2);
+    final StringBuilder sb = new StringBuilder(Math.min(sourceText.length() / 2, MAX_CLASS_NAME_LENGTH));
     boolean wasIdentifierPart = true;
-    for (int i = 0, c = sourceText.length(); i < c; i++) {
+    for (int i = 0, c = sourceText.length(); i < c && sb.length() < MAX_CLASS_NAME_LENGTH; i++) {
       final char ch = sourceText.charAt(i);
       if (Character.isJavaIdentifierPart(ch)) {
         sb.append(ch);
@@ -196,8 +198,6 @@ public class JavascriptCompiler {
         wasIdentifierPart = false;
       }
     }
-    // limit maximum length, theoretically 65536 is allowed in constant pool (in UTF-8 format).
-    if (sb.length() > 1204) sb.setLength(1024);
     // remove trailing underscores
     for (int i = sb.length() - 1; i >= 0; i--) {
       if (sb.charAt(i) == '_') {