edeandrea / xjc-generation-gradle-plugin

A Gradle Plugin for generating JAXB Java sources using the XJC compiler
Apache License 2.0
21 stars 7 forks source link

Unable to Parse Schema when CommonTypes are Not Included #21

Closed nijogeorgep closed 4 years ago

nijogeorgep commented 4 years ago

I have few XSD files, which has commonTypes included in some of the files and some are not. `

`

There is also a binding file where this commontype is defined.

`

`

I'm not able to parse the files which have no common types included. The xjc parsing gives me the following error

[ant:xjc] [ERROR] "file:/Users/a-8845/Downloads/spring-gradle-app/src/main/resources/schemas/farelogix/common/CommonTypes.xsd" is not a part of this compilation. Is this a mistake for "file:/Users/a-8845/Downloads/spring-gradle-app/src/main/resources/schemas/farelogix/CCValidationRQ.xsd"? [ant:xjc] line 10 of file:/Users/a-8845/Downloads/spring-gradle-app/src/main/resources/schemas/farelogix/binding/bindings.xjb [ant:xjc]

How can i prevent this issue ? Can someone help?

edeandrea commented 4 years ago

Hi and thanks for using this project!

Would it be possible for you to provide a sample application showing what you are experiencing? There doesn't have to be any source code, just all the build files along with all the schemas/binding files.

From there it will be much easier to try and troubleshoot/help diagnose what the issue might be.

nijogeorgep commented 4 years ago

@edeandrea Thanks for the quick response. I'll be sharing a sample application with schema and build files. spring-gradle-app-share.zip

nijogeorgep commented 4 years ago

@edeandrea If I turn off schema validation while running, will it fix my issue and overwrite the already generated classes from CommonTypes?

edeandrea commented 4 years ago

Thanks @nijogeorgep for the information. Just to be transparent with you, it will probably be a few days before I get a chance to take a look at this. I maintain this on the side of my normal day job.

nijogeorgep commented 4 years ago

@edeandrea That's fine. I got through this issue. But now I'm stuck with another one. I could generate the schema for most of the files. But a single file is giving exception as following: `

Task :schemaGen_PNRCreateRQ.xsd FAILED Running XJC compiler for schema(s) /Users/a-8845/Downloads/spring-gradle-app/src/main/resources/schemas/farelogix/PNRCreateRQ.xsd Options: destdir = /Users/a-8845/Downloads/spring-gradle-app/build/generated extension = true language = XMLSCHEMA encoding = UTF-8 readonly = true Command Line Args: -nv

Execution failed for task ':schemaGen_PNRCreateRQ.xsd'.

java.lang.StringIndexOutOfBoundsException: String index out of range: 36

` Could you please advise or look into it?

edeandrea commented 4 years ago

Thanks @nijogeorgep for the information. What did you do/change to get past the initial issue? Can you provide that here so that i can work past it too?

Also when you run your build you can pass the -s switch which will tell Gradle to print out a full stack trace of the error. That may help you (and me!) troubleshoot this further.

nijogeorgep commented 4 years ago

@edeandrea The past issue was my mistake, my plugin configurations were incorrect. There was an error in adding a binding file for an XSD file. The current blocker is following

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':schemaGen_PNRCreateRQ.xsd'.
> java.lang.StringIndexOutOfBoundsException: String index out of range: 36

* Try:
Run with --info or --debug option to get more log output. Run with --scan to get full insights.

