Merge remote-tracking branch 'origin/master'
authorVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Thu, 8 Jan 2015 17:42:47 +0000 (18:42 +0100)
committerVladimir Krivosheev <vladimir.krivosheev@jetbrains.com>
Thu, 8 Jan 2015 17:42:47 +0000 (18:42 +0100)
platform/script-debugger/protocol/protocol-reader-runtime/src/org/jetbrains/jsonProtocol/JsonReaders.java

index ea324fbb6d37bb80d841adcc9639dc90c7c0a999..5f7c4f744999641ab28585549b82501440572e85 100644 (file)
@@ -38,6 +38,7 @@ public final class JsonReaders {
     }
   }
 
+  // Don't use Guava CaseFormat.*! ObjectWithURL must be converted to OBJECT_WITH_URL
   public static String convertRawEnumName(@NotNull String enumValue) {
     StringBuilder builder = new StringBuilder(enumValue.length() + 4);
     boolean prevIsLowerCase = false;
@@ -50,10 +51,11 @@ public final class JsonReaders {
 
       if (Character.isUpperCase(c)) {
         // second check handle "CSPViolation" (transform to CSP_VIOLATION)
-        if (prevIsLowerCase || ((i + 1) < enumValue.length() && Character.isLowerCase(enumValue.charAt(i + 1)))) {
+        if (prevIsLowerCase || (i != 0 && (i + 1) < enumValue.length() && Character.isLowerCase(enumValue.charAt(i + 1)))) {
           builder.append('_');
         }
         builder.append(c);
+        prevIsLowerCase = false;
       }
       else {
         builder.append(Character.toUpperCase(c));