title: Kafka Streams state store exception when putting a value
body: <p>I am using the low level processor API with state stores. Up to <code>0.10.0.1</code> it was working fine, but I have upgraded Kafka Streams and I am getting the below error. I figured out that this is due to the changelog and it is looking at the record context:</p>
  <pre><code>java.lang.IllegalStateException: This should not happen as timestamp() should only be called while a record is processed
  ! at org.apache.kafka.streams.processor.internals.AbstractProcessorContext.timestamp(AbstractProcessorContext.java:150)
  ! at org.apache.kafka.streams.state.internals.StoreChangeLogger.logChange(StoreChangeLogger.java:60)
  ! at org.apache.kafka.streams.state.internals.ChangeLoggingKeyValueBytesStore.put(ChangeLoggingKeyValueBytesStore.java:47)
  ! at org.apache.kafka.streams.state.internals.ChangeLoggingKeyValueStore.put(ChangeLoggingKeyValueStore.java:66)
  ! at     org.apache.kafka.streams.state.internals.MeteredKeyValueStore$2.run(MeteredKeyValueStore.java:67)
  </code></pre>
  <hr />
  <pre><code>@Override
      public void process(String arg0, List&lt;Data&gt; data {
          data.forEach((x) -&gt; {
              String rawKey = x.getId();
              Data data = kvStore.get(rawKey);
              long bytesize = data == null ? 0 : data.getVolume();
              x.addVolume(bytesize);
              kvStore.put(rawKey, x);
          });
      }
    
  public void start() {
          builder = new KStreamBuilder();
          storeSupplier =     Stores.create(getKVStoreName()).withKeys(getProcessorKeySerde()).withValues(getProcessorValueSerde()).persistent().build();
          builder.addStateStore(storeSupplier);
          stream = builder.stream(Serdes.String(), serde(),getTopicName());
          processStream(stream);
          streams = new KafkaStreams(builder, props);
          streams.cleanUp();
          streams.start();
      }
  
      @Override
      public void init(ProcessorContext context) {
          super.init(context);
          this.context = context;
          this.context.schedule(timeinterval);
          this.kvStore = (KeyValueStore) context.getStateStore(getKVStoreName());
      }
  </code></pre>