undefect. CWE-407 — 63 sites patched across 27 ecosystems
Authors: russell@unturf.com · brackishbert@gmail.com · foxhop.net · TimeHexOn.com Patches, unit tests, benchmarks, whitepaper, and outreach briefs. Public domain — no copyright claimed. Use freely.
This commit is contained in:
commit
0a580b313d
70422 changed files with 17213626 additions and 0 deletions
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* Copyright (c) 2016, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.io.Externalizable;
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInput;
|
||||
import java.io.ObjectOutput;
|
||||
|
||||
public class ExternalizedForm implements Externalizable {
|
||||
|
||||
/**
|
||||
* @throws IOException when there is an I/O error.
|
||||
*/
|
||||
public void writeExternal(ObjectOutput oo) throws IOException {}
|
||||
|
||||
/**
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @throws ClassNotFoundException if no class found.
|
||||
* @serialData This is a serial data comment.
|
||||
*/
|
||||
public void readExternal(ObjectInput oi) throws IOException, ClassNotFoundException {}
|
||||
}
|
||||
|
|
@ -0,0 +1,91 @@
|
|||
/*
|
||||
* Copyright (c) 2016, 2021, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
import java.io.IOException;
|
||||
import java.io.ObjectInputStream;
|
||||
import java.io.ObjectOutputStream;
|
||||
import java.io.ObjectStreamField;
|
||||
import java.io.Serializable;
|
||||
|
||||
public class SerializedForm implements Serializable {
|
||||
|
||||
/**
|
||||
* @serialField name String a test
|
||||
* @serialField longs Long[] the longs
|
||||
* @serialField i int an int
|
||||
* @serialField m double[][] the doubles
|
||||
* @serialField next SerializedForm a linked reference
|
||||
* @see TestSerializedForm
|
||||
*/
|
||||
@Deprecated
|
||||
private static final ObjectStreamField[] serialPersistentFields = {
|
||||
new ObjectStreamField("i", int.class),
|
||||
new ObjectStreamField("m", double[][].class),
|
||||
new ObjectStreamField("count", Integer.TYPE),
|
||||
new ObjectStreamField("name", String.class),
|
||||
new ObjectStreamField("longs", Long[].class),
|
||||
new ObjectStreamField("next", SerializedForm.class)
|
||||
};
|
||||
|
||||
/**
|
||||
* The entry point of the test.
|
||||
* @param args the array of command line arguments.
|
||||
*/
|
||||
|
||||
/**
|
||||
* @param s ObjectInputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void readObject(ObjectInputStream s) throws IOException {}
|
||||
|
||||
/**
|
||||
* @param s ObjectOutputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void writeObject(ObjectOutputStream s) throws IOException {}
|
||||
|
||||
/**
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serialData This is a serial data comment.
|
||||
* @return an object.
|
||||
*/
|
||||
protected Object readResolve() throws IOException {return null;}
|
||||
|
||||
/**
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serialData This is a serial data comment.
|
||||
* @return an object.
|
||||
*/
|
||||
protected Object writeReplace() throws IOException {return null;}
|
||||
|
||||
/**
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serialData This is a serial data comment.
|
||||
* @return an object.
|
||||
*/
|
||||
protected Object readObjectNoData() throws IOException {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,225 @@
|
|||
/*
|
||||
* Copyright (c) 2001, 2024, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
/*
|
||||
* @test
|
||||
* @bug 4341304 4485668 4966728 8032066 8071982 8192933 8215307 8232644
|
||||
* @summary Test that methods readResolve and writeReplace show
|
||||
* up in serialized-form.html the same way that readObject and writeObject do.
|
||||
* If the doclet includes readResolve and writeReplace in the serialized-form
|
||||
* documentation that same way the it includes readObject and writeObject, the
|
||||
* test passes. This also tests that throws tag information is correctly shown
|
||||
* in the serialized form page.
|
||||
* Make sure see tags work in serialized form.
|
||||
* @library ../../lib/
|
||||
* @modules jdk.javadoc/jdk.javadoc.internal.tool
|
||||
* @build javadoc.tester.*
|
||||
* @build TestSerializedForm
|
||||
* @run main TestSerializedForm
|
||||
*/
|
||||
|
||||
import javadoc.tester.JavadocTester;
|
||||
|
||||
public class TestSerializedForm extends JavadocTester {
|
||||
public static void main(String... args) throws Exception {
|
||||
var tester = new TestSerializedForm();
|
||||
tester.runTests();
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testDefault() {
|
||||
javadoc("-d", "out-default", "-serialwarn", "-Xdoclint:none",
|
||||
"--no-platform-links", "-sourcepath", testSrc,
|
||||
testSrc("SerializedForm.java"), testSrc("ExternalizedForm.java"), "pkg1");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOutput("serialized-form.html", true,
|
||||
"""
|
||||
<span class="modifiers">protected</span> <span class="return-type">java.lan\
|
||||
g.Object</span> <span class="element-name">readResolve</span>()""",
|
||||
"""
|
||||
<span class="modifiers">protected</span> <span class="return-type">java.lan\
|
||||
g.Object</span> <span class="element-name">writeReplace</span>()""",
|
||||
"""
|
||||
<span class="modifiers">protected</span> <span class="return-type">java.lan\
|
||||
g.Object</span> <span class="element-name">readObjectNoData</span>()""",
|
||||
"""
|
||||
<h4>Serialization Overview</h4>
|
||||
<ul class="block-list">
|
||||
<li class="block-list">
|
||||
<div class="deprecation-block"><span class="deprecated-label">Deprecated.</span></div>
|
||||
<dl class="notes">
|
||||
<dt>See Also:</dt>
|
||||
<dd>
|
||||
<ul class="tag-list">
|
||||
<li><code>TestSerializedForm</code></li>
|
||||
</ul>
|
||||
</dd>
|
||||
</dl>""",
|
||||
"""
|
||||
<h3>Class pkg1.NestedInnerClass.InnerClass.ProNestedInnerClass</h3>
|
||||
<div class="type-signature">class ProNestedInnerClass extends java.lang.Object i\
|
||||
mplements java.io.Serializable</div>
|
||||
""",
|
||||
"""
|
||||
<h3>Class pkg1.PrivateIncludeInnerClass.PriInnerClass</h3>
|
||||
<div class="type-signature">class PriInnerClass extends java.lang.Object impleme\
|
||||
nts java.io.Serializable</div>""",
|
||||
"""
|
||||
<h3>Class pkg1.ProtectedInnerClass.ProInnerClass</h3>
|
||||
<div class="type-signature">class ProInnerClass extends java.lang.Object impleme\
|
||||
nts java.io.Serializable</div>""");
|
||||
|
||||
checkOutput("serialized-form.html", false,
|
||||
"""
|
||||
<h3>Class <a href="pkg1/NestedInnerClass.InnerClass.ProNestedInnerClass.htm\
|
||||
l" title="class in pkg1">pkg1.NestedInnerClass.InnerClass.ProNestedInnerClass</a\
|
||||
></h3>""",
|
||||
"""
|
||||
<h3>Class <a href="pkg1/PrivateInnerClass.PriInnerClass.html" title="class \
|
||||
in pkg1">pkg1.PrivateInnerClass.PriInnerClass</a></h3>""",
|
||||
"""
|
||||
<h3>Class <a href="pkg1/ProtectedInnerClass.ProInnerClass.html" title="class in \
|
||||
pkg1">pkg1.ProtectedInnerClass.ProInnerClass</a></h3>""",
|
||||
"<h3>Class pkg1.PublicExcludeInnerClass.PubInnerClass</h3>");
|
||||
|
||||
checkOutput("serialized-form.html", true,
|
||||
"""
|
||||
<h4>Serialized Fields</h4>
|
||||
<ul class="block-list">
|
||||
<li class="block-list">
|
||||
<h5>i</h5>
|
||||
<pre>int i</pre>
|
||||
<div class="block">an int</div>
|
||||
</li>
|
||||
<li class="block-list">
|
||||
<h5>longs</h5>
|
||||
<pre>java.lang.Long[] longs</pre>
|
||||
<div class="block">the longs</div>
|
||||
</li>
|
||||
<li class="block-list">
|
||||
<h5>m</h5>
|
||||
<pre>double[][] m</pre>
|
||||
<div class="block">the doubles</div>
|
||||
</li>
|
||||
<li class="block-list">
|
||||
<h5>name</h5>
|
||||
<pre>java.lang.String name</pre>
|
||||
<div class="block">a test</div>
|
||||
</li>
|
||||
<li class="block-list">
|
||||
<h5>next</h5>
|
||||
<pre><a href="SerializedForm.html" title="class in Unnamed Package">SerializedForm</a> next</pre>
|
||||
<div class="block">a linked reference</div>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testPrivate() {
|
||||
javadoc("-private",
|
||||
"-d", "out-private",
|
||||
"-sourcepath", testSrc,
|
||||
"--no-platform-links",
|
||||
testSrc("SerializedForm.java"), testSrc("ExternalizedForm.java"), "pkg1");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
showHeadings("serialized-form.html");
|
||||
|
||||
checkOutput("serialized-form.html", true,
|
||||
"""
|
||||
<h3>Class <a href="pkg1/NestedInnerClass.InnerClass.ProNestedInnerClass.htm\
|
||||
l" title="class in pkg1">pkg1.NestedInnerClass.InnerClass.ProNestedInnerClass</a\
|
||||
></h3>
|
||||
<div class="type-signature">class ProNestedInnerClass extends java.lang.Object i\
|
||||
mplements java.io.Serializable</div>""",
|
||||
"""
|
||||
<h3>Class <a href="pkg1/PrivateIncludeInnerClass.PriInnerClass.html" title=\
|
||||
"class in pkg1">pkg1.PrivateIncludeInnerClass.PriInnerClass</a></h3>
|
||||
<div class="type-signature">class PriInnerClass extends java.lang.Object impleme\
|
||||
nts java.io.Serializable</div>""",
|
||||
"""
|
||||
<h3>Class <a href="pkg1/ProtectedInnerClass.ProInnerClass.html" title="clas\
|
||||
s in pkg1">pkg1.ProtectedInnerClass.ProInnerClass</a></h3>
|
||||
<div class="type-signature">class ProInnerClass extends java.lang.Object impleme\
|
||||
nts java.io.Serializable</div>""");
|
||||
|
||||
checkOutput("serialized-form.html", false,
|
||||
"<h3>Class pkg1.NestedInnerClass.InnerClass.ProNestedInnerClass</h3>",
|
||||
"<h3>Class pkg1.PrivateInnerClass.PriInnerClass</h3>",
|
||||
"<h3>Class pkg1.ProtectedInnerClass.ProInnerClass</h3>",
|
||||
"""
|
||||
<h3>Class <a href="pkg1/PublicExcludeInnerClass.PubInnerClass.html" title="class\
|
||||
in pkg1">pkg1.PublicExcludeInnerClass.PubInnerClass</a></h3>""");
|
||||
|
||||
checkOutput("serialized-form.html", true,
|
||||
"""
|
||||
<h4>Serialized Fields</h4>
|
||||
<ul class="block-list">
|
||||
<li class="block-list">
|
||||
<h5>i</h5>
|
||||
<pre>int i</pre>
|
||||
<div class="block">an int</div>
|
||||
</li>
|
||||
<li class="block-list">
|
||||
<h5>longs</h5>
|
||||
<pre>java.lang.Long[] longs</pre>
|
||||
<div class="block">the longs</div>
|
||||
</li>
|
||||
<li class="block-list">
|
||||
<h5>m</h5>
|
||||
<pre>double[][] m</pre>
|
||||
<div class="block">the doubles</div>
|
||||
</li>
|
||||
<li class="block-list">
|
||||
<h5>name</h5>
|
||||
<pre>java.lang.String name</pre>
|
||||
<div class="block">a test</div>
|
||||
</li>
|
||||
<li class="block-list">
|
||||
<h5>next</h5>
|
||||
<pre><a href="SerializedForm.html" title="class in Unnamed Package">SerializedForm</a> next</pre>
|
||||
<div class="block">a linked reference</div>""");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void test2() {
|
||||
javadoc("-private",
|
||||
"-d", "out-2",
|
||||
"-sourcepath", testSrc,
|
||||
"--no-platform-links",
|
||||
"pkg2");
|
||||
checkExit(Exit.OK);
|
||||
|
||||
checkOrder("serialized-form.html",
|
||||
"""
|
||||
int[] a1""",
|
||||
"""
|
||||
int[][] a2""",
|
||||
"""
|
||||
<a href="pkg2/Fields.html" title="class in pkg2">Fields</a>[][] doubleArray""",
|
||||
"""
|
||||
<a href="pkg2/Fields.html" title="class in pkg2">Fields</a>[] singleArray""",
|
||||
"""
|
||||
java.lang.Class<<a href="pkg2/Fields.html#type-param-E" title="type paramete\
|
||||
r in Fields">E</a>> someClass""");
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package pkg1;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
/**
|
||||
* A test class where the outer class is package private and the inner class is private
|
||||
* and a nested inner class is protected.
|
||||
*/
|
||||
|
||||
class NestedInnerClass {
|
||||
|
||||
private static class InnerClass {
|
||||
|
||||
protected static class ProNestedInnerClass implements java.io.Serializable {
|
||||
|
||||
public final int SERIALIZABLE_CONSTANT = 1;
|
||||
|
||||
/**
|
||||
* @param s ObjectInputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void readObject(ObjectInputStream s) throws IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param s ObjectOutputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void writeObject(ObjectOutputStream s) throws IOException {
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package pkg1;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
/**
|
||||
* A test class where the outer class is package private and inner class
|
||||
* is private which is included using the tag.
|
||||
*/
|
||||
|
||||
class PrivateIncludeInnerClass {
|
||||
|
||||
/**
|
||||
* @serial include
|
||||
*/
|
||||
private static class PriInnerClass implements java.io.Serializable {
|
||||
|
||||
public final int SERIALIZABLE_CONSTANT = 1;
|
||||
|
||||
/**
|
||||
* @param s ObjectInputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void readObject(ObjectInputStream s) throws IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param s ObjectOutputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void writeObject(ObjectOutputStream s) throws IOException {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,55 @@
|
|||
/*
|
||||
* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package pkg1;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
/**
|
||||
* A test class where outer class is package private and the inner class is
|
||||
* protected.
|
||||
*/
|
||||
|
||||
class ProtectedInnerClass {
|
||||
|
||||
protected static class ProInnerClass implements java.io.Serializable {
|
||||
|
||||
public final int SERIALIZABLE_CONSTANT = 1;
|
||||
|
||||
/**
|
||||
* @param s ObjectInputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void readObject(ObjectInputStream s) throws IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param s ObjectOutputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void writeObject(ObjectOutputStream s) throws IOException {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,58 @@
|
|||
/*
|
||||
* Copyright (c) 2014, 2019, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package pkg1;
|
||||
|
||||
import java.io.*;
|
||||
|
||||
/**
|
||||
* A test class where the outer class is package private and inner class
|
||||
* is public which is excluded using the tag.
|
||||
*/
|
||||
|
||||
class PublicExcludeInnerClass {
|
||||
|
||||
/**
|
||||
* @serial exclude
|
||||
*/
|
||||
public static class PubInnerClass implements java.io.Serializable {
|
||||
|
||||
public final int SERIALIZABLE_CONSTANT = 1;
|
||||
|
||||
/**
|
||||
* @param s ObjectInputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void readObject(ObjectInputStream s) throws IOException {
|
||||
}
|
||||
|
||||
/**
|
||||
* @param s ObjectOutputStream.
|
||||
* @throws IOException when there is an I/O error.
|
||||
* @serial
|
||||
*/
|
||||
private void writeObject(ObjectOutputStream s) throws IOException {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* Copyright (c) 2017, Oracle and/or its affiliates. All rights reserved.
|
||||
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
|
||||
*
|
||||
* This code is free software; you can redistribute it and/or modify it
|
||||
* under the terms of the GNU General Public License version 2 only, as
|
||||
* published by the Free Software Foundation.
|
||||
*
|
||||
* This code is distributed in the hope that it will be useful, but WITHOUT
|
||||
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
|
||||
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
|
||||
* version 2 for more details (a copy is included in the LICENSE file that
|
||||
* accompanied this code).
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License version
|
||||
* 2 along with this work; if not, write to the Free Software Foundation,
|
||||
* Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
|
||||
*
|
||||
* Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
|
||||
* or visit www.oracle.com if you need additional information or have any
|
||||
* questions.
|
||||
*/
|
||||
|
||||
package pkg2;
|
||||
|
||||
public class Fields<E> implements java.io.Serializable {
|
||||
/** Some doc. */
|
||||
public Class<E> someClass;
|
||||
|
||||
/** a primitive array */
|
||||
private int[] a1;
|
||||
|
||||
/** a two dimensional primitive array */
|
||||
private int[][] a2;
|
||||
|
||||
/** a single object array */
|
||||
private Fields[] singleArray;
|
||||
|
||||
/** a double object array */
|
||||
private Fields[][] doubleArray;
|
||||
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue