@@ -525,13 +525,18 @@ public Json jsona(String... fieldExpressions) {
525525 * {@link Faker#address()}'s {@link net.datafaker.Address#streetName()}.
526526 */
527527 protected String resolveExpression (String expression , Object current , Faker root ) {
528+ if (expression .indexOf ('}' ) == -1 || !expression .contains ("#{" )) {
529+ return expression ;
530+ }
528531 List <String > expressions = splitExpressions (expression );
529532 List <Supplier <String >> expressionSuppliers = new ArrayList <>(expressions .size ());
530533 for (int i = 0 ; i < expressions .size (); i ++) {
531534 // odd are expressions, even are not expressions, just strings
532535 if (i % 2 == 0 ) {
533536 final int index = i ;
534- expressionSuppliers .add (() -> expressions .get (index ));
537+ if (!expressions .get (index ).isEmpty ()) {
538+ expressionSuppliers .add (() -> expressions .get (index ));
539+ }
535540 continue ;
536541 }
537542 String expr = expressions .get (i );
@@ -611,7 +616,9 @@ private static List<String> splitExpressions(String expression) {
611616 i ++;
612617 }
613618 }
614- result .add (start < expression .length () ? expression .substring (start ) : "" );
619+ if (start < expression .length ()) {
620+ result .add (expression .substring (start ));
621+ }
615622 EXPRESSION_2_SPLITTED .put (expression , result );
616623 return result ;
617624 }
@@ -630,6 +637,9 @@ private static List<String> splitExpressions(String expression) {
630637 private Object resolveExpression (String directive , String [] args , Object current , Faker root ) {
631638 // name.name (resolve locally)
632639 // Name.first_name (resolve to faker.name().firstName())
640+ if (directive .trim ().isEmpty ()) {
641+ return directive ;
642+ }
633643 final boolean dotDirective = isDotDirective (directive );
634644 final String simpleDirective = (dotDirective || current == null )
635645 ? directive
0 commit comments