You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@johnzon.apache.org by rm...@apache.org on 2022/08/08 14:48:45 UTC

[johnzon] branch master updated: adding enum to reserved words for pojo generator and being stricter on forbidden starting chars for fields

This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/johnzon.git


The following commit(s) were added to refs/heads/master by this push:
     new af7a399c adding enum to reserved words for pojo generator and being stricter on forbidden starting chars for fields
af7a399c is described below

commit af7a399ce876d98be44f60d7834c0e47f0d07530
Author: Romain Manni-Bucau <rm...@gmail.com>
AuthorDate: Mon Aug 8 16:48:38 2022 +0200

    adding enum to reserved words for pojo generator and being stricter on forbidden starting chars for fields
---
 .../java/org/apache/johnzon/jsonschema/generator/PojoGenerator.java    | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/generator/PojoGenerator.java b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/generator/PojoGenerator.java
index 28dbd705..62bb2ccb 100644
--- a/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/generator/PojoGenerator.java
+++ b/johnzon-jsonschema/src/main/java/org/apache/johnzon/jsonschema/generator/PojoGenerator.java
@@ -537,7 +537,7 @@ public class PojoGenerator {
         if (Character.isDigit(name.charAt(0))) {
             name = "a" + name;
         }
-        while (name.startsWith("_")) {
+        while (!name.isEmpty() && (!Character.isJavaIdentifierStart(name.charAt(0)) || name.charAt(0) == '_' || name.charAt(0) == '$')) {
             name = name.substring(1);
         }
         if (name.isEmpty()) {
@@ -559,6 +559,7 @@ public class PojoGenerator {
                 "do".equals(name) || "while".equals(name) ||
                 "for".equals(name) ||
                 "if".equals(name) || "else".equals(name) ||
+                "enum".equals(name) ||
                 "int".equals(name) ||
                 "long".equals(name) ||
                 "float".equals(name) ||