Closed tedepstein closed 8 years ago
To clarify: validation errors in the Swagger Spec should not result in a modal dialog appearing when we the user opens the file. The fact that the same error is reported twice in the dialog box is just another, smaller issue. The main issue is, we should not have this kind of exception reporting when trying to open a file.
I think this has to do with the introduction of live validation (see #38), error markers are not reset when file is reopen.
I was able to reproduce this issue too on the latest RepreZen master build (RepreZen+SwagEdit integration). The dialog is not shown when you create the error in the editor (I just pasted the code), but it appears when you close and open the SwagEdit editor.
I don't have any dialog box showing up when reopening the file, and don't have the same error twice, but 2 different errors.
@ghillairet , I reproduced it on a RepreZen build with SwagEdit integration, e.g. http://products.modelsolv.com:8111/repository/download/bt5/6113:id/product/com.modelsolv.reprezen.product-macosx.cocoa.x86_64.zip . Can you please try it on this build? If you still don't see an error box I can show it to you at tomorrow's call.
If you look at the log, looks like the error is not catch by the swagedit live plugin in class SwagEditorSource (line 233).
Caused by: mapping values are not allowed here
in 'reader', line 23, column 18:
in: query
^
at com.fasterxml.jackson.dataformat.yaml.snakeyaml.scanner.ScannerImpl.fetchValue(ScannerImpl.java:871)
at com.fasterxml.jackson.dataformat.yaml.snakeyaml.scanner.ScannerImpl.fetchMoreTokens(ScannerImpl.java:360)
at com.fasterxml.jackson.dataformat.yaml.snakeyaml.scanner.ScannerImpl.checkToken(ScannerImpl.java:226)
at com.fasterxml.jackson.dataformat.yaml.snakeyaml.parser.ParserImpl$ParseBlockMappingKey.produce(ParserImpl.java:558)
at com.fasterxml.jackson.dataformat.yaml.snakeyaml.parser.ParserImpl.peekEvent(ParserImpl.java:158)
at com.fasterxml.jackson.dataformat.yaml.snakeyaml.parser.ParserImpl.getEvent(ParserImpl.java:168)
at com.fasterxml.jackson.dataformat.yaml.YAMLParser.nextToken(YAMLParser.java:331)
at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:218)
at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeArray(JsonNodeDeserializer.java:267)
at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:227)
at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:224)
at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:224)
at com.fasterxml.jackson.databind.deser.std.BaseNodeDeserializer.deserializeObject(JsonNodeDeserializer.java:224)
at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:62)
at com.fasterxml.jackson.databind.deser.std.JsonNodeDeserializer.deserialize(JsonNodeDeserializer.java:14)
at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3562)
at com.fasterxml.jackson.databind.ObjectMapper.readTree(ObjectMapper.java:2136)
at com.modelsolv.reprezen.swagedit.live.SwagEditorSource$SwagEditorState.getSwaggerJson(SwagEditorSource.java:233)
at com.modelsolv.reprezen.swagedit.live.SwagEditorSource$SwagEditorState.hasErrors(SwagEditorSource.java:226)
at com.modelsolv.reprezen.gentemplates.common.ui.view.BrowserViewPage.sourceChanged(BrowserViewPage.java:307)
at com.modelsolv.reprezen.swagedit.live.SwagEditorSource$DocumentIdleListenerAdapter.editorIdle(SwagEditorSource.java:151)
at org.dadacoalition.yedit.editor.IdleTimer$2.run(IdleTimer.java:147)
at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
... 23 more
Fix in RepreZen PR 813 has passed QA.
I somehow (not sure how) introduced a "mapping values not allowed here" error in my swagger spec. When I closed and re-opened the document, it showed a dialog box with the same error shown twice:
Here's the model that produced the error: