Skip to content

Commit

Permalink
Fix for #3887
Browse files Browse the repository at this point in the history
  • Loading branch information
Anmol Deep committed Apr 9, 2015
1 parent e7a0967 commit ebe3bd6
Showing 1 changed file with 11 additions and 19 deletions.
Expand Up @@ -107,25 +107,19 @@ public OSchemaShared(boolean clustersCanNotBeSharedAmongClasses) {
this.clustersCanNotBeSharedAmongClasses = clustersCanNotBeSharedAmongClasses;
}

public static Character checkClassNameIfValid(String iName) {
public static boolean checkClassNameIfValid(String iName) {
if (iName == null)
throw new IllegalArgumentException("Name is null");

iName = iName.trim();

final int nameSize = iName.length();

if (nameSize == 0)
if (iName.length() == 0)
throw new IllegalArgumentException("Name is empty");

for (int i = 0; i < nameSize; ++i) {
final char c = iName.charAt(i);
if (c == ':' || c == ',' || c == ';' || c == ' ' || c == '%' || c == '@' || c == '=')
// INVALID CHARACTER
return c;
}

return null;
String pattern = "^[_\\p{L}][_\\p{L}\\p{N}]*";
if (iName.matches(pattern))
return true;
else
return false;
}

public static Character checkFieldNameIfValid(String iName) {
Expand Down Expand Up @@ -358,9 +352,8 @@ public OClass createAbstractClass(final String className, final OClass superClas
}

public OClass createClass(final String className, final OClass superClass, int[] clusterIds) {
final Character wrongCharacter = OSchemaShared.checkClassNameIfValid(className);
if (wrongCharacter != null)
throw new OSchemaException("Invalid class name found. Character '" + wrongCharacter + "' cannot be used in class name '"
if (!OSchemaShared.checkClassNameIfValid(className))
throw new OSchemaException("Invalid class name found. Only UNICODE AlphaNumeric characters can be used in class name '"
+ className + "'");

OClass result;
Expand Down Expand Up @@ -988,9 +981,8 @@ private OClass createClassInternal(final String className, final OClass superCla
if (Character.isDigit(className.charAt(0)))
throw new OSchemaException("Found invalid class name. Cannot start with numbers");

final Character wrongCharacter = checkClassNameIfValid(className);
if (wrongCharacter != null)
throw new OSchemaException("Found invalid class name. Character '" + wrongCharacter + "' cannot be used in class name.");
if (!checkClassNameIfValid(className))
throw new OSchemaException("Invalid class name found. Only UNICODE AlphaNumeric characters can be used in class name.");

final ODatabaseDocumentInternal database = getDatabase();
final OStorage storage = database.getStorage();
Expand Down

0 comments on commit ebe3bd6

Please sign in to comment.