You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@crunch.apache.org by "Christophe Van Gysel (JIRA)" <ji...@apache.org> on 2013/11/21 15:11:35 UTC

[jira] [Created] (CRUNCH-302) PType OutputMapFn not initialised when using MemPipeline

Christophe Van Gysel created CRUNCH-302:
-------------------------------------------

             Summary: PType OutputMapFn not initialised when using MemPipeline
                 Key: CRUNCH-302
                 URL: https://issues.apache.org/jira/browse/CRUNCH-302
             Project: Crunch
          Issue Type: Bug
          Components: Core, IO
    Affects Versions: 0.9.0
         Environment: Crunch synced to 2aa692e5299ee9d775218d4754ae73f3d58beed1

java version "1.6.0_65"
Java(TM) SE Runtime Environment (build 1.6.0_65-b14-462-11M4609)
Java HotSpot(TM) 64-Bit Server VM (build 20.65-b04-462, mixed mode)
            Reporter: Christophe Van Gysel
            Assignee: Josh Wills
            Priority: Minor


It seems that the OutputMapFns for PTypes aren't initialised when running in local memory. For most types this doesn't matter, but it gets tricky when using a Tuple as a key or value type in a PTable or a PCollection of Tuples; the following exception gets thrown:

Caused by: java.lang.NullPointerException
	at org.apache.crunch.types.writable.Writables$TupleTWMapFn.map(Writables.java:376)
	at org.apache.crunch.types.writable.Writables$TupleTWMapFn.map(Writables.java:337)
	at org.apache.crunch.impl.mem.MemPipeline.writeSequenceFileFromPTable(MemPipeline.java:270)
	at org.apache.crunch.impl.mem.MemPipeline.write(MemPipeline.java:196)
	at org.apache.crunch.impl.mem.MemPipeline.write(MemPipeline.java:177)


I'm currently working around this issue by explicitly calling the initialize() method on MapFn, like this:
table.getPTableType().getValueType().getOutputMapFn().initialize();



--
This message was sent by Atlassian JIRA
(v6.1#6144)