[teiid-issues] [JBoss JIRA] (TEIID-5183) NPE in Swagger translator

dalex dalex (JIRA) issues at jboss.org
Wed Dec 20 10:59:00 EST 2017


    [ https://issues.jboss.org/browse/TEIID-5183?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13507531#comment-13507531 ] 

dalex dalex edited comment on TEIID-5183 at 12/20/17 10:58 AM:
---------------------------------------------------------------

Hi [~shawkins] thx a lot for the quick fix but it works for http://api.apis.guru/v2/specs/azure.com/redis/2017-10-01/ endpoint but doesn't work for the following ones (I applied all changes from the issue):
http://api.apis.guru/v2/specs/deutschebahn.com/fahrplan/v1/
http://api.apis.guru/v2/specs/googleapis.com/doubleclicksearch/v2/
http://api.apis.guru/v2/specs/magento.com/2.1/
let me demonstrate you stacktraces here for every endpoint:
1. http://api.apis.guru/v2/specs/deutschebahn.com/fahrplan/v1/ teiid throws out again NPE
{code:noformat}
2017-12-20 16:29:10,238 WARN  [org.teiid.RUNTIME] (Worker1_async-teiid-threads1)  TEIID50036 VDB test.1 model "mswagger" metadata failed to load. Reason:java.lang.NullPointerExceptio
n: java.lang.NullPointerException
        at org.teiid.metadata.MetadataFactory.setUUID(MetadataFactory.java:155)
        at org.teiid.metadata.MetadataFactory.addProcedure(MetadataFactory.java:403)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.addProcedure(SwaggerMetadataProcessor.java:240)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:199)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.ExecutionFactory.getMetadata(ExecutionFactory.java:961)
        at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:96)
        at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:62)
        at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55)
        at org.teiid.jboss.VDBService$6.run(VDBService.java:341)
        at org.teiid.jboss.VDBService$7.run(VDBService.java:392)
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code}

2. http://api.apis.guru/v2/specs/googleapis.com/doubleclicksearch/v2/ teiid throws out NPE but because of another circumstances:
{code:noformat}
2017-12-20 16:47:38,151 WARN  [org.teiid.RUNTIME] (Worker1_async-teiid-threads1)  TEIID50036 VDB test.1 model "mswagger" metadata failed to load. Reason:java.lang.NullPointerExceptio
n: java.lang.NullPointerException
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$3.execute(SwaggerMetadataProcessor.java:463)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:389)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:395)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.addProcedureParameters(SwaggerMetadataProcessor.java:482)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.addProcedure(SwaggerMetadataProcessor.java:254)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:199)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.ExecutionFactory.getMetadata(ExecutionFactory.java:961)
        at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:96)
        at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:62)
        at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55)
        at org.teiid.jboss.VDBService$6.run(VDBService.java:341)
        at org.teiid.jboss.VDBService$7.run(VDBService.java:392)
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code}

3. http://api.apis.guru/v2/specs/magento.com/2.1/ teiid throws out StackOverflowError, there is a cycle:
{code:noformat}
2017-12-20 16:51:03,475 ERROR [org.teiid.RUNTIME] (Worker1)  TEIID30021 Uncaught exception processing work: java.lang.StackOverflowError
        at org.teiid.metadata.ColumnSet.getColumnByName(ColumnSet.java:59)
        at org.teiid.metadata.MetadataFactory.addColumn(MetadataFactory.java:197)
        at org.teiid.metadata.MetadataFactory.addProcedureResultSetColumn(MetadataFactory.java:453)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$1.execute(SwaggerMetadataProcessor.java:286)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:383)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:58)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
{code}

Another thing, teiid at the moment uses the following swagger versions according to the root pom.xml:
<version.swagger-parser>1.0.10</version.swagger-parser>
<version.io.swagger>1.5.8</version.io.swagger>
but these libraries are being actively changed. The latest stable versions for io.swagger is 1.5.17 and for swagger-parser is 1.0.33. Can these versions be updated as well?


was (Author: dalex005):
Hi [~shawkins] thx a lot for the quick fix but it works for http://api.apis.guru/v2/specs/azure.com/redis/2017-10-01/ endpoint but doesn't work for the following ones (I applied all changes from the issue):
http://api.apis.guru/v2/specs/deutschebahn.com/fahrplan/v1/
http://api.apis.guru/v2/specs/googleapis.com/doubleclicksearch/v2/
http://api.apis.guru/v2/specs/magento.com/2.1/
let me demonstrate you stacktraces here for every endpoint:
1. http://api.apis.guru/v2/specs/deutschebahn.com/fahrplan/v1/ teiid throws out again NPE
{code:noformat}
2017-12-20 16:29:10,238 WARN  [org.teiid.RUNTIME] (Worker1_async-teiid-threads1)  TEIID50036 VDB test.1 model "mswagger" metadata failed to load. Reason:java.lang.NullPointerExceptio
n: java.lang.NullPointerException
        at org.teiid.metadata.MetadataFactory.setUUID(MetadataFactory.java:155)
        at org.teiid.metadata.MetadataFactory.addProcedure(MetadataFactory.java:403)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.addProcedure(SwaggerMetadataProcessor.java:240)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:199)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.ExecutionFactory.getMetadata(ExecutionFactory.java:961)
        at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:96)
        at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:62)
        at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55)
        at org.teiid.jboss.VDBService$6.run(VDBService.java:341)
        at org.teiid.jboss.VDBService$7.run(VDBService.java:392)
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code}

