You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@samza.apache.org by "Prateek Maheshwari (JIRA)" <ji...@apache.org> on 2017/04/10 02:17:41 UTC

[jira] [Created] (SAMZA-1199) ClassCastException in partitionBy if input type M does not equal msg.serde type

Prateek Maheshwari created SAMZA-1199:
-----------------------------------------

             Summary: ClassCastException in partitionBy if input type M does not equal msg.serde type
                 Key: SAMZA-1199
                 URL: https://issues.apache.org/jira/browse/SAMZA-1199
             Project: Samza
          Issue Type: Bug
    Affects Versions: 0.13.0
            Reporter: Prateek Maheshwari
            Assignee: Prateek Maheshwari
             Fix For: 0.13.0


{code}
2017-04-09 19:05:53.269 [main] SamzaContainer [ERROR] Caught exception/error in process loop.
org.apache.samza.SamzaException: java.lang.ClassCastException: org.apache.avro.generic.GenericData$Record cannot be cast to com.company.events.PageViewEvent
	at org.apache.samza.task.AsyncRunLoop.run(AsyncRunLoop.java:147)
	at org.apache.samza.container.SamzaContainer.run(SamzaContainer.scala:667)
	at org.apache.samza.runtime.LocalContainerRunner.run(LocalContainerRunner.java:81)
	at org.apache.samza.runtime.LocalContainerRunner.main(LocalContainerRunner.java:125)
Caused by: java.lang.ClassCastException: org.apache.avro.generic.GenericData$Record cannot be cast to com.linkedin.events.PageViewEvent
	at org.apache.samza.operators.spec.OperatorSpecs$1$1.<init>(OperatorSpecs.java:62)
	at org.apache.samza.operators.spec.OperatorSpecs$1.apply(OperatorSpecs.java:60)
	at org.apache.samza.operators.impl.StreamOperatorImpl.onNext(StreamOperatorImpl.java:47)
	at org.apache.samza.operators.impl.OperatorImpl.lambda$propagateResult$1(OperatorImpl.java:86)
	at java.lang.Iterable.forEach(Iterable.java:75)
	at org.apache.samza.operators.impl.OperatorImpl.propagateResult(OperatorImpl.java:86)
	at org.apache.samza.operators.impl.RootOperatorImpl.onNext(RootOperatorImpl.java:33)
	at org.apache.samza.task.StreamOperatorTask.process(StreamOperatorTask.java:122)
	at org.apache.samza.task.AsyncStreamTaskAdapter.process(AsyncStreamTaskAdapter.java:72)
	at org.apache.samza.task.AsyncStreamTaskAdapter.processAsync(AsyncStreamTaskAdapter.java:63)
	at org.apache.samza.container.TaskInstance$$anonfun$process$1.apply$mcV$sp(TaskInstance.scala:162)
	at org.apache.samza.container.TaskInstanceExceptionHandler.maybeHandle(TaskInstanceExceptionHandler.scala:54)
	at org.apache.samza.container.TaskInstance.process(TaskInstance.scala:160)
	at org.apache.samza.task.AsyncRunLoop$AsyncTaskWorker.process(AsyncRunLoop.java:428)
	at org.apache.samza.task.AsyncRunLoop$AsyncTaskWorker.run(AsyncRunLoop.java:373)
	at org.apache.samza.task.AsyncRunLoop$AsyncTaskWorker.access$300(AsyncRunLoop.java:314)
	at org.apache.samza.task.AsyncRunLoop.runTasks(AsyncRunLoop.java:228)
	at org.apache.samza.task.AsyncRunLoop.run(AsyncRunLoop.java:157)
	... 3 more
{code}

For example, code similar to the following will compile correctly but fail at runtime:
{code}


  public class TestStreamApp implements StreamApplication {

    @Override

    public void init(StreamGraph streamGraph, Config config) {

      MessageStream<PageViewEvent> pageViewEvents =
          streamGraph.getInputStream("PageViewEvent",

            (k, m) -> AvroUtils.genericRecordToSpecificRecord(new PageViewEvent(), (GenericData.Record) m));


      
      pageViewEvents
          .
partitionBy(this::getMemberId)
          .map(this::setTrackingCode) // throws ClassCastException since incoming GenericData.Record cannot be cast to PageViewEvent
          .sendTo(streamGraph.getOutputStream("OutputEvent", m -> String.valueOf(getMemberId(m)), m -> m));

}



    private String getMemberId(PageViewEvent pve) {

      return pve.memberId.toString();

    }

    private PageViewEvent setTrackingCode(PageViewEvent pve) {

      pve.trackingCode = "1";

      return pve;

    }

  }
{code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)