<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1">
    <!-- The above 3 meta tags *must* come first in the head; any other head content must come *after* these tags -->
    <title>Apache Flink: Apache Flink 1.6.3 Released</title>
    <link rel="shortcut icon" href="/favicon.ico" type="image/x-icon">
    <link rel="icon" href="/favicon.ico" type="image/x-icon">

    <!-- Bootstrap -->
    <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="/css/flink.css">
    <link rel="stylesheet" href="/css/syntax.css">

    <!-- Blog RSS feed -->
    <link href="/blog/feed.xml" rel="alternate" type="application/rss+xml" title="Apache Flink Blog: RSS feed" />

    <!-- jQuery (necessary for Bootstrap's JavaScript plugins) -->
    <!-- We need to load Jquery in the header for custom google analytics event tracking-->
    <script src="/js/jquery.min.js"></script>

    <!-- HTML5 shim and Respond.js for IE8 support of HTML5 elements and media queries -->
    <!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
    <!--[if lt IE 9]>
      <script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
      <script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
    <![endif]-->
  </head>
  <body>  
    

    <!-- Main content. -->
    <div class="container">
    <div class="row">

      
     <div id="sidebar" class="col-sm-3">
        

<!-- Top navbar. -->
    <nav class="navbar navbar-default">
        <!-- The logo. -->
        <div class="navbar-header">
          <button type="button" class="navbar-toggle collapsed" data-toggle="collapse" data-target="#bs-example-navbar-collapse-1">
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
            <span class="icon-bar"></span>
          </button>
          <div class="navbar-logo">
            <a href="/">
              <img alt="Apache Flink" src="/img/flink-header-logo.svg" width="147px" height="73px">
            </a>
          </div>
        </div><!-- /.navbar-header -->

        <!-- The navigation links. -->
        <div class="collapse navbar-collapse" id="bs-example-navbar-collapse-1">
          <ul class="nav navbar-nav navbar-main">

            <!-- First menu section explains visitors what Flink is -->

            <!-- What is Stream Processing? -->
            <!--
            <li><a href="/streamprocessing1.html">What is Stream Processing?</a></li>
            -->

            <!-- What is Flink? -->
            <li><a href="/flink-architecture.html">What is Apache Flink?</a></li>

            

            <!-- What is Stateful Functions? -->

            <li><a href="/stateful-functions.html">What is Stateful Functions?</a></li>

            <!-- Use cases -->
            <li><a href="/usecases.html">Use Cases</a></li>

            <!-- Powered by -->
            <li><a href="/poweredby.html">Powered By</a></li>


            &nbsp;
            <!-- Second menu section aims to support Flink users -->

            <!-- Downloads -->
            <li><a href="/downloads.html">Downloads</a></li>

            <!-- Getting Started -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Getting Started<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.11/getting-started/index.html" target="_blank">With Flink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1/getting-started/project-setup.html" target="_blank">With Flink Stateful Functions <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="/training.html">Training Course</a></li>
              </ul>
            </li>

            <!-- Documentation -->
            <li class="dropdown">
              <a class="dropdown-toggle" data-toggle="dropdown" href="#">Documentation<span class="caret"></span></a>
              <ul class="dropdown-menu">
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-release-1.11" target="_blank">Flink 1.11 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-docs-master" target="_blank">Flink Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-release-2.1" target="_blank">Flink Stateful Functions 2.1 (Latest stable release) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
                <li><a href="https://ci.apache.org/projects/flink/flink-statefun-docs-master" target="_blank">Flink Stateful Functions Master (Latest Snapshot) <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>
              </ul>
            </li>

            <!-- getting help -->
            <li><a href="/gettinghelp.html">Getting Help</a></li>

            <!-- Blog -->
            <li class="active"><a href="/blog/"><b>Flink Blog</b></a></li>


            <!-- Flink-packages -->
            <li>
              <a href="https://flink-packages.org" target="_blank">flink-packages.org <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>
            &nbsp;

            <!-- Third menu section aim to support community and contributors -->

            <!-- Community -->
            <li><a href="/community.html">Community &amp; Project Info</a></li>

            <!-- Roadmap -->
            <li><a href="/roadmap.html">Roadmap</a></li>

            <!-- Contribute -->
            <li><a href="/contributing/how-to-contribute.html">How to Contribute</a></li>
            

            <!-- GitHub -->
            <li>
              <a href="https://github.com/apache/flink" target="_blank">Flink on GitHub <small><span class="glyphicon glyphicon-new-window"></span></small></a>
            </li>

            &nbsp;

            <!-- Language Switcher -->
            <li>
              
                
                  <!-- link to the Chinese home page when current is blog page -->
                  <a href="/zh">中文版</a>
                
              
            </li>

          </ul>

          <ul class="nav navbar-nav navbar-bottom">
          <hr />

            <!-- Twitter -->
            <li><a href="https://twitter.com/apacheflink" target="_blank">@ApacheFlink <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <!-- Visualizer -->
            <li class=" hidden-md hidden-sm"><a href="/visualizer/" target="_blank">Plan Visualizer <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

          <hr />

            <li><a href="https://apache.org" target="_blank">Apache Software Foundation <small><span class="glyphicon glyphicon-new-window"></span></small></a></li>

            <li>
              <style>
                .smalllinks:link {
                  display: inline-block !important; background: none; padding-top: 0px; padding-bottom: 0px; padding-right: 0px; min-width: 75px;
                }
              </style>

              <a class="smalllinks" href="https://www.apache.org/licenses/" target="_blank">License</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/security/" target="_blank">Security</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/sponsorship.html" target="_blank">Donate</a> <small><span class="glyphicon glyphicon-new-window"></span></small>

              <a class="smalllinks" href="https://www.apache.org/foundation/thanks.html" target="_blank">Thanks</a> <small><span class="glyphicon glyphicon-new-window"></span></small>
            </li>

          </ul>
        </div><!-- /.navbar-collapse -->
    </nav>

      </div>
      <div class="col-sm-9">
      <div class="row-fluid">
  <div class="col-sm-12">
    <div class="row">
      <h1>Apache Flink 1.6.3 Released</h1>
      <p><i></i></p>

      <article>
        <p>22 Dec 2018</p>

<p>The Apache Flink community released the third bugfix version of the Apache Flink 1.6 series.</p>

<p>This release includes more than 80 fixes and minor improvements for Flink 1.6.2. The list below includes a detailed list of all fixes.</p>

<p>We highly recommend all users to upgrade to Flink 1.6.3.</p>

<p>Updated Maven dependencies:</p>

<div class="highlight"><pre><code class="language-xml"><span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-java<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.6.3<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-streaming-java_2.11<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.6.3<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span>
<span class="nt">&lt;dependency&gt;</span>
  <span class="nt">&lt;groupId&gt;</span>org.apache.flink<span class="nt">&lt;/groupId&gt;</span>
  <span class="nt">&lt;artifactId&gt;</span>flink-clients_2.11<span class="nt">&lt;/artifactId&gt;</span>
  <span class="nt">&lt;version&gt;</span>1.6.3<span class="nt">&lt;/version&gt;</span>
<span class="nt">&lt;/dependency&gt;</span></code></pre></div>

<p>You can find the binaries on the updated <a href="http://flink.apache.org/downloads.html">Downloads page</a>.</p>

<p>List of resolved issues:</p>

<h2>        Sub-task
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10097">FLINK-10097</a>] -         More tests to increase StreamingFileSink test coverage
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10252">FLINK-10252</a>] -         Handle oversized metric messages
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10367">FLINK-10367</a>] -         Avoid recursion stack overflow during releasing SingleInputGate
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10863">FLINK-10863</a>] -         Assign uids to all operators in general purpose testing job
</li>
</ul>

<h2>        Bug
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-8336">FLINK-8336</a>] -         YarnFileStageTestS3ITCase.testRecursiveUploadForYarnS3 test instability
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-9635">FLINK-9635</a>] -         Local recovery scheduling can cause spread out of tasks
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-9646">FLINK-9646</a>] -         ExecutionGraphCoLocationRestartTest.testConstraintsAfterRestart failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-9878">FLINK-9878</a>] -         IO worker threads BLOCKED on SSL Session Cache while CMS full gc
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10149">FLINK-10149</a>] -         Fink Mesos allocates extra port when not configured to do so.
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10166">FLINK-10166</a>] -         Dependency problems when executing SQL query in sql-client
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10309">FLINK-10309</a>] -         Cancel with savepoint fails with java.net.ConnectException when using the per job-mode
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10357">FLINK-10357</a>] -         Streaming File Sink end-to-end test failed with mismatch
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10359">FLINK-10359</a>] -         Scala example in DataSet docs is broken
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10364">FLINK-10364</a>] -         Test instability in NonHAQueryableStateFsBackendITCase#testMapState
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10419">FLINK-10419</a>] -         ClassNotFoundException while deserializing user exceptions from checkpointing
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10425">FLINK-10425</a>] -         taskmanager.host is not respected
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10455">FLINK-10455</a>] -         Potential Kafka producer leak in case of failures
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10463">FLINK-10463</a>] -         Null literal cannot be properly parsed in Java Table API function call
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10481">FLINK-10481</a>] -         Wordcount end-to-end test in docker env unstable
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10482">FLINK-10482</a>] -         java.lang.IllegalArgumentException: Negative number of in progress checkpoints
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10491">FLINK-10491</a>] -         Deadlock during spilling data in SpillableSubpartition 
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10566">FLINK-10566</a>] -         Flink Planning is exponential in the number of stages
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10567">FLINK-10567</a>] -         Lost serialize fields when ttl state store with the mutable serializer
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10570">FLINK-10570</a>] -         State grows unbounded when &quot;within&quot; constraint not applied
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10581">FLINK-10581</a>] -         YarnConfigurationITCase.testFlinkContainerMemory test instability
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10642">FLINK-10642</a>] -         CodeGen split fields errors when maxGeneratedCodeLength equals 1
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10655">FLINK-10655</a>] -         RemoteRpcInvocation not overwriting ObjectInputStream&#39;s ClassNotFoundException
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10663">FLINK-10663</a>] -         Closing StreamingFileSink can cause NPE
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10669">FLINK-10669</a>] -         Exceptions &amp; errors are not properly checked in logs in e2e tests
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10670">FLINK-10670</a>] -         Fix Correlate codegen error
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10674">FLINK-10674</a>] -         Fix handling of retractions after clean up
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10681">FLINK-10681</a>] -         elasticsearch6.ElasticsearchSinkITCase fails if wrong JNA library installed
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10690">FLINK-10690</a>] -         Tests leak resources via Files.list
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10693">FLINK-10693</a>] -         Fix Scala EitherSerializer duplication
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10715">FLINK-10715</a>] -         E2e tests fail with ConcurrentModificationException in MetricRegistryImpl
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10750">FLINK-10750</a>] -         SocketClientSinkTest.testRetry fails on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10752">FLINK-10752</a>] -         Result of AbstractYarnClusterDescriptor#validateClusterResources is ignored
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10753">FLINK-10753</a>] -         Propagate and log snapshotting exceptions
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10763">FLINK-10763</a>] -         Interval join produces wrong result type in Scala API
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10770">FLINK-10770</a>] -         Some generated functions are not opened properly.
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10773">FLINK-10773</a>] -         Resume externalized checkpoint end-to-end test fails
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10809">FLINK-10809</a>] -         Using DataStreamUtils.reinterpretAsKeyedStream produces corrupted keyed state after restore
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10816">FLINK-10816</a>] -         Fix LockableTypeSerializer.duplicate() 
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10821">FLINK-10821</a>] -         Resuming Externalized Checkpoint E2E test does not resume from Externalized Checkpoint
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10839">FLINK-10839</a>] -         Fix implementation of PojoSerializer.duplicate() w.r.t. subclass serializer
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10842">FLINK-10842</a>] -         Waiting loops are broken in e2e/common.sh
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10856">FLINK-10856</a>] -         Harden resume from externalized checkpoint E2E test
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10857">FLINK-10857</a>] -         Conflict between JMX and Prometheus Metrics reporter
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10880">FLINK-10880</a>] -         Failover strategies should not be applied to Batch Execution
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10913">FLINK-10913</a>] -         ExecutionGraphRestartTest.testRestartAutomatically unstable on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10925">FLINK-10925</a>] -         NPE in PythonPlanStreamer
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10946">FLINK-10946</a>] -         Resuming Externalized Checkpoint (rocks, incremental, scale up) end-to-end test failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10990">FLINK-10990</a>] -         Enforce minimum timespan in MeterView
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10992">FLINK-10992</a>] -         Jepsen: Do not use /tmp as HDFS Data Directory
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10997">FLINK-10997</a>] -         Avro-confluent-registry does not bundle any dependency
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10998">FLINK-10998</a>] -         flink-metrics-ganglia has LGPL dependency
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11011">FLINK-11011</a>] -         Elasticsearch 6 sink end-to-end test unstable
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11017">FLINK-11017</a>] -         Time interval for window aggregations in SQL is wrongly translated if specified with YEAR_MONTH resolution
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11029">FLINK-11029</a>] -         Incorrect parameter in Working with state doc
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11041">FLINK-11041</a>] -         ReinterpretDataStreamAsKeyedStreamITCase.testReinterpretAsKeyedStream failed on Travis
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11045">FLINK-11045</a>] -         UserCodeClassLoader has not been set correctly for RuntimeUDFContext in CollectionExecutor
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11083">FLINK-11083</a>] -         CRowSerializerConfigSnapshot is not instantiable
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11087">FLINK-11087</a>] -         Broadcast state migration Incompatibility from 1.5.3 to 1.7.0
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11123">FLINK-11123</a>] -         Missing import in ML quickstart docs
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11136">FLINK-11136</a>] -         Fix the logical of merge for DISTINCT aggregates
</li>
</ul>

