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