Author: centic
Date: Mon Apr 21 12:07:21 2025
New Revision: 1925199
URL: http://svn.apache.org/viewvc?rev=1925199&view=rev
Log:
ForbiddenApis: Adjust for deprecations in JDK 21+
Fix failures reported when raising the language level to 23
new URL() is deprecated
new Locale() is deprecated
still allow ThreadDeath and Thread.getId() for now to keep support for JDK 8
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/services/TimeStampSimpleHttpClient.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestTempFileThreaded.java
poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java
poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestNumericFunction.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestDataFormatter.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestExcelStyleDateFormatter.java
poi/trunk/poi/src/test/java/org/apache/poi/ss/util/TestDateFormatConverter.java
poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java
Modified:
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/services/TimeStampSimpleHttpClient.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/services/TimeStampSimpleHttpClient.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/services/TimeStampSimpleHttpClient.java
(original)
+++
poi/trunk/poi-ooxml/src/main/java/org/apache/poi/poifs/crypt/dsig/services/TimeStampSimpleHttpClient.java
Mon Apr 21 12:07:21 2025
@@ -24,6 +24,8 @@ import java.net.HttpURLConnection;
import java.net.InetAddress;
import java.net.InetSocketAddress;
import java.net.Proxy;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.nio.charset.StandardCharsets;
import java.security.GeneralSecurityException;
@@ -127,11 +129,11 @@ public class TimeStampSimpleHttpClient i
proxy = Proxy.NO_PROXY;
} else {
try {
- URL pUrl = new URL(proxyUrl);
+ URL pUrl = new URI(proxyUrl).toURL();
String host = pUrl.getHost();
int port = pUrl.getPort();
proxy = new Proxy(Proxy.Type.HTTP, new
InetSocketAddress(InetAddress.getByName(host), (port == -1 ? 80 : port)));
- } catch (IOException ignored) {
+ } catch (IOException | URISyntaxException ignored) {
}
}
}
@@ -205,7 +207,12 @@ public class TimeStampSimpleHttpClient i
}
protected TimeStampHttpClientResponse handleRedirect(String url,
MethodHandler handler, boolean followRedirect) throws IOException {
- HttpURLConnection huc = (HttpURLConnection)new
URL(url).openConnection(proxy);
+ final HttpURLConnection huc;
+ try {
+ huc = (HttpURLConnection)new
URI(url).toURL().openConnection(proxy);
+ } catch (URISyntaxException e) {
+ throw new IOException(e);
+ }
if (ignoreHttpsCertificates) {
recklessConnection(huc);
}
Modified:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java
(original)
+++
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/poifs/crypt/dsig/TestSignatureInfo.java
Mon Apr 21 12:07:21 2025
@@ -41,6 +41,8 @@ import java.net.ConnectException;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.SocketTimeoutException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.security.GeneralSecurityException;
import java.security.KeyStoreException;
@@ -597,8 +599,8 @@ class TestSignatureInfo {
public static String getAccessError(String destinationUrl, boolean
fireRequest, int timeout) {
URL url;
try {
- url = new URL(destinationUrl);
- } catch (MalformedURLException e) {
+ url = new URI(destinationUrl).toURL();
+ } catch (MalformedURLException | URISyntaxException e) {
throw new IllegalArgumentException("Invalid destination URL", e);
}
Modified:
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestTempFileThreaded.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestTempFileThreaded.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestTempFileThreaded.java
(original)
+++
poi/trunk/poi-ooxml/src/test/java/org/apache/poi/util/tests/TestTempFileThreaded.java
Mon Apr 21 12:07:21 2025
@@ -33,6 +33,7 @@ import java.util.Map;
import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
+import org.apache.poi.util.SuppressForbidden;
import org.apache.poi.util.TempFile;
import org.apache.poi.util.TempFileCreationStrategy;
import org.apache.poi.xssf.streaming.SXSSFSheet;
@@ -51,6 +52,7 @@ class TestTempFileThreaded {
// the actual thread-safe temp-file strategy
private static TempFileCreationStrategy
createTempFileCreationStrategy(File poiTempFileDirectory) {
return new TempFileCreationStrategy() {
+ @SuppressForbidden("Thread.getId() is deprecated and replaced with
threadId() in JDK 19+")
@Override
public File createTempFile(String prefix, String suffix) throws
IOException {
long threadId = Thread.currentThread().getId();
Modified:
poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java
(original)
+++
poi/trunk/poi-scratchpad/src/test/java/org/apache/poi/hslf/usermodel/TestPictures.java
Mon Apr 21 12:07:21 2025
@@ -29,6 +29,8 @@ import java.awt.geom.Dimension2D;
import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.Arrays;
import java.util.Collections;
@@ -271,9 +273,9 @@ public final class TestPictures {
@Test
@Disabled("requires an internet connection to a 3rd party site")
// As of 2017-06-20, the file still exists at the specified URL and the
test passes.
- void testZeroPictureLength() throws IOException {
+ void testZeroPictureLength() throws IOException, URISyntaxException {
// take the data from www instead of test directory
- URL url = new
URL("http://www.cs.sfu.ca/~anoop/courses/CMPT-882-Fall-2002/chris.ppt");
+ URL url = new
URI("http://www.cs.sfu.ca/~anoop/courses/CMPT-882-Fall-2002/chris.ppt").toURL();
HSLFSlideShowImpl hslf = new HSLFSlideShowImpl(url.openStream());
/* Assume that the file could retrieved...
InputStream is;
Modified:
poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java
(original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/hssf/usermodel/TestBugs.java Mon
Apr 21 12:07:21 2025
@@ -26,6 +26,8 @@ import java.awt.image.BufferedImage;
import java.io.ByteArrayInputStream;
import java.io.File;
import java.io.IOException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Arrays;
@@ -2316,12 +2318,12 @@ final class TestBugs extends BaseTestBug
}
@Test
- void test46515() throws IOException {
+ void test46515() throws IOException, URISyntaxException {
try (Workbook wb = openSampleWorkbook("46515.xls")) {
// Get structure from webservice
String urlString =
"https://poi.apache.org/components/spreadsheet/images/calendar.jpg";
- URL structURL = new URL(urlString);
+ URL structURL = new URI(urlString).toURL();
BufferedImage bimage;
try {
bimage = ImageIO.read(structURL);
Modified:
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
(original)
+++
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/function/ExcelFileFormatDocFunctionExtractor.java
Mon Apr 21 12:07:21 2025
@@ -26,6 +26,8 @@ import java.io.UncheckedIOException;
import java.io.UnsupportedEncodingException;
import java.math.BigInteger;
import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.net.URLConnection;
import java.nio.charset.StandardCharsets;
@@ -171,7 +173,7 @@ public final class ExcelFileFormatDocFun
String returnClass, String paramClasses,
String volatileFlagStr) {
boolean isVolatile = volatileFlagStr.length() > 0;
- Integer funcIxKey = Integer.valueOf(funcIx);
+ Integer funcIxKey = funcIx;
if(!_groupFunctionIndexes.add(funcIxKey)) {
throw new RuntimeException("Duplicate function index (" +
funcIx + ")");
}
@@ -209,7 +211,7 @@ public final class ExcelFileFormatDocFun
throw new RuntimeException("changing function '"
+ funcName + "' definition without foot-note");
}
-
_allFunctionsByIndex.remove(Integer.valueOf(fdPrev.getIndex()));
+ _allFunctionsByIndex.remove(fdPrev.getIndex());
}
}
@@ -326,7 +328,7 @@ public final class ExcelFileFormatDocFun
processTableRow(cellData, noteFlags);
} else if(matchesRelPath(TABLE_CELL_RELPATH_NAMES)) {
_rowData.add(_textNodeBuffer.toString().trim());
- _rowNoteFlags.add(Boolean.valueOf(_cellHasNote));
+ _rowNoteFlags.add(_cellHasNote);
_textNodeBuffer.setLength(0);
}
}
@@ -350,7 +352,7 @@ public final class ExcelFileFormatDocFun
}
int funcIx = parseInt(funcIxStr);
- boolean hasFootnote = noteFlags[i + 1].booleanValue();
+ boolean hasFootnote = noteFlags[i + 1];
String funcName = cellData[i + 1];
int minParams = parseInt(cellData[i + 2]);
int maxParams = parseInt(cellData[i + 3]);
@@ -577,8 +579,8 @@ public final class ExcelFileFormatDocFun
private static File downloadSourceFile() {
URL url;
try {
- url = new URL("http://sc.openoffice.org/" + SOURCE_DOC_FILE_NAME);
- } catch (MalformedURLException e) {
+ url = new URI("http://sc.openoffice.org/" +
SOURCE_DOC_FILE_NAME).toURL();
+ } catch (MalformedURLException | URISyntaxException e) {
throw new RuntimeException(e);
}
Modified:
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestNumericFunction.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestNumericFunction.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestNumericFunction.java
(original)
+++
poi/trunk/poi/src/test/java/org/apache/poi/ss/formula/functions/TestNumericFunction.java
Mon Apr 21 12:07:21 2025
@@ -69,7 +69,7 @@ final class TestNumericFunction {
void testDOLLAR() {
Locale defaultLocale = LocaleUtil.getUserLocale();
try {
- LocaleUtil.setUserLocale(new Locale("en", "US"));
+ LocaleUtil.setUserLocale(new
Locale.Builder().setLanguage("en").setRegion("US").build());
HSSFWorkbook wb = new HSSFWorkbook();
HSSFCell cell = wb.createSheet().createRow(0).createCell(0);
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
@@ -89,7 +89,7 @@ final class TestNumericFunction {
void testDOLLARIreland() {
Locale defaultLocale = LocaleUtil.getUserLocale();
try {
- LocaleUtil.setUserLocale(new Locale("en", "IE"));
+ LocaleUtil.setUserLocale(new
Locale.Builder().setLanguage("en").setRegion("IE").build());
HSSFWorkbook wb = new HSSFWorkbook();
HSSFCell cell = wb.createSheet().createRow(0).createCell(0);
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
@@ -104,7 +104,7 @@ final class TestNumericFunction {
void testDOLLARSpain() {
Locale defaultLocale = LocaleUtil.getUserLocale();
try {
- LocaleUtil.setUserLocale(new Locale("es", "ES"));
+ LocaleUtil.setUserLocale(new
Locale.Builder().setLanguage("es").setRegion("ES").build());
HSSFWorkbook wb = new HSSFWorkbook();
HSSFCell cell = wb.createSheet().createRow(0).createCell(0);
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
@@ -119,7 +119,7 @@ final class TestNumericFunction {
void testDOLLARJapan() {
Locale defaultLocale = LocaleUtil.getUserLocale();
try {
- LocaleUtil.setUserLocale(new Locale("ja", "JP"));
+ LocaleUtil.setUserLocale(new
Locale.Builder().setLanguage("ja").setRegion("JP").build());
HSSFWorkbook wb = new HSSFWorkbook();
HSSFCell cell = wb.createSheet().createRow(0).createCell(0);
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
@@ -135,7 +135,7 @@ final class TestNumericFunction {
void testDOLLARDenmark() {
Locale defaultLocale = LocaleUtil.getUserLocale();
try {
- LocaleUtil.setUserLocale(new Locale("da", "DK"));
+ LocaleUtil.setUserLocale(new
Locale.Builder().setLanguage("da").setRegion("DK").build());
HSSFWorkbook wb = new HSSFWorkbook();
HSSFCell cell = wb.createSheet().createRow(0).createCell(0);
HSSFFormulaEvaluator fe = new HSSFFormulaEvaluator(wb);
Modified:
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestDataFormatter.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestDataFormatter.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestDataFormatter.java
(original)
+++
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestDataFormatter.java
Mon Apr 21 12:07:21 2025
@@ -937,7 +937,7 @@ class TestDataFormatter {
// 2017-12-01 09:54:33 which is 42747.412892397523 as double
DataFormatter dfDE = new DataFormatter(Locale.GERMANY);
DataFormatter dfZH = new DataFormatter(Locale.PRC);
- DataFormatter dfIE = new DataFormatter(new Locale("GA", "IE"));
+ DataFormatter dfIE = new DataFormatter(new
Locale.Builder().setLanguage("GA").setRegion("IE").build());
double date = 42747.412892397523;
String format = "dd MMMM yyyy HH:mm:ss";
assertEquals("12 Januar 2017 09:54:33",
dfDE.formatRawCellContents(date, -1, format));
Modified:
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestExcelStyleDateFormatter.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestExcelStyleDateFormatter.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestExcelStyleDateFormatter.java
(original)
+++
poi/trunk/poi/src/test/java/org/apache/poi/ss/usermodel/TestExcelStyleDateFormatter.java
Mon Apr 21 12:07:21 2025
@@ -103,15 +103,15 @@ class TestExcelStyleDateFormatter {
public static Stream<Arguments> initializeLocales() throws ParseException {
Object[][] locExps = {
{ Locale.GERMAN, "JFMAMJJASOND" },
- { new Locale("de", "AT"), "JFMAMJJASOND" },
+ { new Locale.Builder().setLanguage("de").setRegion("AT").build(),
"JFMAMJJASOND" },
{ Locale.UK, "JFMAMJJASOND" },
- { new Locale("en", "IN"), "JFMAMJJASOND" },
- { new Locale("in", "ID"), "JFMAMJJASOND" },
+ { new Locale.Builder().setLanguage("en").setRegion("IN").build(),
"JFMAMJJASOND" },
+ { new Locale.Builder().setLanguage("in").setRegion("ID").build(),
"JFMAMJJASOND" },
{ Locale.FRENCH, "jfmamjjasond" },
- { new Locale("ru", "RU"),
"\u044f\u0444\u043c\u0430\u043c\u0438\u0438\u0430\u0441\u043e\u043d\u0434" },
+ { new Locale.Builder().setLanguage("ru").setRegion("RU").build(),
"\u044f\u0444\u043c\u0430\u043c\u0438\u0438\u0430\u0441\u043e\u043d\u0434" },
{ Locale.CHINESE, localeIndex(Locale.CHINESE) == 0 ?
"\u4e00\u4e8c\u4e09\u56db\u4e94\u516d\u4e03\u516b\u4e5d\u5341\u5341\u5341" :
"123456789111" },
- { new Locale("tr", "TR"),
"\u004f\u015e\u004d\u004e\u004d\u0048\u0054\u0041\u0045\u0045\u004b\u0041" },
- { new Locale("hu", "HU"),
"\u006a\u0066\u006d\u00e1\u006d\u006a\u006a\u0061\u0073\u006f\u006e\u0064" }
+ { new Locale.Builder().setLanguage("tr").setRegion("TR").build(),
"\u004f\u015e\u004d\u004e\u004d\u0048\u0054\u0041\u0045\u0045\u004b\u0041" },
+ { new Locale.Builder().setLanguage("hu").setRegion("HU").build(),
"\u006a\u0066\u006d\u00e1\u006d\u006a\u006a\u0061\u0073\u006f\u006e\u0064" }
};
String[] dates = {
Modified:
poi/trunk/poi/src/test/java/org/apache/poi/ss/util/TestDateFormatConverter.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/ss/util/TestDateFormatConverter.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
---
poi/trunk/poi/src/test/java/org/apache/poi/ss/util/TestDateFormatConverter.java
(original)
+++
poi/trunk/poi/src/test/java/org/apache/poi/ss/util/TestDateFormatConverter.java
Mon Apr 21 12:07:21 2025
@@ -130,7 +130,7 @@ final class TestDateFormatConverter {
void testJDK8EmptyLocale() {
// JDK 8 seems to add an empty locale-string to the list returned via
DateFormat.getAvailableLocales()
// therefore we now cater for this special locale as well
- String prefix = getPrefixForLocale(new Locale(""));
+ String prefix = getPrefixForLocale(new Locale.Builder().build());
assertEquals("", prefix);
}
Modified: poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java
URL:
http://svn.apache.org/viewvc/poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java?rev=1925199&r1=1925198&r2=1925199&view=diff
==============================================================================
--- poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java
(original)
+++ poi/trunk/poi/src/test/java/org/apache/poi/util/ExceptionUtilTest.java Mon
Apr 21 12:07:21 2025
@@ -42,7 +42,7 @@ class ExceptionUtilTest {
assertTrue(ExceptionUtil.isFatal(new VirtualMachineError(){}));
}
-
+ @SuppressForbidden("Test with ThreadDeath on purpose here")
@Test
void testThreadDeath() {
assertTrue(ExceptionUtil.isFatal(new ThreadDeath()));
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]