<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Windows-1252">
</head>
<body style="word-wrap: break-word; -webkit-nbsp-mode: space; line-break: after-white-space; color: rgb(0, 0, 0); font-size: 14px; font-family: Calibri, sans-serif;">
<div>The meaning of “critical type code” is explained here:</div>
<div><a href="https://named-data.net/doc/NDN-packet-spec/current/tlv.html#considerations-for-evolvability-of-tlv-based-encoding">https://named-data.net/doc/NDN-packet-spec/current/tlv.html#considerations-for-evolvability-of-tlv-based-encoding</a></div>
<div><br>
</div>
<div>Type code 129 is critical because its least-significant bit is 1. "if the least significant bit of element’s TLV-TYPE number is
<code class="docutils literal notranslate">1</code>, abort decoding and report an error.” The enforcement of critical type codes was added after jNDN version 0.16.</div>
<div><br>
</div>
<div>The application is using the JNDN ProtobufTlv class which uses a protobuf description file to decode TLV. It was decoding a TLV that has type code 129, but the corresponding Protobuf description does not have an field with this “critical" type code, and
 so the decoding is aborted because the application doesn’t know how to handle it.</div>
<div><br>
</div>
<div>Is there anyone on this mailing list that is familiar with the TLV definitions used in MailSync?</div>
<div><br>
</div>
<div>Thanks,</div>
<div>- Jeff T</div>
<div><br>
</div>
<span id="OLK_SRC_BODY_SECTION">
<div style="font-family:Calibri; font-size:11pt; text-align:left; color:black; BORDER-BOTTOM: medium none; BORDER-LEFT: medium none; PADDING-BOTTOM: 0in; PADDING-LEFT: 0in; PADDING-RIGHT: 0in; BORDER-TOP: #b5c4df 1pt solid; BORDER-RIGHT: medium none; PADDING-TOP: 3pt">
<span style="font-weight:bold">From: </span>Ndn-interest <<a href="mailto:ndn-interest-bounces@lists.cs.ucla.edu">ndn-interest-bounces@lists.cs.ucla.edu</a>> on behalf of Avakash Bhat via Ndn-interest <<a href="mailto:ndn-interest@lists.cs.ucla.edu">ndn-interest@lists.cs.ucla.edu</a>><br>
<span style="font-weight:bold">Reply-To: </span>Avakash Bhat <<a href="mailto:bhatavakash@gmail.com">bhatavakash@gmail.com</a>><br>
<span style="font-weight:bold">Date: </span>Thursday, July 4, 2019 at 2:35:00<br>
<span style="font-weight:bold">To: </span>"<a href="mailto:ndn-interest@lists.cs.ucla.edu">ndn-interest@lists.cs.ucla.edu</a>" <<a href="mailto:ndn-interest@lists.cs.ucla.edu">ndn-interest@lists.cs.ucla.edu</a>><br>
<span style="font-weight:bold">Subject: </span>[Ndn-interest] jndn Library<br>
</div>
<div><br>
</div>
<div>
<div>
<div dir="ltr">
<div>I was working on a MailSync one of the open source projects that uses jndn and had some difficulty with upgrading the jndn library. The original jndn version was 0.16 and it was upgraded to 0.22 which is the most recent one. This resulted in the laptop
 side application giving a protobuf error which I can't seem to solve or understand. It is giving a "Unrecognized critical type code 129" exception. The exception is occurring at the ProtobufTlv.decode line given in the below code snippet. The protobuf-java
 version is 2.6.1.Are there any breaking changes that need to be considered with regards to ProtobufTlv when upgraded? Any help would be appreciated in this matter.
<br>
</div>
<div>
<div>
<div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:"Droid Sans Mono","monospace",monospace,"Droid Sans Fallback";font-weight:normal;font-size:14px;line-height:19px;white-space:pre-wrap">
<div><span style="color:rgb(78,201,176)">ControlParametersResponseMessage</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(78,201,176)">Builder</span><span style="color:rgb(212,212,212)"></span><span style="color:rgb(156,220,254)">decodedControlResponse</span><span style="color:rgb(212,212,212)"></span><span style="color:rgb(212,212,212)">=</span></div>
<div><span style="color:rgb(212,212,212)"></span><span style="color:rgb(156,220,254)">ControlParametersResponseMessage</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">newBuilder</span><span style="color:rgb(212,212,212)">();</span><br>
</div>
<div><span style="color:rgb(212,212,212)"></span><span style="color:rgb(156,220,254)">ProtobufTlv</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">decode</span><span style="color:rgb(212,212,212)">(decodedControlResponse,
 encodedControlResponse);</span></div>
<div><span style="color:rgb(212,212,212)"></span><span style="color:rgb(78,201,176)">ControlParametersResponse</span><span style="color:rgb(212,212,212)"></span><span style="color:rgb(156,220,254)">controlResponse</span><span style="color:rgb(212,212,212)"></span><span style="color:rgb(212,212,212)">=</span></div>
<div><span style="color:rgb(212,212,212)"></span><span style="color:rgb(156,220,254)">decodedControlResponse</span><span style="color:rgb(212,212,212)">.</span><span style="color:rgb(220,220,170)">getControlResponse</span><span style="color:rgb(212,212,212)">();</span></div>
</div>
<div style="color:rgb(212,212,212);background-color:rgb(30,30,30);font-family:"Droid Sans Mono","monospace",monospace,"Droid Sans Fallback";font-weight:normal;font-size:14px;line-height:19px;white-space:pre-wrap">
<br>
</div>
</div>
</div>
<div><br>
</div>
<div><br>
</div>
<div>Thank you<br>
</div>
<div><br>
</div>
</div>
</div>
</div>
</span>
</body>
</html>