Uploaded image for project: 'Pig'
  1. Pig
  2. PIG-125

improve exception handling and expressivness around tuple field access

    XMLWordPrintableJSON

Details

    • Improvement
    • Status: Closed
    • Major
    • Resolution: Fixed
    • None
    • 0.1.0
    • impl
    • None
    • Patch Available

    Description

      Stumbled over the case that i'm accessing fields in a tuple which type are not as i expected. The stack trace in one case looked as follow:

      Exception in thread "main" java.lang.RuntimeException: execution failed
      	at com.my.Executor.run(Executor.java:284)
      Caused by: java.io.IOException: Unable to store alias C
      	at org.apache.pig.impl.util.WrappedIOException.wrap(WrappedIOException.java:16)
      	at org.apache.pig.PigServer.store(PigServer.java:335)
      	at org.apache.pig.PigServer.store(PigServer.java:317)
      	at com.my.Executor.run(Executor.java:280)
      	... 2 more
      Caused by: org.apache.pig.backend.executionengine.ExecException
      	at org.apache.pig.backend.local.executionengine.LocalExecutionEngine.execute(LocalExecutionEngine.java:137)
      	at org.apache.pig.backend.local.executionengine.LocalExecutionEngine.execute(LocalExecutionEngine.java:32)
      	at org.apache.pig.PigServer.store(PigServer.java:332)
      	... 4 more
      Caused by: java.io.IOException: Incompatible type for request getAtomField().
      	at org.apache.pig.data.Tuple.getAtomField(Tuple.java:177)
      	at com.my.DatabaseStoreFunc.putNext(DatabaseStoreFunc.java:83)
      	at org.apache.pig.impl.io.PigFile.store(PigFile.java:64)
      	at org.apache.pig.backend.local.executionengine.POStore.getNext(POStore.java:105)
      	at org.apache.pig.backend.local.executionengine.LocalExecutionEngine.execute(LocalExecutionEngine.java:130)
      	... 6 more
      

      The exception message and the stacktrace gave me a clue what kind of problem i was facing. But to know what exactly happened i needed to debug (or temporarily add some system-outs).
      Looking at the code (of Tuple class) i think the exception-information can be improved easily (add index and actual field type information) .
      Also it seems that there is some space for simplifying the exception handling.

      Attachments

        1. PIG-125.patch
          11 kB
          Johannes Zillmann

        Activity

          People

            oae Johannes Zillmann
            oae Johannes Zillmann
            Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

              Created:
              Updated:
              Resolved: