fix: 将解决并发问题的方式由锁改为局部变量

pull/241/head
“yaya” 1 year ago
parent 42cf6b2955
commit 3e08deb50e

@ -16,7 +16,6 @@ import java.nio.file.Files;
* @description: * @description:
*/ */
public class EncodingDetects { public class EncodingDetects {
private static UniversalDetector detector = new UniversalDetector(null);
private static final int DEFAULT_LENGTH = 4096; private static final int DEFAULT_LENGTH = 4096;
private static final int LIMIT = 50; private static final int LIMIT = 50;
private static final Logger logger = LoggerFactory.getLogger(EncodingDetects.class); private static final Logger logger = LoggerFactory.getLogger(EncodingDetects.class);
@ -40,13 +39,10 @@ public class EncodingDetects {
if (content != null && content.length <= LIMIT) { if (content != null && content.length <= LIMIT) {
return SimpleEncodingDetects.getJavaEncode(content); return SimpleEncodingDetects.getJavaEncode(content);
} }
String charsetName; UniversalDetector detector = new UniversalDetector(null);
synchronized (EncodingDetects.class) { detector.handleData(content, 0, content.length);
detector.reset(); detector.dataEnd();
detector.handleData(content, 0, content.length); String charsetName = detector.getDetectedCharset();
detector.dataEnd();
charsetName = detector.getDetectedCharset();
}
if (charsetName == null) { if (charsetName == null) {
charsetName = Charset.defaultCharset().name(); charsetName = Charset.defaultCharset().name();
} }

Loading…
Cancel
Save