Dear Igal,

we are actually analyzing the issue. Our imported package is

import org.apache.flink.statefun.sdk.reqreply.generated.TypedValue

however at runtime (we analyzed the method signature via reflection on the typed value builder), the signature of the TypedValue.Builder.setValue method is:

org.apache.flink.statefun.sdk.reqreply.generated.TypedValue$Builder org.apache.flink.statefun.sdk.reqreply.generated.TypedValue$Builder.setValue(org.apache.flink.statefun.sdk.shaded.com.google.protobuf.ByteString)

and as you can notice, uses the shaded version of protobuf ByteString. Instead we are attempting to pass a non-shaded version of ByteString as a parameter and this leads to the reported error.

Any idea on how to overcome this issue?

Cheers,

Dario

On 5/25/21 11:22 AM, Igal Shilman wrote:
Hi Bonino,

If you've also included the statefun-sdk-java into the class path then, make sure that you are not using accidentally the shaded version of a TypedValue (check the package name)

Let me know if that helped, and we'll try to debug this together otherwise.

Cheers,
Igal.

On Mon, May 24, 2021 at 6:46 PM Bonino Dario <dario.bon...@gmail.com <mailto:dario.bon...@gmail.com>> wrote:

    Hello list,

    we are manually building TypedValue instances to be sent to a
    python remote function (with a reqreply function builder). We
    create the typed value as follows (in Kotlin):

    override fun map(value: Tuple2<Long, MutableIterable>): TypedValue {
             return TypedValue.newBuilder()
                 .setValue(getProtoValueByteString(value.f0, value.f1))
                 .setTypename(typeName)
                 .setHasValue(true)
                 .build()
         }

    However,  when running  our job on a flink cluster (Flink 1.12.3,
    ververica platform) the job is terminated with this exception:

    java.lang.NoSuchMethodError: 
org.apache.flink.statefun.sdk.reqreply.generated.TypedValue$Builder.setValue(Lcom/google/protobuf/ByteString;)Lorg/apache/flink/statefun/sdk/reqreply/generated/TypedValue$Builder

    although the setValue method is actually defined in the TypedValue
    class.

    We checked whether the issue could be related to some conflict on
    protobuf versions, but our classes are generated with protoc
    3.7.1, which is aligned with what is reported in the
    flink-statefun (v3.0.0) parent pom. Any idea on what could cause
    the issue?


    Thanks and  best regards

    Dario Bonino

-- Ing. Dario Bonino, Ph.D

e-m@il:dario.bon...@gmail.com <mailto:dario.bon...@gmail.com> www:https://www.linkedin.com/in/dariobonino <https://www.linkedin.com/in/dariobonino>
    <foaf:Person>
        <foaf:firstName>Dario</foaf:firstName>
        <foaf:surname>Bonino</foaf:surname>
        <foaf:msnChatID>slide...@hotmail.com  
<mailto:slide...@hotmail.com></foaf:msnChatID>
    </foaf:Person>

--
Ing. Dario Bonino, Ph.D

e-m@il: dario.bon...@gmail.com
www: https://www.linkedin.com/in/dariobonino
<foaf:Person>
        <foaf:firstName>Dario</foaf:firstName>
        <foaf:surname>Bonino</foaf:surname>
        <foaf:msnChatID>slide...@hotmail.com</foaf:msnChatID>
</foaf:Person>

Reply via email to