Skip to content

Instantly share code, notes, and snippets.

@iemejia
Created January 31, 2020 13:42
Show Gist options
  • Save iemejia/077d9b6869d1676306107147f65e96c8 to your computer and use it in GitHub Desktop.
Save iemejia/077d9b6869d1676306107147f65e96c8 to your computer and use it in GitHub Desktop.
// source https://jsbin.com
<!-- kind:binary;verdict:compatible;affected:0;added:1;removed:0;type_problems_high:0;type_problems_medium:0;type_problems_low:0;method_problems_high:0;method_problems_medium:0;method_problems_low:0;checked_methods:1592;checked_types:233;tool_version:2.4 -->
<!-- kind:source;verdict:incompatible;affected:25.6;added:1;removed:0;type_problems_high:1;type_problems_medium:0;type_problems_low:0;method_problems_high:0;method_problems_medium:0;method_problems_low:0;checked_methods:1592;checked_types:233;tool_version:2.4 -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="width=device-width,initial-scale=1" />
<meta name="keywords" content="avro, compatibility" />
<meta name="description" content="Compatibility report for the avro library between 1.9.0 and 1.9.1 versions" />
<title>avro: 1.9.0 to 1.9.1 compatibility report</title>
<style type="text/css">
body {
font-family:Arial, sans-serif;
background-color:White;
color:Black;
}
hr {
color:Black;
background-color:Black;
height:1px;
border:0;
}
h1 {
margin-bottom:0px;
padding-bottom:0px;
font-size:1.625em;
}
h2 {
margin-bottom:0px;
padding-bottom:0px;
font-size:1.25em;
white-space:nowrap;
}
div.symbols {
color:#003E69;
}
div.symbols i {
color:Brown;
}
span.section {
font-weight:bold;
cursor:pointer;
color:#003E69;
white-space:nowrap;
margin-left:0.3125em;
}
span:hover.section {
color:#336699;
}
span.sect_aff {
cursor:pointer;
padding-left:1.55em;
font-size:0.875em;
color:#cc3300;
}
span.ext {
font-weight:normal;
}
span.jar {
color:#cc3300;
font-size:0.875em;
font-weight:bold;
}
div.jar_list {
padding-left:0.4em;
font-size:0.94em;
}
span.pkg_t {
color:#408080;
font-size:0.875em;
}
span.pkg {
color:#408080;
font-size:0.875em;
font-weight:bold;
}
span.cname {
color:Green;
font-size:0.875em;
font-weight:bold;
}
span.iname_b {
font-weight:bold;
}
span.iname_a {
color:#333333;
font-weight:bold;
font-size:0.94em;
}
span.sym_p {
font-weight:normal;
white-space:normal;
}
span.sym_pd {
white-space:normal;
}
span.sym_p span, span.sym_pd span {
white-space:nowrap;
}
span.attr {
color:Black;
font-weight:normal;
}
span.deprecated {
color:Red;
font-weight:bold;
font-family:Monaco, monospace;
}
div.affect {
padding-left:1em;
padding-bottom:10px;
font-size:0.87em;
font-style:italic;
line-height:0.9em;
}
div.affected {
padding-left:2em;
padding-top:10px;
}
table.ptable {
border-collapse:collapse;
border:1px outset black;
margin-left:0.95em;
margin-top:3px;
margin-bottom:3px;
width:56.25em;
}
table.ptable td {
border:1px solid Gray;
padding:3px;
font-size:0.875em;
text-align:left;
vertical-align:top;
max-width:28em;
word-wrap:break-word;
}
table.ptable th {
background-color:#eeeeee;
font-weight:bold;
color:#333333;
font-family:Verdana, Arial;
font-size:0.875em;
border:1px solid Gray;
text-align:center;
vertical-align:top;
white-space:nowrap;
padding:3px;
}
table.summary {
border-collapse:collapse;
border:1px outset black;
}
table.summary th {
background-color:#eeeeee;
font-weight:normal;
text-align:left;
font-size:0.94em;
white-space:nowrap;
border:1px inset Gray;
padding:3px;
}
table.summary td {
text-align:right;
white-space:nowrap;
border:1px inset Gray;
padding:3px 5px 3px 10px;
}
span.mngl {
padding-left:1em;
font-size:0.875em;
cursor:text;
color:#444444;
font-weight:bold;
}
span.pleft {
padding-left:2.5em;
}
span.color_p {
font-style:italic;
color:Brown;
}
span.param {
font-style:italic;
}
span.focus_p {
font-style:italic;
background-color:#DCDCDC;
}
span.ttype {
font-weight:normal;
}
span.nowrap {
white-space:nowrap;
}
span.value {
white-space:nowrap;
font-weight:bold;
}
.passed {
background-color:#CCFFCC;
font-weight:normal;
}
.warning {
background-color:#F4F4AF;
font-weight:normal;
}
.failed {
background-color:#FFCCCC;
font-weight:normal;
}
.new {
background-color:#C6DEFF;
font-weight:normal;
}
.compatible {
background-color:#CCFFCC;
font-weight:normal;
}
.almost_compatible {
background-color:#FFDAA3;
font-weight:normal;
}
.incompatible {
background-color:#FFCCCC;
font-weight:normal;
}
.gray {
background-color:#DCDCDC;
font-weight:normal;
}
.top_ref {
font-size:0.69em;
}
.footer {
font-size:0.8125em;
}
.tabset {
float:left;
}
a.tab {
border:1px solid Black;
float:left;
margin:0px 5px -1px 0px;
padding:3px 5px 3px 5px;
position:relative;
font-size:0.875em;
background-color:#DDD;
text-decoration:none;
color:Black;
}
a.disabled:hover
{
color:Black;
background:#EEE;
}
a.active:hover
{
color:Black;
background:White;
}
a.active {
border-bottom-color:White;
background-color:White;
}
div.tab {
border-top:1px solid Black;
padding:0px;
width:100%;
clear:both;
}
</style>
<script type="text/javascript" language="JavaScript">
<!--
function sC(header, id)
{
e = document.getElementById(id);
if(e.style.display == 'none')
{
e.style.display = 'block';
e.style.visibility = 'visible';
header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi, "[&minus;]");
}
else
{
e.style.display = 'none';
e.style.visibility = 'hidden';
header.innerHTML = header.innerHTML.replace(/\[[^0-9 ]\]/gi, "[+]");
}
}
function initTabs()
{
var url = window.location.href;
if(url.indexOf('_Source_')!=-1 || url.indexOf('#Source')!=-1)
{
var tab1 = document.getElementById('BinaryID');
var tab2 = document.getElementById('SourceID');
tab1.className='tab disabled';
tab2.className='tab active';
}
var sets = document.getElementsByTagName('div');
for (var i = 0; i < sets.length; i++)
{
if (sets[i].className.indexOf('tabset') != -1)
{
var tabs = [];
var links = sets[i].getElementsByTagName('a');
for (var j = 0; j < links.length; j++)
{
if (links[j].className.indexOf('tab') != -1)
{
tabs.push(links[j]);
links[j].tabs = tabs;
var tab = document.getElementById(links[j].href.substr(links[j].href.indexOf('#') + 1));
//reset all tabs on start
if (tab)
{
if (links[j].className.indexOf('active')!=-1) {
tab.style.display = 'block';
}
else {
tab.style.display = 'none';
}
}
links[j].onclick = function()
{
var tab = document.getElementById(this.href.substr(this.href.indexOf('#') + 1));
if (tab)
{
//reset all tabs before change
for (var k = 0; k < this.tabs.length; k++)
{
document.getElementById(this.tabs[k].href.substr(this.tabs[k].href.indexOf('#') + 1)).style.display = 'none';
this.tabs[k].className = this.tabs[k].className.replace('active', 'disabled');
}
this.className = 'tab active';
tab.style.display = 'block';
// window.location.hash = this.id.replace('ID', '');
return false;
}
}
}
}
}
}
if(url.indexOf('#')!=-1) {
location.href=location.href;
}
}
if (window.addEventListener) window.addEventListener('load', initTabs, false);
else if (window.attachEvent) window.attachEvent('onload', initTabs);
-->
</script>
</head>
<body><a name='Source'></a><a name='Binary'></a><a name='Top'></a><h1>API compatibility report for the <span style='color:Blue;'>avro</span> library between <span style='color:Red;'>1.9.0</span> and <span style='color:Red;'>1.9.1</span> versions</h1>
<br/><div class='tabset'>
<a id='BinaryID' href='#BinaryTab' class='tab active'>Binary<br/>Compatibility</a>
<a id='SourceID' href='#SourceTab' style='margin-left:3px' class='tab disabled'>Source<br/>Compatibility</a>
</div>
<div id='BinaryTab' class='tab'>
<h2>Test Info</h2><hr/>
<table class='summary'>
<tr><th>Library Name</th><td>avro</td></tr>
<tr><th>Version #1</th><td>1.9.0</td></tr>
<tr><th>Version #2</th><td>1.9.1</td></tr>
<tr><th>Subject</th><td width='150px'>Binary Compatibility</td></tr>
</table>
<h2>Test Results</h2><hr/>
<table class='summary'>
<tr><th>Total Java Modules</th><td><a href='#Checked_Archives' style='color:Blue;'>1</a></td></tr>
<tr><th>Total Methods / Classes</th><td>1592 / 233</td></tr>
<tr><th>Compatibility</th>
<td class='compatible'>100%</td>
</tr>
</table>
<h2>Problem Summary</h2><hr/>
<table class='summary'>
<tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr>
<tr><th>Added Methods</th><td>-</td><td class='new'><a href='#Binary_Added' style='color:Blue;'>1</a></td></tr>
<tr><th>Removed Methods</th><td>High</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr>
<tr><td>Low</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Methods</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr>
<tr><td>Low</td><td>0</td></tr>
<tr><th>Other Changes<br/>in Data Types</th><td>-</td><td class='passed'><a href='#Other_Binary_Changes_In_Types' style='color:Blue;'>1</a></td></tr>
</table>
<a name='Binary_Added'></a><h2>Added Methods <span class='new'>&nbsp;1&nbsp;</span></h2><hr/>
<span class='jar'>avro-1.9.1.jar</span>, <span class='cname'>Schema.class</span><br/>
<span class='pkg_t'>package</span> <span class='pkg'>org.apache.avro</span><br/>
<span class="section" onclick="sC(this, 'c_1')">
Schema.writeReplace&#160;<span class='sym_p'>(&#160;)</span><span class='sym_p nowrap'> &#160;<b>:</b>&#160;&#160;Object</span></span>
<br/>
<div id="c_1" style="display:none;">
<span class='mngl'>org/apache/avro/Schema.writeReplace:()Ljava/lang/Object;</span><br/><br/></div>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Other_Binary_Changes'></a><a name='Other_Binary_Changes_In_Types'></a>
<h2>Other Changes in Data Types <span class='passed'>&nbsp;1&nbsp;</span></h2><hr/>
<span class='jar'>avro-1.9.0.jar</span><br/>
<span class='pkg_t'>package</span> <span class='pkg'>org.apache.avro</span><br/>
<span class="section" onclick="sC(this, 'c_2')">
<span class='ext'>[+]</span> <span class='ttype'>class</span> Schema <span class='passed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_2" style="display:none;">
<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr>
<th>1</th>
<td>Added super-interface <b>java.io.Serializable</b>.</td>
<td>No effect.</td>
</tr>
</table><span class="sect_aff" onclick="sC(this, 'c_3')">
[+] affected methods: 407 (25.6%)</span>
<div id="c_3" style="display:none;">
<div class='affected'><span class='iname_a'>Conversion&lt;T&gt;.fromArray&#160;<span class='sym_p'><span>(&#160;Collection&lt;?&gt; <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromBoolean&#160;<span class='sym_p'><span>(&#160;Boolean <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromBytes&#160;<span class='sym_p'><span>(&#160;ByteBuffer <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromCharSequence&#160;<span class='sym_p'><span>(&#160;CharSequence <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromDouble&#160;<span class='sym_p'><span>(&#160;Double <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromEnumSymbol&#160;<span class='sym_p'><span>(&#160;GenericEnumSymbol <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromFixed&#160;<span class='sym_p'><span>(&#160;GenericFixed <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromFloat&#160;<span class='sym_p'><span>(&#160;Float <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromInt&#160;<span class='sym_p'><span>(&#160;Integer <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromLong&#160;<span class='sym_p'><span>(&#160;Long <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<b>...</b>
<br/>
</div></div>
<br/><br/></div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Checked_Archives'></a><h2>Java Archives <span class='gray'>&nbsp;1&nbsp;</span></h2>
<hr/><div class='jar_list'>
avro-1.9.0.jar<br/>
</div><br/><a class='top_ref' href='#Top'>to the top</a><br/>
<br/><br/><br/></div><div id='SourceTab' class='tab'>
<h2>Test Info</h2><hr/>
<table class='summary'>
<tr><th>Library Name</th><td>avro</td></tr>
<tr><th>Version #1</th><td>1.9.0</td></tr>
<tr><th>Version #2</th><td>1.9.1</td></tr>
<tr><th>Subject</th><td width='150px'>Source Compatibility</td></tr>
</table>
<h2>Test Results</h2><hr/>
<table class='summary'>
<tr><th>Total Java Modules</th><td><a href='#Checked_Archives' style='color:Blue;'>1</a></td></tr>
<tr><th>Total Methods / Classes</th><td>1592 / 233</td></tr>
<tr><th>Compatibility</th>
<td class='incompatible'>74.4%</td>
</tr>
</table>
<h2>Problem Summary</h2><hr/>
<table class='summary'>
<tr><th></th><th style='text-align:center;'>Severity</th><th style='text-align:center;'>Count</th></tr>
<tr><th>Added Methods</th><td>-</td><td class='new'><a href='#Source_Added' style='color:Blue;'>1</a></td></tr>
<tr><th>Removed Methods</th><td>High</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Data Types</th><td>High</td><td class='failed'><a href='#Type_Source_Problems_High' style='color:Blue;'>1</a></td></tr>
<tr><td>Medium</td><td>0</td></tr>
<tr><td>Low</td><td>0</td></tr>
<tr><th rowspan='3'>Problems with<br/>Methods</th><td>High</td><td>0</td></tr>
<tr><td>Medium</td><td>0</td></tr>
<tr><td>Low</td><td>0</td></tr>
</table>
<a name='Source_Added'></a><h2>Added Methods <span class='new'>&nbsp;1&nbsp;</span></h2><hr/>
<span class='jar'>avro-1.9.1.jar</span>, <span class='cname'>Schema.class</span><br/>
<span class='pkg_t'>package</span> <span class='pkg'>org.apache.avro</span><br/>
<span class="section" onclick="sC(this, 'c_4')">
Schema.writeReplace&#160;<span class='sym_p'>(&#160;)</span><span class='sym_p nowrap'> &#160;<b>:</b>&#160;&#160;Object</span></span>
<br/>
<div id="c_4" style="display:none;">
<span class='mngl'>org/apache/avro/Schema.writeReplace:()Ljava/lang/Object;</span><br/><br/></div>
<br/>
<a class='top_ref' href='#Top'>to the top</a><br/>
<a name='High_Risk_Source_Problems'></a><a name='Type_Source_Problems_High'></a>
<h2>Problems with Data Types, High Severity <span class='failed'>&nbsp;1&nbsp;</span></h2><hr/>
<span class='jar'>avro-1.9.0.jar</span><br/>
<span class='pkg_t'>package</span> <span class='pkg'>org.apache.avro</span><br/>
<span class="section" onclick="sC(this, 'c_5')">
<span class='ext'>[+]</span> <span class='ttype'>class</span> Schema <span class='failed'>&nbsp;1&nbsp;</span></span>
<br/>
<div id="c_5" style="display:none;">
<table class='ptable'><tr><th width='2%'></th><th width='47%'>Change</th><th>Effect</th></tr><tr>
<th>1</th>
<td>Added super-interface <b>java.io.Serializable</b>.</td>
<td>Recompilation of a client program may be terminated with the message: a client class C is not abstract and does not override abstract method in <b>java.io.Serializable</b>.</td>
</tr>
</table><span class="sect_aff" onclick="sC(this, 'c_6')">
[+] affected methods: 407 (25.6%)</span>
<div id="c_6" style="display:none;">
<div class='affected'><span class='iname_a'>Conversion&lt;T&gt;.fromArray&#160;<span class='sym_p'><span>(&#160;Collection&lt;?&gt; <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromBoolean&#160;<span class='sym_p'><span>(&#160;Boolean <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromBytes&#160;<span class='sym_p'><span>(&#160;ByteBuffer <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromCharSequence&#160;<span class='sym_p'><span>(&#160;CharSequence <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromDouble&#160;<span class='sym_p'><span>(&#160;Double <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromEnumSymbol&#160;<span class='sym_p'><span>(&#160;GenericEnumSymbol <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromFixed&#160;<span class='sym_p'><span>(&#160;GenericFixed <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromFloat&#160;<span class='sym_p'><span>(&#160;Float <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromInt&#160;<span class='sym_p'><span>(&#160;Integer <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<span class='iname_a'>Conversion&lt;T&gt;.fromLong&#160;<span class='sym_p'><span>(&#160;Long <i>value</i></span>, <span>Schema <span class='focus_p'>schema</span></span>, <span>LogicalType <i>type</i></span>&#160;)</span></span><br/><div class='affect'>2nd parameter 'schema' of this method is of type 'Schema'.</div>
<b>...</b>
<br/>
</div></div>
<br/><br/></div>
<br/><a class='top_ref' href='#Top'>to the top</a><br/>
<a name='Checked_Archives'></a><h2>Java Archives <span class='gray'>&nbsp;1&nbsp;</span></h2>
<hr/><div class='jar_list'>
avro-1.9.0.jar<br/>
</div><br/><a class='top_ref' href='#Top'>to the top</a><br/>
<br/><br/><br/></div><hr/><div class='footer' align='right'><i>Generated by <a href='https://github.com/lvc/japi-compliance-checker'>Java API Compliance Checker</a> 2.4 &#160;</i></div><br/>
</body></html>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment