Skip to content

Commit f042b6e

Browse files
committed
解决 Demo 注册接口调用报错 parser.newSuccessResult 及 connectionMap.get 报错 NPE
1 parent 29c594b commit f042b6e

File tree

4 files changed

+102
-55
lines changed

4 files changed

+102
-55
lines changed

src/main/java/apijson/framework/APIJSONController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,7 @@ public String router(String method, String tag, Map<String, String> params, Stri
600600
}
601601

602602
if (parser.isNeedVerifyContent()) {
603-
Verifier<T, M, L> verifier = creator.createVerifier();
603+
Verifier<T, M, L> verifier = parser.getVerifier();
604604

605605
//获取指定的JSON结构 <<<<<<<<<<<<
606606
Map<String, Object> target = parser.getStructure("Request", method.toUpperCase(), tag, version);
@@ -610,7 +610,7 @@ public String router(String method, String tag, Map<String, String> params, Stri
610610
}
611611

612612
//M clone 浅拷贝没用,Structure.parse 会导致 structure 里面被清空,第二次从缓存里取到的就是 {}
613-
verifier.verifyRequest(requestMethod, "", JSON.createJSONObject(target), rawReq, 0, null, null, creator);
613+
verifier.verifyRequest(requestMethod, "", JSON.createJSONObject(target), rawReq, 0, null, null);
614614
}
615615

616616
M apijsonReq = JSON.parseObject(apijson);

