8202582: DateTimeFormatterBuilder.parseOffsetBased unnecessarily calls toString()
Summary: call text.subSequence() before calling toString() on input string
Reviewed-by: igerasim
--- a/src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java Fri May 04 11:41:35 2018 +0200
+++ b/src/java.base/share/classes/java/time/format/DateTimeFormatterBuilder.java Fri May 04 15:44:24 2018 +0530
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2012, 2017, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2012, 2018, 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
@@ -4262,7 +4262,7 @@
* @return the position after the parse
*/
private int parseOffsetBased(DateTimeParseContext context, CharSequence text, int prefixPos, int position, OffsetIdPrinterParser parser) {
- String prefix = text.toString().substring(prefixPos, position).toUpperCase();
+ String prefix = text.subSequence(prefixPos, position).toString().toUpperCase();
if (position >= text.length()) {
context.setParsed(ZoneId.of(prefix));
return position;