-
Notifications
You must be signed in to change notification settings - Fork 119
Open
Description
When a dtd contains a list and xjc tries to generate code from that schema the creation fails due to an illegal format: can't parse argument number: @code set
(I guess this problem is not limited to dtd model generation)
Test to reproduce:
@Test
public void javadocRegression() throws Exception {
final OptionsEx opt = new OptionsEx();
opt.setSchemaLanguage(Language.DTD);
opt.compatibilityMode = Options.EXTENSION;
opt.addGrammar(
new InputSource(
new ByteArrayInputStream("<!ELEMENT AnElement1 (#PCDATA)>\n<!ELEMENT AnElement2 (#PCDATA)>\n<!ELEMENT AnElement (AnElement1 | AnElement2)>".getBytes())
)
);
Model model = ModelLoader.load(
opt,
new JCodeModel(),
null
);
model.generateCode(opt, null);
//model.codeModel.build(Files.createTempDirectory("jaxb").toFile());
}
Full stracktrace for test:
java.lang.IllegalArgumentException: can't parse argument number: @code set
at java.base/java.text.MessageFormat.makeFormat(MessageFormat.java:1485)
at java.base/java.text.MessageFormat.applyPattern(MessageFormat.java:512)
at java.base/java.text.MessageFormat.<init>(MessageFormat.java:383)
at java.base/java.text.MessageFormat.format(MessageFormat.java:883)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.field.Messages.format(Messages.java:37)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.field.AbstractListField.appendJavadoc(AbstractListField.java:153)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.field.UntypedListField.generateAccessors(UntypedListField.java:108)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.field.AbstractListField.generate(AbstractListField.java:108)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.field.UntypedListField.<init>(UntypedListField.java:83)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.field.UntypedListFieldRenderer.generate(UntypedListFieldRenderer.java:48)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.field.DefaultFieldRenderer.generate(DefaultFieldRenderer.java:53)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.BeanGenerator.generateFieldDecl(BeanGenerator.java:781)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(BeanGenerator.java:551)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.java:233)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator.java:141)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.model.Model.generateCode(Model.java:259)
at org.glassfish.jaxb.xjc@4.0.6-SNAPSHOT/com.sun.tools.xjc.XjcDtdPluginTest.javadocRegression(XjcDtdPluginTest.java:102)
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103)
at java.base/java.lang.reflect.Method.invoke(Method.java:580)
at org.junit.runners.model.FrameworkMethod$1.runReflectiveCall(FrameworkMethod.java:59)
at org.junit.internal.runners.model.ReflectiveCallable.run(ReflectiveCallable.java:12)
at org.junit.runners.model.FrameworkMethod.invokeExplosively(FrameworkMethod.java:56)
at org.junit.internal.runners.statements.InvokeMethod.evaluate(InvokeMethod.java:17)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.BlockJUnit4ClassRunner$1.evaluate(BlockJUnit4ClassRunner.java:100)
at org.junit.runners.ParentRunner.runLeaf(ParentRunner.java:366)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:103)
at org.junit.runners.BlockJUnit4ClassRunner.runChild(BlockJUnit4ClassRunner.java:63)
at org.junit.runners.ParentRunner$4.run(ParentRunner.java:331)
at org.junit.runners.ParentRunner$1.schedule(ParentRunner.java:79)
at org.junit.runners.ParentRunner.runChildren(ParentRunner.java:329)
at org.junit.runners.ParentRunner.access$100(ParentRunner.java:66)
at org.junit.runners.ParentRunner$2.evaluate(ParentRunner.java:293)
at org.junit.runners.ParentRunner$3.evaluate(ParentRunner.java:306)
at org.junit.runners.ParentRunner.run(ParentRunner.java:413)
at org.apache.maven.surefire.junit4.JUnit4Provider.execute(JUnit4Provider.java:316)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeWithRerun(JUnit4Provider.java:240)
at org.apache.maven.surefire.junit4.JUnit4Provider.executeTestSet(JUnit4Provider.java:214)
at org.apache.maven.surefire.junit4.JUnit4Provider.invoke(JUnit4Provider.java:155)
at org.apache.maven.surefire.booter.ForkedBooter.runSuitesInProcess(ForkedBooter.java:385)
at org.apache.maven.surefire.booter.ForkedBooter.execute(ForkedBooter.java:162)
at org.apache.maven.surefire.booter.ForkedBooter.run(ForkedBooter.java:507)
at org.apache.maven.surefire.booter.ForkedBooter.main(ForkedBooter.java:495)
Caused by: java.lang.NumberFormatException: For input string: "@code set"
at java.base/java.lang.NumberFormatException.forInputString(NumberFormatException.java:67)
at java.base/java.lang.Integer.parseInt(Integer.java:662)
at java.base/java.lang.Integer.parseInt(Integer.java:778)
at java.base/java.text.MessageFormat.makeFormat(MessageFormat.java:1483)
... 42 more
laurentschoelens
Metadata
Metadata
Assignees
Labels
No labels