You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "Dzmitry Lazerka (JIRA)" <ji...@apache.org> on 2018/07/12 06:57:00 UTC
[jira] [Updated] (BEAM-4769) Types$WildcardTypeImpl cannot be cast
to java.lang.reflect.TypeVariable
[ https://issues.apache.org/jira/browse/BEAM-4769?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dzmitry Lazerka updated BEAM-4769:
----------------------------------
Description:
Hi,
I'm getting the following exception, probably when Beam cannot find a coder for a wildcard generic type (although I don't think I use any, gotta find).
{{Exception in thread "main" java.lang.ClassCastException: org.apache.beam.repackaged.beam_sdks_java_core.com.google.common.reflect.Types$WildcardTypeImpl cannot be cast to java.lang.reflect.TypeVariable}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:625)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromParameterizedType(CoderRegistry.java:658)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:620)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromParameterizedType(CoderRegistry.java:658)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:620)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoder(CoderRegistry.java:254)}}
{{at org.apache.beam.sdk.values.PCollection.inferCoderOrFail(PCollection.java:149)}}
{{at org.apache.beam.sdk.values.PCollection.finishSpecifyingOutput(PCollection.java:89)}}
{{at org.apache.beam.sdk.runners.TransformHierarchy.setOutput(TransformHierarchy.java:208)}}
{{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:538)}}
{{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:472)}}
{{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:286)}}
{{at org.apache.beam.sdk.transforms.ParDo$SingleOutput.expand(ParDo.java:649)}}
{{at org.apache.beam.sdk.transforms.ParDo$SingleOutput.expand(ParDo.java:584)}}
{{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:537)}}
{{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:491)}}
{{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:299)}}
{{at org.apache.beam.sdk.transforms.MapElements.expand(MapElements.java:123)}}
{{at org.apache.beam.sdk.transforms.MapElements.expand(MapElements.java:36)}}
{{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:537)}}
{{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:491)}}
{{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:299)}}
The error seems to be in the following lines of CoderRegistry.java @ 629:
{{} else if (type instanceof TypeVariable) {}}
{{ coder = getCoderFromFactories(typeDescriptor, Collections.emptyList());}}
{{} else if (type instanceof WildcardType) {}}
{{ // No coder for an unknown generic type.}}
{{ throw new CannotProvideCoderException(}}
{{ String.format("Cannot provide a coder for type variable %s"}}
{{ + " (declared by %s) because the actual type is unknown due to erasure.",}}
{{ type,}}
{{ ((TypeVariable<?>) type).getGenericDeclaration()),}}
{{ ReasonCode.TYPE_ERASURE);}}
It tries to cast a WildcardType to TypeVariable<?>, although that should've been caught above on line 621.
was:
Hi,
I'm getting the following exception, probably when Beam cannot find a coder for a wildcard generic type (although I don't think I use any, gotta find).
{{Exception in thread "main" java.lang.ClassCastException: org.apache.beam.repackaged.beam_sdks_java_core.com.google.common.reflect.Types$WildcardTypeImpl cannot be cast to java.lang.reflect.TypeVariable}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:625)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromParameterizedType(CoderRegistry.java:658)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:620)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromParameterizedType(CoderRegistry.java:658)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:620)}}
{{at org.apache.beam.sdk.coders.CoderRegistry.getCoder(CoderRegistry.java:254)}}
{{at org.apache.beam.sdk.values.PCollection.inferCoderOrFail(PCollection.java:149)}}
{{at org.apache.beam.sdk.values.PCollection.finishSpecifyingOutput(PCollection.java:89)}}
{{at org.apache.beam.sdk.runners.TransformHierarchy.setOutput(TransformHierarchy.java:208)}}
{{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:538)}}
{{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:472)}}
{{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:286)}}
{{at org.apache.beam.sdk.transforms.ParDo$SingleOutput.expand(ParDo.java:649)}}
{{at org.apache.beam.sdk.transforms.ParDo$SingleOutput.expand(ParDo.java:584)}}
{{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:537)}}
{{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:491)}}
{{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:299)}}
{{at org.apache.beam.sdk.transforms.MapElements.expand(MapElements.java:123)}}
{{at org.apache.beam.sdk.transforms.MapElements.expand(MapElements.java:36)}}
{{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:537)}}
{{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:491)}}
{{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:299)}}
The error seems to be in the following lines of CoderRegistry.java @ 629:
{{} else if (type instanceof TypeVariable) {}}
{{ coder = getCoderFromFactories(typeDescriptor, Collections.emptyList());}}
{{} else if (type instanceof WildcardType) {}}
{{ // No coder for an unknown generic type.}}
{{ throw new CannotProvideCoderException(}}
{{ String.format("Cannot provide a coder for type variable %s"}}
{{ + " (declared by %s) because the actual type is unknown due to erasure.",}}
{{ type,}}
{{ ((TypeVariable<?>) type).getGenericDeclaration()),}}
{{ ReasonCode.TYPE_ERASURE);}}
It tries to cast a WildcardType to TypeVariable<?>, although that should've been caught above on line 621.
> Types$WildcardTypeImpl cannot be cast to java.lang.reflect.TypeVariable
> -----------------------------------------------------------------------
>
> Key: BEAM-4769
> URL: https://issues.apache.org/jira/browse/BEAM-4769
> Project: Beam
> Issue Type: Bug
> Components: sdk-java-core
> Affects Versions: 2.5.0
> Reporter: Dzmitry Lazerka
> Assignee: Kenneth Knowles
> Priority: Minor
>
> Hi,
> I'm getting the following exception, probably when Beam cannot find a coder for a wildcard generic type (although I don't think I use any, gotta find).
> {{Exception in thread "main" java.lang.ClassCastException: org.apache.beam.repackaged.beam_sdks_java_core.com.google.common.reflect.Types$WildcardTypeImpl cannot be cast to java.lang.reflect.TypeVariable}}
> {{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:625)}}
> {{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromParameterizedType(CoderRegistry.java:658)}}
> {{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:620)}}
> {{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromParameterizedType(CoderRegistry.java:658)}}
> {{at org.apache.beam.sdk.coders.CoderRegistry.getCoderFromTypeDescriptor(CoderRegistry.java:620)}}
> {{at org.apache.beam.sdk.coders.CoderRegistry.getCoder(CoderRegistry.java:254)}}
> {{at org.apache.beam.sdk.values.PCollection.inferCoderOrFail(PCollection.java:149)}}
> {{at org.apache.beam.sdk.values.PCollection.finishSpecifyingOutput(PCollection.java:89)}}
> {{at org.apache.beam.sdk.runners.TransformHierarchy.setOutput(TransformHierarchy.java:208)}}
> {{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:538)}}
> {{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:472)}}
> {{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:286)}}
> {{at org.apache.beam.sdk.transforms.ParDo$SingleOutput.expand(ParDo.java:649)}}
> {{at org.apache.beam.sdk.transforms.ParDo$SingleOutput.expand(ParDo.java:584)}}
> {{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:537)}}
> {{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:491)}}
> {{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:299)}}
> {{at org.apache.beam.sdk.transforms.MapElements.expand(MapElements.java:123)}}
> {{at org.apache.beam.sdk.transforms.MapElements.expand(MapElements.java:36)}}
> {{at org.apache.beam.sdk.Pipeline.applyInternal(Pipeline.java:537)}}
> {{at org.apache.beam.sdk.Pipeline.applyTransform(Pipeline.java:491)}}
> {{at org.apache.beam.sdk.values.PCollection.apply(PCollection.java:299)}}
>
> The error seems to be in the following lines of CoderRegistry.java @ 629:
> {{} else if (type instanceof TypeVariable) {}}
> {{ coder = getCoderFromFactories(typeDescriptor, Collections.emptyList());}}
> {{} else if (type instanceof WildcardType) {}}
> {{ // No coder for an unknown generic type.}}
> {{ throw new CannotProvideCoderException(}}
> {{ String.format("Cannot provide a coder for type variable %s"}}
> {{ + " (declared by %s) because the actual type is unknown due to erasure.",}}
> {{ type,}}
> {{ ((TypeVariable<?>) type).getGenericDeclaration()),}}
> {{ ReasonCode.TYPE_ERASURE);}}
> It tries to cast a WildcardType to TypeVariable<?>, although that should've been caught above on line 621.
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)