<h2>        Improvement
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-4173">FLINK-4173</a>] -         Replace maven-assembly-plugin by maven-shade-plugin in flink-metrics
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10353">FLINK-10353</a>] -         Restoring a KafkaProducer with Semantic.EXACTLY_ONCE from a savepoint written with Semantic.AT_LEAST_ONCE fails with NPE
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10608">FLINK-10608</a>] -         Add avro files generated by datastream-allround-test to RAT exclusions
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10613">FLINK-10613</a>] -         Remove logger casts in HBaseConnectorITCase
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10614">FLINK-10614</a>] -         Update test_batch_allround.sh e2e to new testing infrastructure
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10637">FLINK-10637</a>] -         Start MiniCluster with random REST port
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10678">FLINK-10678</a>] -         Add a switch to run_test to configure if logs should be checked for errors/excepions
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10692">FLINK-10692</a>] -         Harden Confluent schema E2E test
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10883">FLINK-10883</a>] -         Submitting a jobs without enough slots times out due to a unspecified timeout
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10906">FLINK-10906</a>] -         docker-entrypoint.sh logs credentails during startup
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10916">FLINK-10916</a>] -         Include duplicated user-specified uid into error message
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10951">FLINK-10951</a>] -         Disable enforcing of YARN container virtual memory limits in tests
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-11005">FLINK-11005</a>] -         Define flink-sql-client uber-jar dependencies via artifactSet
</li>
</ul>

