Ted Yu created KYLIN-2429: ----------------------------- Summary: Variable initialized should be declared volatile in SparkCubingByLayer#execute() Key: KYLIN-2429 URL: https://issues.apache.org/jira/browse/KYLIN-2429 Project: Kylin Issue Type: Bug Reporter: Ted Yu
{code} final JavaPairRDD<ByteArray, Object[]> encodedBaseRDD = intermediateTable.javaRDD().mapToPair(new PairFunction<Row, ByteArray, Object[]>() { transient boolean initialized = false; ... public Tuple2<ByteArray, Object[]> call(Row row) throws Exception { if (initialized == false) { synchronized (SparkCubingByLayer.class) { if (initialized == false) { {code} For double checked locking to work, initialized needs to be volatile. -- This message was sent by Atlassian JIRA (v6.3.15#6346)