Index: src/java/org/apache/lucene/analysis/CharTokenizer.java
===================================================================
--- src/java/org/apache/lucene/analysis/CharTokenizer.java	(revision 769060)
+++ src/java/org/apache/lucene/analysis/CharTokenizer.java	(working copy)
@@ -90,8 +90,7 @@
     }
 
     termAtt.setTermLength(length);
-    offsetAtt.setStartOffset(start);
-    offsetAtt.setEndOffset(start+length);
+    offsetAtt.setOffset(start, start+length);
     return true;
   }
 
Index: src/java/org/apache/lucene/analysis/KeywordTokenizer.java
===================================================================
--- src/java/org/apache/lucene/analysis/KeywordTokenizer.java	(revision 769060)
+++ src/java/org/apache/lucene/analysis/KeywordTokenizer.java	(working copy)
@@ -59,8 +59,7 @@
           buffer = termAtt.resizeTermBuffer(1+buffer.length);
       }
       termAtt.setTermLength(upto);
-      offsetAtt.setStartOffset(0);
-      offsetAtt.setEndOffset(upto);
+      offsetAtt.setOffset(0, upto);
       return true;
     }
     return false;
Index: src/java/org/apache/lucene/analysis/standard/StandardTokenizer.java
===================================================================
--- src/java/org/apache/lucene/analysis/standard/StandardTokenizer.java	(revision 769060)
+++ src/java/org/apache/lucene/analysis/standard/StandardTokenizer.java	(working copy)
@@ -161,8 +161,7 @@
         posIncrAtt.setPositionIncrement(posIncr);
         scanner.getText(termAtt);
         final int start = scanner.yychar();
-        offsetAtt.setStartOffset(start);
-        offsetAtt.setEndOffset(start+termAtt.termLength());
+        offsetAtt.setOffset(start, start+termAtt.termLength());
         // This 'if' should be removed in the next release. For now, it converts
         // invalid acronyms to HOST. When removed, only the 'else' part should
         // remain.
Index: src/java/org/apache/lucene/analysis/tokenattributes/OffsetAttribute.java
===================================================================
--- src/java/org/apache/lucene/analysis/tokenattributes/OffsetAttribute.java	(revision 769060)
+++ src/java/org/apache/lucene/analysis/tokenattributes/OffsetAttribute.java	(working copy)
@@ -43,11 +43,14 @@
     return startOffset;
   }
 
-  /** Set the starting offset.
-    @see #startOffset() */
-  public void setStartOffset(int offset) {
-    this.startOffset = offset;
+  
+  /** Set the starting and ending offset.
+    @see #startOffset() and #endOffset()*/
+  public void setOffset(int startOffset, int endOffset) {
+    this.startOffset = startOffset;
+    this.endOffset = endOffset;
   }
+  
 
   /** Returns this Token's ending offset, one greater than the position of the
   last character corresponding to this token in the source text. The length
@@ -56,11 +59,6 @@
     return endOffset;
   }
 
-  /** Set the ending offset.
-    @see #endOffset() */
-  public void setEndOffset(int offset) {
-    this.endOffset = offset;
-  }
 
   public void clear() {
     startOffset = 0;
@@ -92,7 +90,6 @@
   
   public void copyTo(Attribute target) {
     OffsetAttribute t = (OffsetAttribute) target;
-    t.setStartOffset(startOffset);
-    t.setEndOffset(endOffset);
+    t.setOffset(startOffset, endOffset);
   }  
 }
Index: src/java/org/apache/lucene/index/DocInverterPerThread.java
===================================================================
--- src/java/org/apache/lucene/index/DocInverterPerThread.java	(revision 769060)
+++ src/java/org/apache/lucene/index/DocInverterPerThread.java	(working copy)
@@ -53,8 +53,7 @@
     
     public void reinit(String stringValue, int startOffset,  int endOffset) {
       termAttribute.setTermBuffer(stringValue);
-      offsetAttribute.setStartOffset(startOffset);
-      offsetAttribute.setEndOffset(endOffset);
+      offsetAttribute.setOffset(startOffset, endOffset);
     }
   }
   
Index: src/test/org/apache/lucene/analysis/TestCachingTokenFilter.java
===================================================================
--- src/test/org/apache/lucene/analysis/TestCachingTokenFilter.java	(revision 769060)
+++ src/test/org/apache/lucene/analysis/TestCachingTokenFilter.java	(working copy)
@@ -51,8 +51,7 @@
           return false;
         } else {
           termAtt.setTermBuffer(tokens[index++]);
-          offsetAtt.setStartOffset(0);
-          offsetAtt.setEndOffset(0);
+          offsetAtt.setOffset(0,0);
           return true;
         }        
       }
Index: src/test/org/apache/lucene/index/TestTermVectorsReader.java
===================================================================
--- src/test/org/apache/lucene/index/TestTermVectorsReader.java	(revision 769060)
+++ src/test/org/apache/lucene/index/TestTermVectorsReader.java	(working copy)
@@ -137,8 +137,7 @@
       else {
         final TestToken testToken = tokens[tokenUpto++];
         termAtt.setTermBuffer(testToken.text);
-        offsetAtt.setStartOffset(testToken.startOffset);
-        offsetAtt.setEndOffset(testToken.endOffset);
+        offsetAtt.setOffset(testToken.startOffset, testToken.endOffset);
         if (tokenUpto > 1) {
           posIncrAtt.setPositionIncrement(testToken.pos - tokens[tokenUpto-2].pos);
         } else {
Index: src/test/org/apache/lucene/queryParser/TestMultiAnalyzer.java
===================================================================
--- src/test/org/apache/lucene/queryParser/TestMultiAnalyzer.java	(revision 769060)
+++ src/test/org/apache/lucene/queryParser/TestMultiAnalyzer.java	(working copy)
@@ -163,8 +163,7 @@
     public final boolean incrementToken() throws java.io.IOException {
       if (multiToken > 0) {
         termAtt.setTermBuffer("multi"+(multiToken+1));
-        offsetAtt.setStartOffset(prevStartOffset);
-        offsetAtt.setEndOffset(prevEndOffset);
+        offsetAtt.setOffset(prevStartOffset, prevEndOffset);
         typeAtt.setType(prevType);
         posIncrAtt.setPositionIncrement(0);
         multiToken--;
Index: src/test/org/apache/lucene/queryParser/TestQueryParser.java
===================================================================
--- src/test/org/apache/lucene/queryParser/TestQueryParser.java	(revision 769060)
+++ src/test/org/apache/lucene/queryParser/TestQueryParser.java	(working copy)
@@ -85,8 +85,7 @@
       if (inPhrase) {
         inPhrase = false;
         termAtt.setTermBuffer("phrase2");
-        offsetAtt.setStartOffset(savedStart);
-        offsetAtt.setEndOffset(savedEnd);
+        offsetAtt.setOffset(savedStart, savedEnd);
         return true;
       } else
         while (input.incrementToken()) {
@@ -95,8 +94,7 @@
             savedStart = offsetAtt.startOffset();
             savedEnd = offsetAtt.endOffset();
             termAtt.setTermBuffer("phrase1");
-            offsetAtt.setStartOffset(savedStart);
-            offsetAtt.setEndOffset(savedEnd);
+            offsetAtt.setOffset(savedStart, savedEnd);
             return true;
           } else if (!termAtt.term().equals("stop"))
             return true;
Index: src/test/org/apache/lucene/search/TestPositionIncrement.java
===================================================================
--- src/test/org/apache/lucene/search/TestPositionIncrement.java	(revision 769060)
+++ src/test/org/apache/lucene/search/TestPositionIncrement.java	(working copy)
@@ -59,8 +59,7 @@
             if (i == TOKENS.length)
               return false;
             termAtt.setTermBuffer(TOKENS[i]);
-            offsetAtt.setStartOffset(i);
-            offsetAtt.setEndOffset(i);
+            offsetAtt.setOffset(i,i);
             posIncrAtt.setPositionIncrement(INCREMENTS[i]);
             i++;
             return true;
