RepreZen / KaiZen-OpenApi-Parser

High-performance Parser, Validator, and Java Object Model for OpenAPI 3.x
130 stars 31 forks source link

jsonoverlay 3.0.2-201808070418 causing AbstractMethodErrors #179

Closed scottmore closed 6 years ago

scottmore commented 6 years ago

First off thanks for developing and open sourcing this parser! It's been working great.

I was surprised today to run into exceptions with an Open API spec that didn't change from yesterday. The exception occurs in jsonoverlay 3.0.2 which looks like it was just pushed up to maven central.

I can get around this by pegging the jsonoverlay dependency in gradle, but it would be nice to have the KaiZen pom file not grab the latest jsonoverlay, instead having a dependency to an explicit version so it doesn't unexpectedly change behavior across builds.

Stack trace is below. Let me know if you would rather I post an issue to jsonoverlay project. Spec file itself is pretty vanilla.

Caused by: java.lang.AbstractMethodError: com.reprezen.jsonoverlay.JsonOverlay._getFactory()Lcom/reprezen/jsonoverlay/OverlayFa at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:36) at com.reprezen.jsonoverlay.PropertiesOverlay._addChild(PropertiesOverlay.java:221) at com.reprezen.jsonoverlay.PropertiesOverlay._createScalar(PropertiesOverlay.java:206) at com.reprezen.kaizen.oasparser.ovl3.MediaTypeImpl._elaborateJson(MediaTypeImpl.java:213) at com.reprezen.jsonoverlay.PropertiesOverlay._elaborate(PropertiesOverlay.java:177) at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:50) at com.reprezen.jsonoverlay.MapOverlay.fillWithJson(MapOverlay.java:82) at com.reprezen.jsonoverlay.MapOverlay._elaborate(MapOverlay.java:70) at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:50) at com.reprezen.jsonoverlay.PropertiesOverlay._addChild(PropertiesOverlay.java:221) at com.reprezen.jsonoverlay.PropertiesOverlay._createMap(PropertiesOverlay.java:215) at com.reprezen.kaizen.oasparser.ovl3.RequestBodyImpl._elaborateJson(RequestBodyImpl.java:175) at com.reprezen.jsonoverlay.PropertiesOverlay._elaborate(PropertiesOverlay.java:177) at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:50) at com.reprezen.jsonoverlay.PropertiesOverlay._addChild(PropertiesOverlay.java:221) at com.reprezen.jsonoverlay.PropertiesOverlay._createScalar(PropertiesOverlay.java:206) at com.reprezen.kaizen.oasparser.ovl3.OperationImpl._elaborateJson(OperationImpl.java:609) at com.reprezen.jsonoverlay.PropertiesOverlay._elaborate(PropertiesOverlay.java:177) at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:50) at com.reprezen.jsonoverlay.MapOverlay.fillWithJson(MapOverlay.java:82) at com.reprezen.jsonoverlay.MapOverlay._elaborate(MapOverlay.java:70) at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:50) at com.reprezen.jsonoverlay.PropertiesOverlay._addChild(PropertiesOverlay.java:221) at com.reprezen.jsonoverlay.PropertiesOverlay._createMap(PropertiesOverlay.java:215) at com.reprezen.kaizen.oasparser.ovl3.PathImpl._elaborateJson(PathImpl.java:401) at com.reprezen.jsonoverlay.PropertiesOverlay._elaborate(PropertiesOverlay.java:177) at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:50) at com.reprezen.jsonoverlay.MapOverlay.fillWithJson(MapOverlay.java:82) at com.reprezen.jsonoverlay.MapOverlay._elaborate(MapOverlay.java:70) at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:50) at com.reprezen.jsonoverlay.PropertiesOverlay._addChild(PropertiesOverlay.java:221) at com.reprezen.jsonoverlay.PropertiesOverlay._createMap(PropertiesOverlay.java:215) at com.reprezen.kaizen.oasparser.ovl3.OpenApi3Impl._elaborateJson(OpenApi3Impl.java:951) at com.reprezen.jsonoverlay.PropertiesOverlay._elaborate(PropertiesOverlay.java:177) at com.reprezen.jsonoverlay.OverlayFactory.create(OverlayFactory.java:50) at com.reprezen.kaizen.oasparser.OpenApiParser.parse(OpenApiParser.java:101) at com.reprezen.kaizen.oasparser.OpenApiParser.parse(OpenApiParser.java:84) at com.reprezen.kaizen.oasparser.OpenApi3Parser.parse(OpenApi3Parser.java:68) at com.reprezen.kaizen.oasparser.OpenApi3Parser.parse(OpenApi3Parser.java:21) at com.reprezen.kaizen.oasparser.OpenApiParser.parse(OpenApiParser.java:60) at com.reprezen.kaizen.oasparser.OpenApi3Parser.parse(OpenApi3Parser.java:48)

andylowry commented 6 years ago

@scottmore Apologies, that's a versioning error on my part. The new JsonOverlay version is not backward compatible, so it should have been a 4.0 release. The good news is that a new KaiZen Parser release that works with that JsonOverlay release is is on its way to Maven Central, so when that happens you should be back in business.

I'll try to be more careful with this in future releases.

andylowry commented 6 years ago

@scottmore I'm seeing the new KaiZen Parser release on maven central now - 3.0.1-201808070540

Please try again and close this issue if it all checks out now.

My apologies for the screw-up.

scottmore commented 6 years ago

@andylowry I confirmed I'm running again with 3.0.1-201808070540. Thanks for the quick response. Closing this issue.