src/main/java/apijson/framework/APIJSONVerifier.java

Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -709,12 +709,12 @@ public static void test() throws Exception {
709709
* @throws Exception
710710
*/
711711
public static <T extends Object, M extends Map<String, Object>, L extends List<Object>> void testStructure() throws Exception {
712-
SQLCreator<T, M, L> creator = (SQLCreator<T, M, L>) APIJSONApplication.DEFAULT_APIJSON_CREATOR;
712+
Parser<T, M, L> parser = APIJSONApplication.createParser();
713713

714714
M request;
715715
try {
716716
request = JSON.parseObject("{\"Comment\":{\"userId\":0}}");
717-
Log.d(TAG, "test verifyRequest = " + AbstractVerifier.verifyRequest(RequestMethod.POST, "", JSON.parseObject(requestConfig), request, creator));
717+
Log.d(TAG, "test verifyRequest = " + AbstractVerifier.verifyRequest(RequestMethod.POST, "", JSON.parseObject(requestConfig), request, parser));
718718
} catch (Throwable e) {
719719
if (e instanceof IllegalArgumentException == false || "POST请求,Comment 里面不能缺少 momentId 等[userId,momentId,content]内的任何字段!".equals(e.getMessage()) == false) {
720720
throw e;
@@ -723,7 +723,7 @@ public static <T extends Object, M extends Map<String, Object>, L extends List<O
723723
}
724724
try {
725725
request = JSON.parseObject("{\"Comment\":{\"id\":0, \"userId\":0, \"momentId\":0, \"content\":\"apijson\"}}");
726-
Log.d(TAG, "test verifyRequest = " + AbstractVerifier.verifyRequest(RequestMethod.POST, "", JSON.parseObject(requestConfig), request, creator));
726+
Log.d(TAG, "test verifyRequest = " + AbstractVerifier.verifyRequest(RequestMethod.POST, "", JSON.parseObject(requestConfig), request, parser));
727727
} catch (Throwable e) {
728728
if (e instanceof IllegalArgumentException == false || "POST请求,/Comment 不能传 id !".equals(e.getMessage()) == false) {
729729
throw e;
@@ -732,7 +732,7 @@ public static <T extends Object, M extends Map<String, Object>, L extends List<O
732732
}
733733
try {
734734
request = JSON.parseObject("{\"Comment\":{\"userId\":0, \"momentId\":0, \"content\":\"apijson\"}}");
735-
Log.d(TAG, "test verifyRequest = " + AbstractVerifier.verifyRequest(RequestMethod.POST, "", JSON.parseObject(requestConfig), request, creator));
735+
Log.d(TAG, "test verifyRequest = " + AbstractVerifier.verifyRequest(RequestMethod.POST, "", JSON.parseObject(requestConfig), request, parser));
736736
AssertUtil.assertEqual("OWNER", getString(request, "@role"));
737737
Log.d(TAG, "测试 Operation.INSERT 不存在字段时插入:成功");
738738
} catch (Throwable e) {
@@ -743,31 +743,31 @@ public static <T extends Object, M extends Map<String, Object>, L extends List<O
743743
M response;
744744
try {
745745
response = JSON.parseObject("{\"User\":{\"userId\":0}}");
746-
Log.d(TAG, "test verifyResponse = " + AbstractVerifier.verifyResponse(RequestMethod.GET, "", JSON.parseObject(responseConfig), response, creator, null));
746+
Log.d(TAG, "test verifyResponse = " + AbstractVerifier.verifyResponse(RequestMethod.GET, "", JSON.parseObject(responseConfig), response, parser, null));
747747
AssertUtil.assertEqual("verifyURLList(pictureList)", getJSONObject(response, "User").get("verifyURLList-()"));
748748
Log.d(TAG, "测试 Operation.UPDATE 强制插入/替换:成功");
749749
} catch (Throwable e) {
750750
throw e;
751751
}
752752
try {
753753
response = JSON.parseObject("{\"User\":{\"userId\":0, \"phone\":\"12345678\"}}");
754-
Log.d(TAG, "test verifyResponse = " + AbstractVerifier.verifyResponse(RequestMethod.GET, "", JSON.parseObject(responseConfig), response, creator, null));
754+
Log.d(TAG, "test verifyResponse = " + AbstractVerifier.verifyResponse(RequestMethod.GET, "", JSON.parseObject(responseConfig), response, parser, null));
755755
AssertUtil.assertEqual(null, getJSONObject(response, "User").get("phone"));
756756
Log.d(TAG, "测试 Operation.REMOVE 强制移除:成功");
757757
} catch (Throwable e) {
758758
throw e;
759759
}
760760
try {
761761
response = JSON.parseObject("{\"User\":{\"userId\":0, \"phone\":\"12345678\", \"sex\":1}}");
762-
Log.d(TAG, "test verifyResponse = " + AbstractVerifier.verifyResponse(RequestMethod.GET, "", JSON.parseObject(responseConfig), response, creator, null));
762+
Log.d(TAG, "test verifyResponse = " + AbstractVerifier.verifyResponse(RequestMethod.GET, "", JSON.parseObject(responseConfig), response, parser, null));
763763
AssertUtil.assertEqual("api", getJSONObject(response, "User").get("name"));
764764
Log.d(TAG, "测试 Operation.INSERT 不存在字段时插入:成功");
765765
} catch (Throwable e) {
766766
throw e;
767767
}
768768
try {
769769
response = JSON.parseObject("{\"User\":{\"id\":0, \"name\":\"tommy\", \"phone\":\"12345678\", \"sex\":1}}");
770-
Log.d(TAG, "test verifyResponse = " + AbstractVerifier.verifyResponse(RequestMethod.GET, "", JSON.parseObject(responseConfig), response, creator, null));
770+
Log.d(TAG, "test verifyResponse = " + AbstractVerifier.verifyResponse(RequestMethod.GET, "", JSON.parseObject(responseConfig), response, parser, null));
771771
AssertUtil.assertEqual(2, getJSONObject(response, "User").get("sex"));
772772
Log.d(TAG, "测试 Operation.REPLACE 存在字段时替换:成功");
773773
} catch (Throwable e) {
@@ -787,6 +787,20 @@ protected static void onServerError(String msg, boolean shutdown) throws ServerE
787787
}
788788
}
789789

790+
protected Parser<T, M, L> parser;
791+
@Override
792+
public Parser<T, M, L> getParser() {
793+
if (parser == null) {
794+
parser = createParser();
795+
}
796+
return parser;
797+
}
798+
799+
@Override
800+
public APIJSONVerifier<T, M, L> setParser(AbstractParser<T, M, L> parser) {
801+
this.parser = parser;
802+
return this;
803+
}
790804

791805
@SuppressWarnings("unchecked")
792806
@NotNull

src/main/java/apijson/framework/javax/APIJSONController.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -600,7 +600,7 @@ public String router(String method, String tag, Map<String, String> params, Stri
600600
}
601601

602602
if (parser.isNeedVerifyContent()) {
603-
Verifier<T, M, L> verifier = creator.createVerifier();
603+
Verifier<T, M, L> verifier = parser.getVerifier();
604604

605605
//获取指定的JSON结构 <<<<<<<<<<<<
606606
Map<String, Object> target = parser.getStructure("Request", method.toUpperCase(), tag, version);
@@ -610,7 +610,7 @@ public String router(String method, String tag, Map<String, String> params, Stri
610610
}
611611

612612
//M clone 浅拷贝没用,Structure.parse 会导致 structure 里面被清空,第二次从缓存里取到的就是 {}
613-
verifier.verifyRequest(requestMethod, "", JSON.createJSONObject(target), rawReq, 0, null, null, creator);
613+
verifier.verifyRequest(requestMethod, "", JSON.createJSONObject(target), rawReq, 0, null, null);
614614
}
615615

616616
M apijsonReq = JSON.parseObject(apijson);

0 commit comments

Comments
 (0)