This commit is contained in:
@@ -197,47 +197,50 @@ public final class JsonByteBufferWriter extends JsonWriter {
|
||||
writeNull();
|
||||
return;
|
||||
}
|
||||
final char[] chs = Utility.charArray(value);
|
||||
int len = 0;
|
||||
for (char ch : chs) {
|
||||
ByteBuffer buffer = this.buffers[index];
|
||||
expand(1);
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '"');
|
||||
|
||||
for (char ch : Utility.charArray(value)) {
|
||||
switch (ch) {
|
||||
case '\n': len += 2;
|
||||
case '\n': expand(2);
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '\\');
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) 'n');
|
||||
break;
|
||||
case '\r': len += 2;
|
||||
case '\r': expand(2);
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '\\');
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) 'r');
|
||||
break;
|
||||
case '\t': len += 2;
|
||||
case '\t': expand(2);
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '\\');
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) 't');
|
||||
break;
|
||||
case '\\': len += 2;
|
||||
case '\\': expand(2);
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '\\');
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '\\');
|
||||
break;
|
||||
case '"': len += 2;
|
||||
case '"': expand(2);
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '\\');
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '"');
|
||||
break;
|
||||
default: len++;
|
||||
default: buffer = putChar(buffer, ch);
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (len == chs.length) {
|
||||
writeTo(true, chs, 0, len);
|
||||
} else {
|
||||
StringBuilder sb = new StringBuilder(value.length() * 2);
|
||||
for (char ch : chs) {
|
||||
switch (ch) {
|
||||
case '\n': sb.append("\\n");
|
||||
break;
|
||||
case '\r': sb.append("\\r");
|
||||
break;
|
||||
case '\t': sb.append("\\t");
|
||||
break;
|
||||
case '\\': sb.append("\\\\");
|
||||
break;
|
||||
case '"': sb.append("\\\"");
|
||||
break;
|
||||
default: sb.append(ch);
|
||||
break;
|
||||
}
|
||||
}
|
||||
char[] cs = Utility.charArray(sb);
|
||||
writeTo(true, cs, 0, sb.length());
|
||||
}
|
||||
expand(1);
|
||||
if (!buffer.hasRemaining()) buffer = nextByteBuffer();
|
||||
buffer.put((byte) '"');
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -85,8 +85,8 @@ final class FilterBeanNode extends FilterNode {
|
||||
final String jc = joinCol.column().isEmpty() ? secinfo.getPrimary().field() : joinCol.column();
|
||||
if (first) {
|
||||
joinsb.append(" ").append(joinCol.type().name()).append(" JOIN ").append(secinfo.getTable())
|
||||
.append(" ").append(alias).append(" ON a.# = ").append(alias).append(".")
|
||||
.append(secinfo.getSQLColumn(jc));
|
||||
.append(" ").append(alias).append(" ON a.").append(secinfo.getSQLColumn(jc)).append(" = ")
|
||||
.append(alias).append(".").append(secinfo.getSQLColumn(jc));
|
||||
}
|
||||
newnode.foreignEntity = secinfo;
|
||||
newnode.tabalis = alias;
|
||||
@@ -235,8 +235,7 @@ final class FilterBeanNode extends FilterNode {
|
||||
if (joinSQL == null || !first) return super.createFilterSQLExpress(first, info, bean);
|
||||
StringBuilder sb = super.createFilterSQLExpress(first, info, bean);
|
||||
if (joinSQL == null) return sb;
|
||||
String jsql = joinSQL.replace("#", info.getSQLColumn(byjoinColumn));
|
||||
return new StringBuilder(sb.length() + jsql.length()).append(jsql).append(sb);
|
||||
return new StringBuilder(sb.length() + joinSQL.length()).append(joinSQL).append(sb);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user