add patched libthrift-0.13.0

partial-jira-bug: CEM-25548
Change-Id: Ib6306c44140b9a05e4f5fc52e39470e2334bacfe
diff --git a/libthrift/patch13.diff b/libthrift/patch13.diff
new file mode 100644
index 0000000..74e1351
--- /dev/null
+++ b/libthrift/patch13.diff
@@ -0,0 +1,192 @@
+diff --git a/lib/java/build.gradle b/lib/java/build.gradle
+index 5f0d2782b..2adfb78a8 100644
+--- a/lib/java/build.gradle
++++ b/lib/java/build.gradle
+@@ -60,4 +60,4 @@ apply from: 'gradle/unitTests.gradle'
+ apply from: 'gradle/cloverCoverage.gradle'
+ apply from: 'gradle/functionalTests.gradle'
+ apply from: 'gradle/publishing.gradle'
+-apply from: 'gradle/codeQualityChecks.gradle'
++//apply from: 'gradle/codeQualityChecks.gradle'
+diff --git a/lib/java/gradle.properties b/lib/java/gradle.properties
+index 081165910..6a70e1072 100644
+--- a/lib/java/gradle.properties
++++ b/lib/java/gradle.properties
+@@ -16,7 +16,7 @@ testPort=9090
+ cloverEnabled=false
+ 
+ # Maven dependency download locations
+-mvn.repo=http://repo1.maven.org/maven2
++mvn.repo=https://repo1.maven.org/maven2
+ apache.repo=https://repository.apache.org/content/repositories/releases
+ 
+ # Apache Maven publish
+diff --git a/lib/java/gradle/wrapper/gradle-wrapper.properties b/lib/java/gradle/wrapper/gradle-wrapper.properties
+index 7c4388a92..a4b442974 100644
+--- a/lib/java/gradle/wrapper/gradle-wrapper.properties
++++ b/lib/java/gradle/wrapper/gradle-wrapper.properties
+@@ -1,5 +1,5 @@
+ distributionBase=GRADLE_USER_HOME
+ distributionPath=wrapper/dists
+-distributionUrl=https\://services.gradle.org/distributions/gradle-5.6.2-bin.zip
++distributionUrl=https\://services.gradle.org/distributions/gradle-6.3-bin.zip
+ zipStoreBase=GRADLE_USER_HOME
+ zipStorePath=wrapper/dists
+diff --git a/lib/java/src/org/apache/thrift/TAsyncProcessor.java b/lib/java/src/org/apache/thrift/TAsyncProcessor.java
+index 66f768896..533e74d86 100644
+--- a/lib/java/src/org/apache/thrift/TAsyncProcessor.java
++++ b/lib/java/src/org/apache/thrift/TAsyncProcessor.java
+@@ -21,13 +21,8 @@ package org.apache.thrift;
+ import org.apache.thrift.server.AbstractNonblockingServer.AsyncFrameBuffer;
+ 
+ public interface TAsyncProcessor {
+-  /**
+-   * Process a single frame.
+-   
+-   * <b>Note:</b> Implementations must call fb.responseReady() once processing
+-   * is complete
+-   *
+-   * @throws TException if the frame cannot be processed
+-   */
+-  public void process(final AsyncFrameBuffer fb) throws TException;
++    /**
++     * Implementations must call fb.responseReady() once processing is complete
++     */
++    public boolean process(final AsyncFrameBuffer fb) throws TException;
+ }
+diff --git a/lib/java/src/org/apache/thrift/TBaseAsyncProcessor.java b/lib/java/src/org/apache/thrift/TBaseAsyncProcessor.java
+index f13f068ef..0ab1827dc 100644
+--- a/lib/java/src/org/apache/thrift/TBaseAsyncProcessor.java
++++ b/lib/java/src/org/apache/thrift/TBaseAsyncProcessor.java
+@@ -43,7 +43,7 @@ public class TBaseAsyncProcessor<I> implements TAsyncProcessor, TProcessor {
+         return Collections.unmodifiableMap(processMap);
+     }
+ 
+-    public void process(final AsyncFrameBuffer fb) throws TException {
++    public boolean process(final AsyncFrameBuffer fb) throws TException {
+ 
+         final TProtocol in = fb.getInputProtocol();
+         final TProtocol out = fb.getOutputProtocol();
+@@ -67,7 +67,7 @@ public class TBaseAsyncProcessor<I> implements TAsyncProcessor, TProcessor {
+               out.getTransport().flush();
+             }
+             fb.responseReady();
+-            return;
++            return true;
+         }
+ 
+         //Get Args
+@@ -89,7 +89,7 @@ public class TBaseAsyncProcessor<I> implements TAsyncProcessor, TProcessor {
+               out.getTransport().flush();
+             }
+             fb.responseReady();
+-            return;
++            return true;
+         }
+         in.readMessageEnd();
+ 
+@@ -105,10 +105,11 @@ public class TBaseAsyncProcessor<I> implements TAsyncProcessor, TProcessor {
+           LOGGER.debug("Exception handling function", e);
+           resultHandler.onError(e);
+         }
+-        return;
++        return true;
+     }
+ 
+     @Override
+-    public void process(TProtocol in, TProtocol out) throws TException {
++    public boolean process(TProtocol in, TProtocol out) throws TException {
++        return false;
+     }
+ }
+diff --git a/lib/java/src/org/apache/thrift/TBaseProcessor.java b/lib/java/src/org/apache/thrift/TBaseProcessor.java
+index 55a0f15d3..f9a9a9e37 100644
+--- a/lib/java/src/org/apache/thrift/TBaseProcessor.java
++++ b/lib/java/src/org/apache/thrift/TBaseProcessor.java
+@@ -23,7 +23,7 @@ public abstract class TBaseProcessor<I> implements TProcessor {
+   }
+ 
+   @Override
+-  public void process(TProtocol in, TProtocol out) throws TException {
++  public boolean process(TProtocol in, TProtocol out) throws TException {
+     TMessage msg = in.readMessageBegin();
+     ProcessFunction fn = processMap.get(msg.name);
+     if (fn == null) {
+@@ -34,8 +34,9 @@ public abstract class TBaseProcessor<I> implements TProcessor {
+       x.write(out);
+       out.writeMessageEnd();
+       out.getTransport().flush();
+-    } else {
+-      fn.process(msg.seqid, in, out, iface);
++      return true;
+     }
++    fn.process(msg.seqid, in, out, iface);
++    return true;
+   }
+ }
+diff --git a/lib/java/src/org/apache/thrift/TMultiplexedProcessor.java b/lib/java/src/org/apache/thrift/TMultiplexedProcessor.java
+index c49486217..55558bcb5 100644
+--- a/lib/java/src/org/apache/thrift/TMultiplexedProcessor.java
++++ b/lib/java/src/org/apache/thrift/TMultiplexedProcessor.java
+@@ -92,7 +92,7 @@ public class TMultiplexedProcessor implements TProcessor {
+      * name was not found in the service map.  You called {@link #registerProcessor(String, TProcessor) registerProcessor}
+      * during initialization, right? :)
+      */
+-    public void process(TProtocol iprot, TProtocol oprot) throws TException {
++    public boolean process(TProtocol iprot, TProtocol oprot) throws TException {
+         /*
+             Use the actual underlying protocol (e.g. TBinaryProtocol) to read the
+             message header.  This pulls the message "off the wire", which we'll
+@@ -110,8 +110,7 @@ public class TMultiplexedProcessor implements TProcessor {
+         if (index < 0) {
+           if (defaultProcessor != null) {
+                 // Dispatch processing to the stored processor
+-                defaultProcessor.process(new StoredMessageProtocol(iprot, message), oprot);
+-                return;
++                return defaultProcessor.process(new StoredMessageProtocol(iprot, message), oprot);
+           }
+             throw new TProtocolException(TProtocolException.NOT_IMPLEMENTED,
+                 "Service name not found in message name: " + message.name + ".  Did you " +
+@@ -135,7 +134,7 @@ public class TMultiplexedProcessor implements TProcessor {
+         );
+ 
+         // Dispatch processing to the stored processor
+-        actualProcessor.process(new StoredMessageProtocol(iprot, standardMessage), oprot);
++        return actualProcessor.process(new StoredMessageProtocol(iprot, standardMessage), oprot);
+     }
+ 
+     /**
+diff --git a/lib/java/src/org/apache/thrift/TProcessor.java b/lib/java/src/org/apache/thrift/TProcessor.java
+index 15ba9c0fe..d79522c3e 100644
+--- a/lib/java/src/org/apache/thrift/TProcessor.java
++++ b/lib/java/src/org/apache/thrift/TProcessor.java
+@@ -24,7 +24,9 @@ import org.apache.thrift.protocol.TProtocol;
+ /**
+  * A processor is a generic object which operates upon an input stream and
+  * writes to some output stream.
++ *
+  */
+ public interface TProcessor {
+-  public void process(TProtocol in, TProtocol out) throws TException;
++  public boolean process(TProtocol in, TProtocol out)
++    throws TException;
+ }
+diff --git a/lib/java/test/org/apache/thrift/TestMultiplexedProcessor.java b/lib/java/test/org/apache/thrift/TestMultiplexedProcessor.java
+index 85e7966bf..01776ca39 100644
+--- a/lib/java/test/org/apache/thrift/TestMultiplexedProcessor.java
++++ b/lib/java/test/org/apache/thrift/TestMultiplexedProcessor.java
+@@ -57,12 +57,13 @@ public class TestMultiplexedProcessor {
+ 
+   static class StubProcessor implements TProcessor {
+     @Override
+-    public void process(TProtocol in, TProtocol out) throws TException {
++    public boolean process(TProtocol in, TProtocol out) throws TException {
+       TMessage msg = in.readMessageBegin();
+       if (!"func".equals(msg.name) || msg.type!=TMessageType.CALL || msg.seqid!=42) {
+         throw new TException("incorrect parameters");
+       }
+       out.writeMessageBegin(new TMessage("func", TMessageType.REPLY, 42));
++      return true;
+     }
+   }
+