[ https://issues.apache.org/jira/browse/AVRO-3161?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17838922#comment-17838922 ]
Martin Mucha commented on AVRO-3161: ------------------------------------ I can confirm that this does not happen in 1.11.0 > bad classcast, avro-maven-plugin not respecing configured stringType for > collections > ------------------------------------------------------------------------------------ > > Key: AVRO-3161 > URL: https://issues.apache.org/jira/browse/AVRO-3161 > Project: Apache Avro > Issue Type: Bug > Affects Versions: 1.9.2 > Reporter: Martin Mucha > Priority: Major > > Using avro schema defining element as: > {code:java} > { > "name": "field1", > "type": "string" > },{code} > and > {code:java} > { > "name": "field2", > "type": ["null", { > "type": "array", > "name": "field2Array", > "items": { > "type": "string" > } > }], > "default": null > }{code} > > the avro-maven-plugin will generate put method, which will look like this: > > {code:java} > public void put(int field$, java.lang.Object value$) { > switch (field$) { > case 1: field1 = value$ != null ? value$.toString() : null; break; > case 19: field2 = (java.util.List<java.lang.String>)value$; break; > default: throw new org.apache.avro.AvroRuntimeException("Bad index"); > } > }{code} > > the problem is, that `value$.toString()` will correctly turn Utf8 to String, > while unchecked cast of List<Utf8> to List<String> will successfully trick > the compiller, but the items will still be of type Utf8. > Plugin configuration: > {code:java} > <plugin> > <groupId>org.apache.avro</groupId> > <artifactId>avro-maven-plugin</artifactId> > <version>1.9.2</version> > <executions> > <execution> > <id>generateClassesFromTestSchemata</id> > <phase>generate-sources</phase> > <goals> > <goal>schema</goal> > </goals> > <configuration> > <stringType>String</stringType> > <fieldVisibility>PRIVATE</fieldVisibility> > <testSourceDirectory>...</testSourceDirectory> > <testOutputDirectory>...</testOutputDirectory> > </configuration> > </execution> > </executions> > </plugin>{code} -- This message was sent by Atlassian Jira (v8.20.10#820010)