summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew John Hughes <gnu_andrew@member.fsf.org>2009-07-07 10:27:17 +0000
committerAndrew John Hughes <gnu_andrew@member.fsf.org>2009-07-07 10:27:17 +0000
commitd50d3f0c5bcb967a5bcaa999e1c54c51cd78dcd2 (patch)
treea76ceef9e4d8081721169db1f96375c74595d921
parent51f0782f422554f15cb827bc898e96f5a239558c (diff)
downloadclasspath-d50d3f0c5bcb967a5bcaa999e1c54c51cd78dcd2.tar.gz
Correctly spot EOF in java.util.Scanner#hasNextLine().
2009-07-07 Andrew John Hughes <ahughes@redhat.com> PR classpath/40630 * java/util/Scanner.java: (myCoreNext(boolean, Pattern)): Set tmp2 to null if the string is empty (i.e. we are at the end of the file). * java/util/regex/Matcher.java: (toMatchResult()): Check that match is non-null before attempting to clone it.
-rw-r--r--ChangeLog11
-rw-r--r--java/util/Scanner.java2
-rw-r--r--java/util/regex/Matcher.java3
3 files changed, 15 insertions, 1 deletions
diff --git a/ChangeLog b/ChangeLog
index 59b109241..77a6620ab 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,16 @@
2009-07-07 Andrew John Hughes <ahughes@redhat.com>
+ PR classpath/40630
+ * java/util/Scanner.java:
+ (myCoreNext(boolean, Pattern)): Set tmp2 to
+ null if the string is empty (i.e. we are at
+ the end of the file).
+ * java/util/regex/Matcher.java:
+ (toMatchResult()): Check that match is non-null
+ before attempting to clone it.
+
+2009-07-07 Andrew John Hughes <ahughes@redhat.com>
+
* java/util/Scanner.java,
* java/util/regex/Matcher.java:
Replace tab characters with spaces.
diff --git a/java/util/Scanner.java b/java/util/Scanner.java
index a46755f9f..59c4cc0ff 100644
--- a/java/util/Scanner.java
+++ b/java/util/Scanner.java
@@ -1668,6 +1668,8 @@ public class Scanner
// the end of input is matched
{
tmp2 = this.actBuffer.substring (this.actPos);
+ if (tmp2.length() == 0)
+ tmp2 = null;
this.lastNextPos = this.actBuffer.length ();
if (delete)
{
diff --git a/java/util/regex/Matcher.java b/java/util/regex/Matcher.java
index c27a70bf9..be57471de 100644
--- a/java/util/regex/Matcher.java
+++ b/java/util/regex/Matcher.java
@@ -603,7 +603,8 @@ public final class Matcher implements MatchResult
public MatchResult toMatchResult()
{
Matcher snapshot = new Matcher(pattern, input);
- snapshot.match = (REMatch) match.clone();
+ if (match != null)
+ snapshot.match = (REMatch) match.clone();
return snapshot;
}