Hi,
It was found that a JSON of following format is not possible to be
converted to respective Avro schema and an exception [1] is thrown.
{
"avatarUrls":{
"16x16":"
https://jirastg.wso2.org/jira/secure/projectavatar?size=xsmall&pid=10030&avatarId=10011
",
"24x24":"
https://jirastg.wso2.org/jira/secure/projectavatar?size=small&pid=10030&avatarId=10011
",
"32x32":"
https://jirastg.wso2.org/jira/secure/projectavatar?size=medium&pid=10030&avatarId=10011
",
"48x48":"
https://jirastg.wso2.org/jira/secure/projectavatar?pid=10030&avatarId=10011"
}
}
This is due to key values in JSON that start with numbers. In JSON, this is
possible but it is not possible on java based Avro. How can we overcome
this in DataMapper context?
[1]
org.apache.avro.SchemaParseException: Illegal initial character: 16x16
at org.apache.avro.Schema.validateName(Schema.java:1061)
at org.apache.avro.Schema.access$200(Schema.java:79)
at org.apache.avro.Schema$Field.<init>(Schema.java:372)
at org.apache.avro.Schema$Field.<init>(Schema.java:367)
at
org.wso2.developerstudio.datamapper.diagram.custom.persistence.JsonToAvroSchemaTransformer.createField(JsonToAvroSchemaTransformer.java:239)
at
org.wso2.developerstudio.datamapper.diagram.custom.persistence.JsonToAvroSchemaTransformer.createRecord(JsonToAvroSchemaTransformer.java:146)
at
org.wso2.developerstudio.datamapper.diagram.custom.persistence.JsonToAvroSchemaTransformer.createRecord(JsonToAvroSchemaTransformer.java:140)
at
org.wso2.developerstudio.datamapper.diagram.custom.persistence.JsonToAvroSchemaTransformer.createRecord(JsonToAvroSchemaTransformer.java:140)
at
org.wso2.developerstudio.datamapper.diagram.custom.persistence.JsonToAvroSchemaTransformer.createArray(JsonToAvroSchemaTransformer.java:186)
at
org.wso2.developerstudio.datamapper.diagram.custom.persistence.JsonToAvroSchemaTransformer.transform(JsonToAvroSchemaTransformer.java:104)
at
org.wso2.developerstudio.datamapper.diagram.custom.action.SchemaFromJsonAction.doRun(SchemaFromJsonAction.java:82)
at
org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandler.run(AbstractActionHandler.java:359)
at
org.eclipse.gmf.runtime.common.ui.action.ActionManager$1.run(ActionManager.java:225)
at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
at
org.eclipse.gmf.runtime.common.ui.action.ActionManager.run(ActionManager.java:223)
at
org.eclipse.gmf.runtime.common.ui.action.AbstractActionHandler.runWithEvent(AbstractActionHandler.java:377)
at
org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
at
org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
at
org.eclipse.jface.action.ActionContributionItem$5.handleEvent(ActionContributionItem.java:411)
at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1392)
at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:3742)
at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3363)
at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$9.run(PartRenderingEngine.java:1113)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:997)
at
org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:140)
at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:611)
at
org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
at
org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:567)
at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
at
org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:124)
at
org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
at
org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:354)
at
org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:181)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57)
at
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:601)
at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:636)
at org.eclipse.equinox.launcher.Main.basicRun(Main.java:591)
at org.eclipse.equinox.launcher.Main.run(Main.java:1450)
at org.eclipse.equinox.launcher.Main.main(Main.java:1426)
Thanks,
--
*Gayan Kaushalya Yalpathwala*
Software Engineer
WSO2 Inc.; http://wso2.com
lean.enterprise.middleware
mobile: +94 71 8682704 <http://asia14.wso2con.com/>
<http://asia14.wso2con.com/>H
_______________________________________________
Dev mailing list
[email protected]
http://wso2.org/cgi-bin/mailman/listinfo/dev