Skip to content

Commit

Permalink
fix: fix endless while loop in JsonParser
Browse files Browse the repository at this point in the history
  • Loading branch information
Zurcusa committed Aug 14, 2024
1 parent 2909b29 commit 79cf5c5
Show file tree
Hide file tree
Showing 3 changed files with 15 additions and 14 deletions.
15 changes: 9 additions & 6 deletions src/main/java/com/limechain/utils/json/JsonParser.java
Original file line number Diff line number Diff line change
Expand Up @@ -142,12 +142,7 @@ private String parseString() {

private Object parseNumber() {
int start = index;
boolean isValidNumberChar = (Character.isDigit(json.charAt(index))
|| json.charAt(index) == '-'
|| json.charAt(index) == '.'
|| json.charAt(index) == 'e'
|| json.charAt(index) == 'E');
while (index < json.length() && isValidNumberChar) {
while (index < json.length() && isValidNumberChar()) {
index++;
}
String numberStr = json.substring(start, index).trim();
Expand All @@ -162,6 +157,14 @@ private Object parseNumber() {
}
}

private boolean isValidNumberChar() {
return (Character.isDigit(json.charAt(index))
|| json.charAt(index) == '-'
|| json.charAt(index) == '.'
|| json.charAt(index) == 'e'
|| json.charAt(index) == 'E');
}

private void skipWhitespace() {
while (index < json.length() && Character.isWhitespace(json.charAt(index))) {
index++;
Expand Down
7 changes: 3 additions & 4 deletions src/main/java/com/limechain/utils/json/JsonSerializer.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.limechain.utils.json;

import com.limechain.utils.DivLogger;
import lombok.extern.java.Log;

import java.lang.reflect.Array;
import java.lang.reflect.Field;
Expand All @@ -11,10 +11,9 @@
import java.util.Set;
import java.util.logging.Level;

@Log
public class JsonSerializer {

private static final DivLogger LOGGER = new DivLogger();

static String serializeToJson(Object object) {
StringBuilder jsonBuilder = new StringBuilder();
serializeToJsonInternal(jsonBuilder, object);
Expand Down Expand Up @@ -59,7 +58,7 @@ private static void appendObject(StringBuilder jsonBuilder, Object object) {
jsonBuilder.append(",");
}
} catch (IllegalAccessException e) {
LOGGER.log(Level.SEVERE, Arrays.toString(e.getStackTrace()));
log.log(Level.SEVERE, Arrays.toString(e.getStackTrace()));
}
}

Expand Down
7 changes: 3 additions & 4 deletions src/main/java/com/limechain/utils/json/ObjectMapper.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
package com.limechain.utils.json;

import com.limechain.utils.DivLogger;
import lombok.extern.java.Log;

import java.lang.reflect.Array;
import java.lang.reflect.Field;
Expand All @@ -11,10 +11,9 @@
import java.util.Map;
import java.util.logging.Level;

@Log
public class ObjectMapper {

private static final DivLogger LOGGER = new DivLogger();

private final boolean failOnUnknownField;

public ObjectMapper(boolean failOnUnknownField) {
Expand Down Expand Up @@ -53,7 +52,7 @@ private Field findField(Class<?> clazz, String fieldName) {
if (failOnUnknownField) {
throw new IllegalStateException("Field " + fieldName + " does not exist in " + clazz.getName());
} else {
LOGGER.log(Level.FINE, "Field " + fieldName + " does not exist in " + clazz.getName());
log.log(Level.FINE, "Field " + fieldName + " does not exist in " + clazz.getName());
return null;
}
}
Expand Down

0 comments on commit 79cf5c5

Please sign in to comment.