diff --git a/dev-java/jfreechart/Manifest b/dev-java/jfreechart/Manifest
new file mode 100644
index 0000000000..b7458ca749
--- /dev/null
+++ b/dev-java/jfreechart/Manifest
@@ -0,0 +1 @@
+DIST jfreechart-1.0.19.zip 8050676 BLAKE2B be5ac67befd6a16c9771f50bca59c3543251984b60e00e8aef350cadb1121caf391a8dddc383fa08ed89b0346e2a057a8da6a70b224d7f843f19535a4df873b2 SHA512 6345e6a6b4a82862f3908794efb70a6f5413f313ba5bcff1dfb713d21948034d80c743a0cea61be81921c62736b07209ed4b942fedca0c76226b1202a4596b31
diff --git a/dev-java/jfreechart/files/jfreechart-1.0.19-build.xml.patch b/dev-java/jfreechart/files/jfreechart-1.0.19-build.xml.patch
new file mode 100644
index 0000000000..3c03f2aaf2
--- /dev/null
+++ b/dev-java/jfreechart/files/jfreechart-1.0.19-build.xml.patch
@@ -0,0 +1,25 @@
+--- a/ant/build.xml
++++ b/ant/build.xml
+@@ -40,10 +40,9 @@
+
+
+
+-
+-
+-
+-
++
++
++
+
+
+
+@@ -321,7 +320,7 @@
+
+
+
+
+
diff --git a/dev-java/jfreechart/files/jfreechart-1.0.19-fix-TimeSeriesCollectionTest.patch b/dev-java/jfreechart/files/jfreechart-1.0.19-fix-TimeSeriesCollectionTest.patch
new file mode 100644
index 0000000000..e378224415
--- /dev/null
+++ b/dev-java/jfreechart/files/jfreechart-1.0.19-fix-TimeSeriesCollectionTest.patch
@@ -0,0 +1,24 @@
+--- a/tests/org/jfree/data/time/TimeSeriesCollectionTest.java
++++ b/tests/org/jfree/data/time/TimeSeriesCollectionTest.java
+@@ -339,6 +339,10 @@
+ * java.util.List, boolean)} method.
+ */
+ public void testFindDomainBounds() {
++ // store the current time zone
++ TimeZone saved = TimeZone.getDefault();
++ TimeZone.setDefault(TimeZone.getTimeZone("Europe/Paris"));
++
+ TimeSeriesCollection dataset = new TimeSeriesCollection();
+ List visibleSeriesKeys = new java.util.ArrayList();
+ Range r = DatasetUtilities.findDomainBounds(dataset, visibleSeriesKeys,
+@@ -351,10 +355,6 @@
+ r = DatasetUtilities.findDomainBounds(dataset, visibleSeriesKeys, true);
+ assertNull(r);
+
+- // store the current time zone
+- TimeZone saved = TimeZone.getDefault();
+- TimeZone.setDefault(TimeZone.getTimeZone("Europe/Paris"));
+-
+ s1.add(new Year(2008), 8.0);
+ r = DatasetUtilities.findDomainBounds(dataset, visibleSeriesKeys, true);
+ assertEquals(1199142000000.0, r.getLowerBound(), EPSILON);
diff --git a/dev-java/jfreechart/jfreechart-1.0.19-r1.ebuild b/dev-java/jfreechart/jfreechart-1.0.19-r1.ebuild
new file mode 100644
index 0000000000..b5bdab8e2f
--- /dev/null
+++ b/dev-java/jfreechart/jfreechart-1.0.19-r1.ebuild
@@ -0,0 +1,82 @@
+# Copyright 1999-2022 Gentoo Authors
+# Distributed under the terms of the GNU General Public License v2
+
+EAPI=8
+
+JAVA_PKG_IUSE="doc source"
+
+inherit java-pkg-2 java-ant-2
+
+DESCRIPTION="JFreeChart is a free Java class library for generating charts"
+HOMEPAGE="http://www.jfree.org/jfreechart"
+SRC_URI="mirror://sourceforge/${PN}/${P}.zip"
+
+LICENSE="LGPL-2.1"
+SLOT="1.0"
+KEYWORDS="~amd64"
+IUSE="test"
+
+CDEPEND="
+ dev-java/hamcrest-core:1.3
+ >=dev-java/jcommon-1.0.23:1.0
+ dev-java/jfreesvg:3
+ dev-java/orson-charts:1
+ dev-java/orsonpdf:1
+ java-virtuals/servlet-api:3.0
+"
+RDEPEND="
+ ${CDEPEND}
+ >=virtual/jre-1.8:*
+"
+DEPEND="
+ ${CDEPEND}
+ test? (
+ dev-java/ant-junit:0
+ dev-java/junit:4
+ )
+ app-arch/unzip
+ >=virtual/jdk-1.8:*
+"
+
+RESTRICT="test"
+PATCHES=(
+ "${FILESDIR}/${PN}-1.0.19-build.xml.patch"
+ "${FILESDIR}/${PN}-1.0.19-fix-TimeSeriesCollectionTest.patch"
+)
+
+JAVA_ANT_ENCODING="ISO-8859-1"
+JAVA_ANT_REWRITE_CLASSPATH="yes"
+EANT_BUILD_XML="ant/build.xml"
+EANT_BUILD_TARGET="compile-experimental"
+EANT_DOC_TARGET="javadoc"
+EANT_GENTOO_CLASSPATH="
+ hamcrest-core-1.3
+ jfreesvg-3
+ jcommon-1.0
+ orsonpdf-1
+ orson-charts-1
+ servlet-api-3.0
+"
+
+src_prepare() {
+ java-pkg_clean
+ default
+ pushd lib || die
+ java-pkg_jar-from jfreesvg-3 jfreesvg.jar jfreesvg-3.2.jar
+ java-pkg_jar-from orson-charts-1 orsoncharts.jar orsoncharts-1.4-eval-nofx.jar
+ java-pkg_jar-from orsonpdf-1 orsonpdf.jar orsonpdf-1.6-eval.jar
+ java-pkg_jar-from --virtual servlet-api-3.0 servlet-api.jar servlet.jar
+ java-pkg_jar-from jcommon-1.0 jcommon.jar jcommon-1.0.23.jar
+ java-pkg_jar-from hamcrest-core-1.3 hamcrest-core.jar hamcrest-core-1.3.jar
+ popd || die
+}
+
+src_install() {
+ java-pkg_newjar "lib/${P}.jar" "${PN}.jar"
+ java-pkg_newjar "lib/${P}-experimental.jar" "${PN}-experimental.jar"
+
+ dodoc README.txt ChangeLog NEWS
+
+ use doc && java-pkg_dojavadoc javadoc
+ use source && java-pkg_dosrc source/org
+}
diff --git a/dev-java/jfreechart/metadata.xml b/dev-java/jfreechart/metadata.xml
new file mode 100644
index 0000000000..b6ee6ec148
--- /dev/null
+++ b/dev-java/jfreechart/metadata.xml
@@ -0,0 +1,13 @@
+
+
+
+
+ co-maintainers welcome
+ Alessandro Barbieri
+ lssndrbarbieri@gmail.com
+
+
+ https://github.com/jfree/jfreechart/issues
+ jfree/jfreechart
+
+