* Exception is:
org.gradle.api.tasks.TaskExecutionException: Execution failed for task ':schemaGen_PNRCreateRQ.xsd'.
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.lambda$executeIfValid$1(ExecuteActionsTaskExecuter.java:205)
    at org.gradle.internal.Try$Failure.ifSuccessfulOrElse(Try.java:263)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:203)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.execute(ExecuteActionsTaskExecuter.java:184)
    at org.gradle.api.internal.tasks.execution.CleanupStaleOutputsExecuter.execute(CleanupStaleOutputsExecuter.java:114)
    at org.gradle.api.internal.tasks.execution.FinalizePropertiesTaskExecuter.execute(FinalizePropertiesTaskExecuter.java:46)
    at org.gradle.api.internal.tasks.execution.ResolveTaskExecutionModeExecuter.execute(ResolveTaskExecutionModeExecuter.java:62)
    at org.gradle.api.internal.tasks.execution.SkipTaskWithNoActionsExecuter.execute(SkipTaskWithNoActionsExecuter.java:57)
    at org.gradle.api.internal.tasks.execution.SkipOnlyIfTaskExecuter.execute(SkipOnlyIfTaskExecuter.java:56)
    at org.gradle.api.internal.tasks.execution.CatchExceptionTaskExecuter.execute(CatchExceptionTaskExecuter.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.executeTask(EventFiringTaskExecuter.java:77)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:55)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter$1.call(EventFiringTaskExecuter.java:52)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:416)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$CallableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:406)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.call(DefaultBuildOperationExecutor.java:102)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.call(DelegatingBuildOperationExecutor.java:36)
    at org.gradle.api.internal.tasks.execution.EventFiringTaskExecuter.execute(EventFiringTaskExecuter.java:52)
    at org.gradle.execution.plan.LocalTaskNodeExecutor.execute(LocalTaskNodeExecutor.java:41)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:372)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$InvokeNodeExecutorsAction.execute(DefaultTaskExecutionGraph.java:359)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:352)
    at org.gradle.execution.taskgraph.DefaultTaskExecutionGraph$BuildOperationAwareExecutionAction.execute(DefaultTaskExecutionGraph.java:338)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.lambda$run$0(DefaultPlanExecutor.java:127)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.execute(DefaultPlanExecutor.java:191)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.executeNextNode(DefaultPlanExecutor.java:182)
    at org.gradle.execution.plan.DefaultPlanExecutor$ExecutorWorker.run(DefaultPlanExecutor.java:124)
    at org.gradle.internal.concurrent.ExecutorPolicy$CatchAndRecordFailures.onExecute(ExecutorPolicy.java:64)
    at org.gradle.internal.concurrent.ManagedExecutorImpl$1.run(ManagedExecutorImpl.java:48)
    at org.gradle.internal.concurrent.ThreadFactoryImpl$ManagedThreadRunnable.run(ThreadFactoryImpl.java:56)
Caused by: : java.lang.StringIndexOutOfBoundsException: String index out of range: 36
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:109)
    at org.gradle.api.internal.project.ant.BasicAntBuilder.nodeCompleted(BasicAntBuilder.java:80)
    at org.gradle.api.internal.project.ant.BasicAntBuilder.doInvokeMethod(BasicAntBuilder.java:107)
    at org.gradle.kotlin.dsl.GroovyBuilderScopeForGroovyObject.invoke(GroovyInteroperability.kt:266)
    at org.gradle.kotlin.dsl.GroovyBuilderScope$DefaultImpls.invoke(GroovyInteroperability.kt:233)
    at org.gradle.kotlin.dsl.GroovyBuilderScopeForGroovyObject.invoke(GroovyInteroperability.kt:263)
    at com.github.edeandrea.xjcplugin.type.Xjc.processXjc(Xjc.kt:199)
    at com.github.edeandrea.xjcplugin.type.Xjc.generateSources(Xjc.kt:156)
    at org.gradle.internal.reflect.JavaMethod.invoke(JavaMethod.java:104)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.doExecute(StandardTaskAction.java:49)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:42)
    at org.gradle.api.internal.project.taskfactory.StandardTaskAction.execute(StandardTaskAction.java:28)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:727)
    at org.gradle.api.internal.AbstractTask$TaskActionWrapper.execute(AbstractTask.java:694)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$3.run(ExecuteActionsTaskExecuter.java:568)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:402)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$RunnableBuildOperationWorker.execute(DefaultBuildOperationExecutor.java:394)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor$1.execute(DefaultBuildOperationExecutor.java:165)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:250)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.execute(DefaultBuildOperationExecutor.java:158)
    at org.gradle.internal.operations.DefaultBuildOperationExecutor.run(DefaultBuildOperationExecutor.java:92)
    at org.gradle.internal.operations.DelegatingBuildOperationExecutor.run(DelegatingBuildOperationExecutor.java:31)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeAction(ExecuteActionsTaskExecuter.java:553)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeActions(ExecuteActionsTaskExecuter.java:536)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.access$300(ExecuteActionsTaskExecuter.java:109)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.executeWithPreviousOutputFiles(ExecuteActionsTaskExecuter.java:276)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter$TaskExecution.execute(ExecuteActionsTaskExecuter.java:265)
    at org.gradle.internal.execution.steps.ExecuteStep.lambda$execute$1(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:33)
    at org.gradle.internal.execution.steps.ExecuteStep.execute(ExecuteStep.java:26)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:67)
    at org.gradle.internal.execution.steps.CleanupOutputsStep.execute(CleanupOutputsStep.java:36)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:49)
    at org.gradle.internal.execution.steps.ResolveInputChangesStep.execute(ResolveInputChangesStep.java:34)
    at org.gradle.internal.execution.steps.CancelExecutionStep.execute(CancelExecutionStep.java:43)
    at org.gradle.internal.execution.steps.TimeoutStep.executeWithoutTimeout(TimeoutStep.java:73)
    at org.gradle.internal.execution.steps.TimeoutStep.execute(TimeoutStep.java:54)
    at org.gradle.internal.execution.steps.CatchExceptionStep.execute(CatchExceptionStep.java:34)
    at org.gradle.internal.execution.steps.CreateOutputsStep.execute(CreateOutputsStep.java:44)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:54)
    at org.gradle.internal.execution.steps.SnapshotOutputsStep.execute(SnapshotOutputsStep.java:38)
    at org.gradle.internal.execution.steps.BroadcastChangingOutputsStep.execute(BroadcastChangingOutputsStep.java:49)
    at org.gradle.internal.execution.steps.CacheStep.executeWithoutCache(CacheStep.java:159)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:72)
    at org.gradle.internal.execution.steps.CacheStep.execute(CacheStep.java:43)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:44)
    at org.gradle.internal.execution.steps.StoreExecutionStateStep.execute(StoreExecutionStateStep.java:33)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:38)
    at org.gradle.internal.execution.steps.RecordOutputsStep.execute(RecordOutputsStep.java:24)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.executeBecause(SkipUpToDateStep.java:92)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.lambda$execute$0(SkipUpToDateStep.java:85)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:55)
    at org.gradle.internal.execution.steps.SkipUpToDateStep.execute(SkipUpToDateStep.java:39)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:76)
    at org.gradle.internal.execution.steps.ResolveChangesStep.execute(ResolveChangesStep.java:37)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:36)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsFinishedStep.execute(MarkSnapshottingInputsFinishedStep.java:26)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:94)
    at org.gradle.internal.execution.steps.ResolveCachingStateStep.execute(ResolveCachingStateStep.java:49)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:79)
    at org.gradle.internal.execution.steps.CaptureStateBeforeExecutionStep.execute(CaptureStateBeforeExecutionStep.java:53)
    at org.gradle.internal.execution.steps.ValidateStep.execute(ValidateStep.java:74)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.lambda$execute$2(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:78)
    at org.gradle.internal.execution.steps.SkipEmptyWorkStep.execute(SkipEmptyWorkStep.java:34)
    at org.gradle.internal.execution.steps.legacy.MarkSnapshottingInputsStartedStep.execute(MarkSnapshottingInputsStartedStep.java:39)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:40)
    at org.gradle.internal.execution.steps.LoadExecutionStateStep.execute(LoadExecutionStateStep.java:28)
    at org.gradle.internal.execution.impl.DefaultWorkExecutor.execute(DefaultWorkExecutor.java:33)
    at org.gradle.api.internal.tasks.execution.ExecuteActionsTaskExecuter.executeIfValid(ExecuteActionsTaskExecuter.java:192)
    ... 30 more
Caused by: java.lang.StringIndexOutOfBoundsException: String index out of range: 36
    at com.sun.codemodel.JCommentPart.escape(JCommentPart.java:133)
    at com.sun.codemodel.JCommentPart.format(JCommentPart.java:90)
    at com.sun.codemodel.JDocComment.generate(JDocComment.java:150)
    at com.sun.codemodel.JFormatter.g(JFormatter.java:320)
    at com.sun.codemodel.JMethod.declare(JMethod.java:390)
    at com.sun.codemodel.JFormatter.d(JFormatter.java:346)
    at com.sun.codemodel.JDefinedClass.declareBody(JDefinedClass.java:803)
    at com.sun.codemodel.JDefinedClass.declare(JDefinedClass.java:774)
    at com.sun.codemodel.JFormatter.d(JFormatter.java:346)
    at com.sun.codemodel.JFormatter.write(JFormatter.java:420)
    at com.sun.codemodel.JPackage.build(JPackage.java:422)
    at com.sun.codemodel.JCodeModel.build(JCodeModel.java:328)
    at com.sun.codemodel.JCodeModel.build(JCodeModel.java:318)
    at com.sun.tools.xjc.XJCBase._doXJC(XJCBase.java:847)
    at com.sun.tools.xjc.XJCBase.doXJC(XJCBase.java:785)
    at com.sun.tools.xjc.XJCBase.execute(XJCBase.java:684)
    at com.sun.tools.xjc.XJC2Task.execute(XJC2Task.java:55)
    at com.sun.istack.tools.ProtectedTask.execute(ProtectedTask.java:103)
    at org.apache.tools.ant.UnknownElement.execute(UnknownElement.java:292)
    at org.apache.tools.ant.dispatch.DispatchUtils.execute(DispatchUtils.java:99)
    ... 99 more

* Get more help at https://help.gradle.org

BUILD FAILED in 1s
10:56:04 PM: Task execution finished 'build -s'.
edeandrea commented 4 years ago

Is there something i need to do or adjust from the original source you sent me to get past that first issue you mentioned (your plugin configurations were incorrect)? If so, can you please send an updated project?