You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@felix.apache.org by gn...@apache.org on 2017/02/13 14:42:40 UTC
svn commit: r1782786 - in /felix/trunk/gogo/runtime/src:
main/java/org/apache/felix/gogo/runtime/Tokenizer.java
test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
Author: gnodet
Date: Mon Feb 13 14:42:40 2017
New Revision: 1782786
URL: http://svn.apache.org/viewvc?rev=1782786&view=rev
Log:
[FELIX-5541] ArrayIndexOutOfBoundsException in the parser
Modified:
felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Tokenizer.java
felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
Modified: felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Tokenizer.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Tokenizer.java?rev=1782786&r1=1782785&r2=1782786&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Tokenizer.java (original)
+++ felix/trunk/gogo/runtime/src/main/java/org/apache/felix/gogo/runtime/Tokenizer.java Mon Feb 13 14:42:40 2017
@@ -107,11 +107,14 @@ public class Tokenizer extends BaseToken
case '>':
case '<':
t = text.subSequence(start, index);
- tn = text.subSequence(start, index + 1);
- if (redir.matcher(tn).matches())
+ if (!eot())
{
- getch();
- break;
+ tn = text.subSequence(start, index + 1);
+ if (redir.matcher(tn).matches())
+ {
+ getch();
+ break;
+ }
}
if (redir.matcher(t).matches() && start < index - 1)
{
Modified: felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java
URL: http://svn.apache.org/viewvc/felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java?rev=1782786&r1=1782785&r2=1782786&view=diff
==============================================================================
--- felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java (original)
+++ felix/trunk/gogo/runtime/src/test/java/org/apache/felix/gogo/runtime/TestTokenizer.java Mon Feb 13 14:42:40 2017
@@ -529,6 +529,13 @@ public class TestTokenizer
}
}
+ @Test
+ public void testFelix5541() {
+ Tokenizer t = new Tokenizer("<");
+ assertEquals("<", t.next().toString());
+ assertNull(t.next());
+ }
+
private BundleContext createMockContext() throws ClassNotFoundException
{
Bundle systemBundle = mock(Bundle.class);