<h2>        Test
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10606">FLINK-10606</a>] -         Construct NetworkEnvironment simple for tests
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10607">FLINK-10607</a>] -         Unify to remove duplicated NoOpResultPartitionConsumableNotifier
</li>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10827">FLINK-10827</a>] -         Add test for duplicate() to SerializerTestBase
</li>
</ul>

<h2>        Wish
</h2>
<ul>
<li>[<a href="https://issues.apache.org/jira/browse/FLINK-10793">FLINK-10793</a>] -         Change visibility of TtlValue and TtlSerializer to public for external tools
</li>
</ul>

      </article>
    </div>

    <div class="row">
      <div id="disqus_thread"></div>
      <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'stratosphere-eu'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script'); dsq.type = 'text/javascript'; dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
             (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
      </script>
    </div>
  </div>
</div>
      </div>
    </div>

    <hr />

    <div class="row">
      <div class="footer text-center col-sm-12">
        <p>Copyright © 2014-2019 <a href="http://apache.org">The Apache Software Foundation</a>. All Rights Reserved.</p>
        <p>Apache Flink, Flink®, Apache®, the squirrel logo, and the Apache feather logo are either registered trademarks or trademarks of The Apache Software Foundation.</p>
        <p><a href="/privacy-policy.html">Privacy Policy</a> &middot; <a href="/blog/feed.xml">RSS feed</a></p>
      </div>
    </div>
    </div><!-- /.container -->

    <!-- Include all compiled plugins (below), or include individual files as needed -->
    <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery.matchHeight/0.7.0/jquery.matchHeight-min.js"></script>
    <script src="/js/codetabs.js"></script>
    <script src="/js/stickysidebar.js"></script>

    <!-- Google Analytics -->
    <script>
      (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
      (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
      m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
      })(window,document,'script','//www.google-analytics.com/analytics.js','ga');

      ga('create', 'UA-52545728-1', 'auto');
      ga('send', 'pageview');
    </script>
  </body>
</html>