2. http://api.apis.guru/v2/specs/googleapis.com/doubleclicksearch/v2/ teiid throws out NPE but because of another circumstances:
{code:noformat}
2017-12-20 16:47:38,151 WARN  [org.teiid.RUNTIME] (Worker1_async-teiid-threads1)  TEIID50036 VDB test.1 model "mswagger" metadata failed to load. Reason:java.lang.NullPointerExceptio
n: java.lang.NullPointerException
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$3.execute(SwaggerMetadataProcessor.java:463)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:389)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:395)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.addProcedureParameters(SwaggerMetadataProcessor.java:482)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.addProcedure(SwaggerMetadataProcessor.java:254)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:199)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.ExecutionFactory.getMetadata(ExecutionFactory.java:961)
        at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:96)
        at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:62)
        at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55)
        at org.teiid.jboss.VDBService$6.run(VDBService.java:341)
        at org.teiid.jboss.VDBService$7.run(VDBService.java:392)
        at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
        at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
        at java.lang.Thread.run(Thread.java:745)
{code}

3. http://api.apis.guru/v2/specs/magento.com/2.1/ teiid throws out StackOverflowError, there is a cycle:
{code:noformat}
2017-12-20 16:51:03,475 ERROR [org.teiid.RUNTIME] (Worker1)  TEIID30021 Uncaught exception processing work: java.lang.StackOverflowError
        at org.teiid.metadata.ColumnSet.getColumnByName(ColumnSet.java:59)
        at org.teiid.metadata.MetadataFactory.addColumn(MetadataFactory.java:197)
        at org.teiid.metadata.MetadataFactory.addProcedureResultSetColumn(MetadataFactory.java:453)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$1.execute(SwaggerMetadataProcessor.java:286)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:383)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:58)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.walkProperties(SwaggerMetadataProcessor.java:438)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor.access$300(SwaggerMetadataProcessor.java:67)
        at org.teiid.translator.swagger.SwaggerMetadataProcessor$2.visit(SwaggerMetadataProcessor.java:403)
        at org.teiid.translator.swagger.PropertyVisitor.accept(PropertyVisitor.java:48)
{code}

Another thing, teiid at the moment uses the following swagger versions according to the root pom.xml:
<version.swagger-parser>1.0.10</version.swagger-parser>
<version.io.swagger>1.5.8</version.io.swagger>
but these libraries are being actively changed. The latest stable versions for io.swagger is 1.5.17 and for swagger-parser is 1.0.33. Can be these versions updated as well?

> NPE in Swagger translator
> -------------------------
>
>                 Key: TEIID-5183
>                 URL: https://issues.jboss.org/browse/TEIID-5183
>             Project: Teiid
>          Issue Type: Bug
>          Components: Misc. Connectors
>    Affects Versions: 9.3.4
>         Environment: teiid-9.3.4 on WildFly Full 10.0.0.Final (WildFly Core 2.0.10.Final)
>            Reporter: dalex dalex
>            Assignee: Steven Hawkins
>             Fix For: 10.1, 9.3.6, 10.0.2
>
>
> When using the http://api.apis.guru/v2/specs/azure.com/redis/2017-10-01/ link as an endpoint for swagger resource adapter Teiid throws up the following error message (in bootstrapping phase), though with http://petstore.swagger.io/v2 endpoint according to the https://teiid.gitbooks.io/documents/reference/Swagger_Translator.html documentation the translator works:
> {code:noformat}
> 2017-12-18 16:14:43,975 WARN  [org.teiid.RUNTIME] (Worker1_async-teiid-threads1)  TEIID50036 VDB test.1 model "mswagger" metadata failed to load. Reason:java.lang.NullPointerExceptio
> n: java.lang.NullPointerException
>         at org.teiid.metadata.MetadataFactory.setUUID(MetadataFactory.java:155)
>         at org.teiid.metadata.MetadataFactory.addProcedureParameter(MetadataFactory.java:421)
>         at org.teiid.translator.swagger.SwaggerMetadataProcessor.addProcedureParameters(SwaggerMetadataProcessor.java:560)
>         at org.teiid.translator.swagger.SwaggerMetadataProcessor.addProcedure(SwaggerMetadataProcessor.java:261)
>         at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:206)
>         at org.teiid.translator.swagger.SwaggerMetadataProcessor.process(SwaggerMetadataProcessor.java:74)
>         at org.teiid.translator.ExecutionFactory.getMetadata(ExecutionFactory.java:961)
>         at org.teiid.query.metadata.NativeMetadataRepository.getMetadata(NativeMetadataRepository.java:96)
>         at org.teiid.query.metadata.NativeMetadataRepository.loadMetadata(NativeMetadataRepository.java:62)
>         at org.teiid.query.metadata.ChainingMetadataRepository.loadMetadata(ChainingMetadataRepository.java:55)
>         at org.teiid.jboss.VDBService$6.run(VDBService.java:341)
>         at org.teiid.jboss.VDBService$7.run(VDBService.java:392)
>         at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:284)
>         at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:119)
>         at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:210)
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
>         at java.lang.Thread.run(Thread.java:745)
> {code}
> The http://api.apis.guru/v2/specs/azure.com/redis/2017-10-01/ endpoint supports swagger API according to the https://apis.guru/browse-apis/ link and I can see json output when requesting the http://api.apis.guru/v2/specs/azure.com/redis/2017-10-01/swagger.json link. Probably the NPE appears because of RefParameter type which is not handled in SwaggerMetadataProcessor.addProcedureParameters method which leads to name = null.



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the teiid-issues mailing list