wolfstudy opened a new issue #5566: [Java Functions] Use protobuf schema error
URL: https://github.com/apache/pulsar/issues/5566
 
 
   **Describe the bug**
   
   I am trying to write a Java function using the `protobuf` schema, code as 
follows:
   
   ```
   package functions;
   
   import pb.TestOuterClass;
   
   import java.util.function.Function;
   
   public class ExampleProtoSchemaFunction implements 
Function<pb.TestOuterClass.Test, String> {
   
       @Override
       public String apply(TestOuterClass.Test test) {
           System.out.println(test.getMsf());
           System.out.println(test.getNum());
           return "test proto schema of function";
       }
   }
   ```
   
   proto definition as follows:
   
   ```
   syntax = "proto3";
   package pb;
   
   message Test {
       int32 num = 1;
       string msf = 2;
   }
   ```
   
   Create a function with the following command:
   
   ```
   ./bin/pulsar-admin functions localrun --name protobbuf-schema-function 
--tenant public --namespace default --inputs input-topic-1  --jar 
mysql-sink-io-tests-1.0-SNAPSHOT.jar --output output-topic --classname 
functions.ExampleProtoSchemaFunction
   ```
   
   I have encountered the following error:
   
   ```
   17:51:00.300 [main] INFO  org.apache.pulsar.functions.LocalRunner - 
RuntimeSpawner quit because of
   java.lang.UnsupportedOperationException: null
        at java.util.AbstractMap.put(AbstractMap.java:209) ~[?:1.8.0_201]
        at 
org.apache.pulsar.client.impl.schema.SchemaDefinitionBuilderImpl.build(SchemaDefinitionBuilderImpl.java:101)
 ~[pulsar-client-original.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.client.impl.schema.ProtobufSchema.ofGenericClass(ProtobufSchema.java:107)
 ~[pulsar-client-original.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.source.TopicSchema.newSchemaInstance(TopicSchema.java:154)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.source.TopicSchema.newSchemaInstance(TopicSchema.java:178)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.source.TopicSchema.newSchemaInstance(TopicSchema.java:210)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.source.TopicSchema.lambda$getSchema$0(TopicSchema.java:66)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at java.util.HashMap.computeIfAbsent(HashMap.java:1127) ~[?:1.8.0_201]
        at 
org.apache.pulsar.functions.source.TopicSchema.getSchema(TopicSchema.java:66) 
~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.source.PulsarSource.lambda$setupConsumerConfigs$5(PulsarSource.java:165)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at java.util.TreeMap.forEach(TreeMap.java:1005) ~[?:1.8.0_201]
        at 
org.apache.pulsar.functions.source.PulsarSource.setupConsumerConfigs(PulsarSource.java:160)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.source.PulsarSource.open(PulsarSource.java:66) 
~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.instance.JavaInstanceRunnable.setupInput(JavaInstanceRunnable.java:733)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.instance.JavaInstanceRunnable.setupJavaInstance(JavaInstanceRunnable.java:215)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at 
org.apache.pulsar.functions.instance.JavaInstanceRunnable.run(JavaInstanceRunnable.java:244)
 ~[pulsar-functions-instance.jar:2.5.0-SNAPSHOT]
        at java.lang.Thread.run(Thread.java:748) ~[?:1.8.0_201]
   17:51:29.813 [function-timer-thread-5-1] ERROR 
org.apache.pulsar.functions.runtime.RuntimeSpawner - 
public/default/protobbuf-schema-function-java.lang.UnsupportedOperationException
 Function Container is dead with exception.. restarting
   ```
   
   **To Reproduce**
   
   Build java function using the code example provided above.
   
   **Expected behavior**
   
   Java function was successfully created
   
   **Screenshots**
   
   
![image](https://user-images.githubusercontent.com/20965307/68204676-81c08080-0003-11ea-875c-008800ffa26a.png)
   
   
   **Desktop (please complete the following information):**
    - OS: Mac OS
    - Pulsar: 2.4.1
   
   **Additional context**
   
   Through the error message, we can locate 
[SchemaDefinitionBuilderImpl#101](https://github.com/apache/pulsar/blob/master/pulsar-client/src/main/java/org/apache/pulsar/client/impl/schema/SchemaDefinitionBuilderImpl.java#L101)
   
   When I delete this line of code, this function is created successfully.
   

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

Reply via email to