Index: src/java/org/apache/lucene/queryParser/QueryParser.jj =================================================================== RCS file: /home/cvspublic/jakarta-lucene/src/java/org/apache/lucene/queryParser/QueryParser.jj,v retrieving revision 1.23 diff -c -u -r1.23 QueryParser.jj --- src/java/org/apache/lucene/queryParser/QueryParser.jj 13 Jan 2003 23:50:33 -0000 1.23 +++ src/java/org/apache/lucene/queryParser/QueryParser.jj 17 Jan 2003 15:53:00 -0000 @@ -535,7 +535,10 @@ } catch (Exception ignored) { } - q.setBoost(f); + // could happen with boosted stopword + if(q!=null) { + q.setBoost(f); + } } return q; } Index: src/test/org/apache/lucene/queryParser/TestQueryParser.java =================================================================== RCS file: /home/cvspublic/jakarta-lucene/src/test/org/apache/lucene/queryParser/TestQueryParser.java,v retrieving revision 1.17 diff -c -u -r1.17 TestQueryParser.java --- src/test/org/apache/lucene/queryParser/TestQueryParser.java 13 Jan 2003 23:50:34 -0000 1.17 +++ src/test/org/apache/lucene/queryParser/TestQueryParser.java 17 Jan 2003 15:53:00 -0000 @@ -306,4 +306,19 @@ assertQueryEqualsDOA("term +term +term", null, "+term +term +term"); assertQueryEqualsDOA("-term term term", null, "-term +term +term"); } + + public void testBoost() throws Exception { + StandardAnalyzer oneStopAnalyzer = new StandardAnalyzer(new String[]{"on"}); + QueryParser qp = new QueryParser("field", oneStopAnalyzer); + Query q = qp.parse("on^1.0"); + assertNotNull(q); + q = qp.parse("\"hello\"^2.0"); + assertNotNull(q); + assertEquals(q.getBoost(), (float)2.0, (float)0.5); + q = qp.parse("hello^2.0"); + assertNotNull(q); + assertEquals(q.getBoost(), (float)2.0, (float)0.5); + q = qp.parse("\"on\"^1.0"); + assertNotNull(q); + } }