diff --git a/Makefile b/Makefile
index a9afd54..a18aa13 100644
--- a/Makefile
+++ b/Makefile
@@ -14,3 +14,13 @@ todo:
echo "" >> TODO.txt
grep -n -r -e TODO ./src >> TODO.txt
grep -n -r -e TO\ DO ./src >> TODO.txt
+
+docker:
+ifdef NOCACHE
+ docker build --no-cache=true -t dogeared-extruder .
+else
+ docker build -t dogeared-extruder .
+endif
+
+docker-run:
+ docker run -it -p 8080:8080 dogeared-extruder java -jar /usr/local/jar/dogeared-extruder.jar server
diff --git a/README.md b/README.md
index 7f0f746..788b611 100644
--- a/README.md
+++ b/README.md
@@ -8,17 +8,13 @@ framework.
Important
--
-This package was not updated between May 2014 and February 2022. That means that nearly
-every other package that this one depends on is out of date and many have security vulnerabilities
-that have since been addressed.
+This package was not updated between May 2014 and February 2022.
There is a [v2 branch](https://github.com/aaronland/dogeared-extruder/tree/v2) for this package with up-to-date dependencies.
Unfortunately, some of those dependencies contain changes that need to be accounted for in this package's code. That
work is underway. Any help or suggestions would be appreciated.
-If you are using this version (anything before version 2.0) you should do so with care and the
-understanding that it may not be safe. Some of the more serious issues have been addressed with patched (but not necessarily
-current) versions but [a few still remain](https://github.com/straup/dogeared-extruder/security/dependabot). Buyer beware.
+In the meantime, known security vulnerabilities for older dependencies have been addressed.
Quick start
--
diff --git a/TODO.txt b/TODO.txt
index b769efa..b044809 100644
--- a/TODO.txt
+++ b/TODO.txt
@@ -1,10 +1,11 @@
-# Generated automatically at Tue Feb 25 13:58:20 CET 2014
+# Generated automatically at Tue Feb 15 22:45:38 PST 2022
./src/main/java/info/aaronland/extruder/ExtruderService.java:30: // TODO: put me in the config file... (20130908/straup)
-./src/main/java/info/aaronland/extruder/BoilerpipeResource.java:52: // TODO: trap MalformedURLExceptions and return NOT_ACCEPTABLE here (20130901/straup)
./src/main/java/info/aaronland/extruder/JavaReadabilityResource.java:54: // TODO: trap MalformedURLExceptions and return NOT_ACCEPTABLE here (20130901/straup)
+./src/main/java/info/aaronland/extruder/ExtruderApplication.java~:30: // TODO: put me in the config file... (20130908/straup)
+./src/main/java/info/aaronland/extruder/BoilerpipeResource.java:52: // TODO: trap MalformedURLExceptions and return NOT_ACCEPTABLE here (20130901/straup)
./src/main/java/com/basistech/readability/Readability.java:93: // TODO: reset the results.
./src/main/java/com/basistech/readability/Readability.java:368: * http://www.peachpit.com/articles/article.aspx?p=31567&seqNum=5 TODO: Shouldn't this be a reverse
./src/main/java/com/basistech/readability/Readability.java:686: * at the same time without effecting the traversal. TODO: Consider taking into account original
-./src/main/java/info/aaronland/extruder/Upload.java:20: // TO DO: sort out file extensions etc.
./src/main/java/info/aaronland/extruder/TikaResource.java:140: // TO DO: figure out how to make this return HTML instead of text
+./src/main/java/info/aaronland/extruder/Upload.java:20: // TO DO: sort out file extensions etc.
diff --git a/pom.xml b/pom.xml
index 1cd1cb7..f9699cd 100644
--- a/pom.xml
+++ b/pom.xml
@@ -79,8 +79,8 @@
xerces
- xerces
- 2.4.0
+ xercesImpl
+ 2.12.2
@@ -94,7 +94,7 @@
org.jsoup
jsoup
- 1.4.1
+ 1.14.3
jar
compile
diff --git a/src/main/java/com/basistech/readability/XmlDataMap.java b/src/main/java/com/basistech/readability/XmlDataMap.java
index b43e415..e473bd3 100755
--- a/src/main/java/com/basistech/readability/XmlDataMap.java
+++ b/src/main/java/com/basistech/readability/XmlDataMap.java
@@ -174,7 +174,7 @@ public TextNode splitText(int rangePoint, int splitPoint) {
assert splitPoint > 0;
OffsetRange range = offsetRanges.get(rangePoint);
assert splitPoint < range.getText().text().length();
- TextNode newText = new TextNode(range.getText().text().substring(splitPoint), null);
+ TextNode newText = new TextNode(range.getText().text().substring(splitPoint));
range.getText().text(range.getText().text().substring(0, splitPoint));
OffsetRange newRange = new OffsetRange(range.getStart() + splitPoint, range.getEnd(), newText);
offsetRanges.add(rangePoint + 1, newRange);