This is an automated email from the ASF dual-hosted git repository.
remm pushed a commit to branch 9.0.x
in repository https://gitbox.apache.org/repos/asf/tomcat.git
The following commit(s) were added to refs/heads/9.0.x by this push:
new 4fd9f16076 Deprecate offset, as mentioned in the todo
4fd9f16076 is described below
commit 4fd9f16076d1ebcc2c0f970e4893a858bc0de025
Author: remm <[email protected]>
AuthorDate: Fri May 3 14:31:38 2024 +0200
Deprecate offset, as mentioned in the todo
Javadoc improvements.
---
.../catalina/authenticator/BasicAuthenticator.java | 4 +-
.../authenticator/SpnegoAuthenticator.java | 2 +-
java/org/apache/catalina/mapper/Mapper.java | 42 ++++++-------
java/org/apache/coyote/ajp/AjpMessage.java | 2 +-
java/org/apache/coyote/ajp/AjpProcessor.java | 2 +-
.../apache/coyote/http11/Http11OutputBuffer.java | 2 +-
.../http11/filters/SavedRequestInputFilter.java | 4 +-
java/org/apache/coyote/http2/Stream.java | 2 +-
java/org/apache/tomcat/util/buf/AbstractChunk.java | 71 +++++++++++++++++++---
java/org/apache/tomcat/util/buf/B2CConverter.java | 4 +-
java/org/apache/tomcat/util/buf/C2BConverter.java | 4 +-
java/org/apache/tomcat/util/buf/CharChunk.java | 6 +-
java/org/apache/tomcat/util/buf/MessageBytes.java | 2 +-
java/org/apache/tomcat/util/buf/UDecoder.java | 2 +-
java/org/apache/tomcat/util/http/Parameters.java | 2 +-
.../tomcat/util/http/Rfc6265CookieProcessor.java | 2 +-
java/org/apache/tomcat/util/http/parser/Host.java | 2 +-
.../authenticator/TestBasicAuthParser.java | 4 +-
18 files changed, 105 insertions(+), 54 deletions(-)
diff --git a/java/org/apache/catalina/authenticator/BasicAuthenticator.java
b/java/org/apache/catalina/authenticator/BasicAuthenticator.java
index c293af288c..784698a58a 100644
--- a/java/org/apache/catalina/authenticator/BasicAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/BasicAuthenticator.java
@@ -197,7 +197,7 @@ public class BasicAuthenticator extends AuthenticatorBase {
public BasicCredentials(ByteChunk input, Charset charset, boolean
trimCredentials)
throws IllegalArgumentException {
authorization = input;
- initialOffset = input.getOffset();
+ initialOffset = input.getStart();
this.charset = charset;
this.trimCredentials = trimCredentials;
@@ -249,7 +249,7 @@ public class BasicAuthenticator extends AuthenticatorBase {
System.arraycopy(authorization.getBuffer(), base64blobOffset,
encoded, 0, base64blobLength);
byte[] decoded = Base64.getDecoder().decode(encoded);
// restore original offset
- authorization.setOffset(initialOffset);
+ authorization.setStart(initialOffset);
if (decoded == null) {
throw new
IllegalArgumentException(sm.getString("basicAuthenticator.notBase64"));
}
diff --git a/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
b/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
index 6dc6d5d499..4678cf1326 100644
--- a/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
+++ b/java/org/apache/catalina/authenticator/SpnegoAuthenticator.java
@@ -163,7 +163,7 @@ public class SpnegoAuthenticator extends AuthenticatorBase {
return false;
}
- authorizationBC.setOffset(authorizationBC.getOffset() + 10);
+ authorizationBC.setStart(authorizationBC.getStart() + 10);
byte[] encoded = new byte[authorizationBC.getLength()];
System.arraycopy(authorizationBC.getBuffer(), 0, encoded, 0,
authorizationBC.getLength());
diff --git a/java/org/apache/catalina/mapper/Mapper.java
b/java/org/apache/catalina/mapper/Mapper.java
index b46efbe382..e5f66b1077 100644
--- a/java/org/apache/catalina/mapper/Mapper.java
+++ b/java/org/apache/catalina/mapper/Mapper.java
@@ -713,13 +713,13 @@ public final class Mapper {
// wildcard host. This is to allow this shortcut.
int firstDot = host.indexOf('.');
if (firstDot > -1) {
- int offset = host.getOffset();
+ int start = host.getStart();
try {
- host.setOffset(firstDot + offset);
+ host.setStart(firstDot + start);
mappedHost = exactFindIgnoreCase(hosts, host);
} finally {
// Make absolutely sure this gets reset
- host.setOffset(offset);
+ host.setStart(start);
}
}
if (mappedHost == null) {
@@ -823,16 +823,16 @@ public final class Mapper {
private void internalMapWrapper(ContextVersion contextVersion, CharChunk
path, MappingData mappingData)
throws IOException {
- int pathOffset = path.getOffset();
+ int pathStart = path.getStart();
int pathEnd = path.getEnd();
boolean noServletPath = false;
int length = contextVersion.path.length();
- if (length == (pathEnd - pathOffset)) {
+ if (length == (pathEnd - pathStart)) {
noServletPath = true;
}
- int servletPath = pathOffset + length;
- path.setOffset(servletPath);
+ int servletPath = pathStart + length;
+ path.setStart(servletPath);
// Rule 1 -- Exact Match
MappedWrapper[] exactWrappers = contextVersion.exactWrappers;
@@ -866,7 +866,7 @@ public final class Mapper {
// The path is empty, redirect to "/"
path.append('/');
pathEnd = path.getEnd();
- mappingData.redirectPath.setChars(path.getBuffer(), pathOffset,
pathEnd - pathOffset);
+ mappingData.redirectPath.setChars(path.getBuffer(), pathStart,
pathEnd - pathStart);
path.setEnd(pathEnd - 1);
return;
}
@@ -886,10 +886,10 @@ public final class Mapper {
}
if (checkWelcomeFiles) {
for (int i = 0; (i < contextVersion.welcomeResources.length)
&& (mappingData.wrapper == null); i++) {
- path.setOffset(pathOffset);
+ path.setStart(pathStart);
path.setEnd(pathEnd);
path.append(contextVersion.welcomeResources[i], 0,
contextVersion.welcomeResources[i].length());
- path.setOffset(servletPath);
+ path.setStart(servletPath);
// Rule 4a -- Welcome resources processing for exact macth
internalMapExactWrapper(exactWrappers, path, mappingData);
@@ -917,7 +917,7 @@ public final class Mapper {
}
}
- path.setOffset(servletPath);
+ path.setStart(servletPath);
path.setEnd(pathEnd);
}
@@ -936,14 +936,14 @@ public final class Mapper {
}
if (checkWelcomeFiles) {
for (int i = 0; (i < contextVersion.welcomeResources.length)
&& (mappingData.wrapper == null); i++) {
- path.setOffset(pathOffset);
+ path.setStart(pathStart);
path.setEnd(pathEnd);
path.append(contextVersion.welcomeResources[i], 0,
contextVersion.welcomeResources[i].length());
- path.setOffset(servletPath);
+ path.setStart(servletPath);
internalMapExtensionWrapper(extensionWrappers, path,
mappingData, false);
}
- path.setOffset(servletPath);
+ path.setStart(servletPath);
path.setEnd(pathEnd);
}
}
@@ -975,7 +975,7 @@ public final class Mapper {
// Note: this mutates the path: do not do any
processing
// after this (since we set the redirectPath, there
// shouldn't be any)
- path.setOffset(pathOffset);
+ path.setStart(pathStart);
path.append('/');
mappingData.redirectPath.setChars(path.getBuffer(),
path.getStart(), path.getLength());
} else {
@@ -989,7 +989,7 @@ public final class Mapper {
}
}
- path.setOffset(pathOffset);
+ path.setStart(pathStart);
path.setEnd(pathEnd);
}
@@ -1054,10 +1054,10 @@ public final class Mapper {
if (found) {
mappingData.wrapperPath.setString(wrappers[pos].name);
if (path.getLength() > length) {
- mappingData.pathInfo.setChars(path.getBuffer(),
path.getOffset() + length,
+ mappingData.pathInfo.setChars(path.getBuffer(),
path.getStart() + length,
path.getLength() - length);
}
- mappingData.requestPath.setChars(path.getBuffer(),
path.getOffset(), path.getLength());
+ mappingData.requestPath.setChars(path.getBuffer(),
path.getStart(), path.getLength());
mappingData.wrapper = wrappers[pos].object;
mappingData.jspWildCard = wrappers[pos].jspWildCard;
mappingData.matchType = MappingMatch.PATH;
@@ -1078,7 +1078,7 @@ public final class Mapper {
boolean resourceExpected) {
char[] buf = path.getBuffer();
int pathEnd = path.getEnd();
- int servletPath = path.getOffset();
+ int servletPath = path.getStart();
int slash = -1;
for (int i = pathEnd - 1; i >= servletPath; i--) {
if (buf[i] == '/') {
@@ -1095,7 +1095,7 @@ public final class Mapper {
}
}
if (period >= 0) {
- path.setOffset(period + 1);
+ path.setStart(period + 1);
path.setEnd(pathEnd);
MappedWrapper wrapper = exactFind(wrappers, path);
if (wrapper != null && (resourceExpected ||
!wrapper.resourceOnly)) {
@@ -1104,7 +1104,7 @@ public final class Mapper {
mappingData.wrapper = wrapper.object;
mappingData.matchType = MappingMatch.EXTENSION;
}
- path.setOffset(servletPath);
+ path.setStart(servletPath);
path.setEnd(pathEnd);
}
}
diff --git a/java/org/apache/coyote/ajp/AjpMessage.java
b/java/org/apache/coyote/ajp/AjpMessage.java
index c20f4a26c5..04e99aab9f 100644
--- a/java/org/apache/coyote/ajp/AjpMessage.java
+++ b/java/org/apache/coyote/ajp/AjpMessage.java
@@ -167,7 +167,7 @@ public class AjpMessage {
// values will be OK. Strings using other encodings may be
// corrupted.
byte[] buffer = bc.getBuffer();
- for (int i = bc.getOffset(); i < bc.getLength(); i++) {
+ for (int i = bc.getStart(); i < bc.getLength(); i++) {
// byte values are signed i.e. -128 to 127
// The values are used unsigned. 0 to 31 are CTLs so they are
// filtered (apart from TAB which is 9). 127 is a control
(DEL).
diff --git a/java/org/apache/coyote/ajp/AjpProcessor.java
b/java/org/apache/coyote/ajp/AjpProcessor.java
index e21ae7b390..6e81bffb68 100644
--- a/java/org/apache/coyote/ajp/AjpProcessor.java
+++ b/java/org/apache/coyote/ajp/AjpProcessor.java
@@ -713,7 +713,7 @@ public class AjpProcessor extends AbstractProcessor {
} else if (hId == Constants.SC_REQ_CONTENT_TYPE || (hId == -1 &&
tmpMB.equalsIgnoreCase("Content-Type"))) {
// just read the content-type header, so set it
ByteChunk bchunk = vMB.getByteChunk();
- request.contentType().setBytes(bchunk.getBytes(),
bchunk.getOffset(), bchunk.getLength());
+ request.contentType().setBytes(bchunk.getBytes(),
bchunk.getStart(), bchunk.getLength());
}
}
diff --git a/java/org/apache/coyote/http11/Http11OutputBuffer.java
b/java/org/apache/coyote/http11/Http11OutputBuffer.java
index bcdc89c9c6..128f327cdb 100644
--- a/java/org/apache/coyote/http11/Http11OutputBuffer.java
+++ b/java/org/apache/coyote/http11/Http11OutputBuffer.java
@@ -388,7 +388,7 @@ public class Http11OutputBuffer implements HttpOutputBuffer
{
// values will be OK. Strings using other encodings may be
// corrupted.
byte[] buffer = bc.getBuffer();
- for (int i = bc.getOffset(); i < bc.getLength(); i++) {
+ for (int i = bc.getStart(); i < bc.getLength(); i++) {
// byte values are signed i.e. -128 to 127
// The values are used unsigned. 0 to 31 are CTLs so they are
// filtered (apart from TAB which is 9). 127 is a control
(DEL).
diff --git a/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java
b/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java
index fb3b8638eb..a10063005b 100644
--- a/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java
+++ b/java/org/apache/coyote/http11/filters/SavedRequestInputFilter.java
@@ -46,7 +46,7 @@ public class SavedRequestInputFilter implements InputFilter {
@Override
public int doRead(ApplicationBufferHandler handler) throws IOException {
- if(input.getOffset()>= input.getEnd()) {
+ if(input.getStart()>= input.getEnd()) {
return -1;
}
@@ -104,6 +104,6 @@ public class SavedRequestInputFilter implements InputFilter
{
@Override
public boolean isFinished() {
- return input.getOffset() >= input.getEnd();
+ return input.getStart() >= input.getEnd();
}
}
diff --git a/java/org/apache/coyote/http2/Stream.java
b/java/org/apache/coyote/http2/Stream.java
index 6d705e20b1..a357d34cf7 100644
--- a/java/org/apache/coyote/http2/Stream.java
+++ b/java/org/apache/coyote/http2/Stream.java
@@ -1362,7 +1362,7 @@ class Stream extends AbstractNonZeroStream implements
HeaderEmitter {
final void insertReplayedBody(ByteChunk body) {
readStateLock.lock();
try {
- inBuffer = ByteBuffer.wrap(body.getBytes(), body.getOffset(),
body.getLength());
+ inBuffer = ByteBuffer.wrap(body.getBytes(), body.getStart(),
body.getLength());
} finally {
readStateLock.unlock();
}
diff --git a/java/org/apache/tomcat/util/buf/AbstractChunk.java
b/java/org/apache/tomcat/util/buf/AbstractChunk.java
index 3e06362f5f..41d207a08c 100644
--- a/java/org/apache/tomcat/util/buf/AbstractChunk.java
+++ b/java/org/apache/tomcat/util/buf/AbstractChunk.java
@@ -58,6 +58,9 @@ public abstract class AbstractChunk implements Cloneable,
Serializable {
}
+ /**
+ * @return the maximum amount of data in the buffer, and -1 if it has not
been set
+ */
public int getLimit() {
return limit;
}
@@ -80,23 +83,50 @@ public abstract class AbstractChunk implements Cloneable,
Serializable {
}
+ /**
+ * Set the start position of the data in the buffer.
+ * @param start the new start position
+ */
+ public void setStart(int start) {
+ if (end < start) {
+ end = start;
+ }
+ this.start = start;
+ }
+
+
+ /**
+ * @return the end position of the data in the buffer
+ */
public int getEnd() {
return end;
}
- public void setEnd(int i) {
- end = i;
+ /**
+ * Set the end position of the data in the buffer.
+ * @param end the new end position
+ */
+ public void setEnd(int end) {
+ this.end = end;
}
- // TODO: Deprecate offset and use start
-
+ /**
+ * @return start
+ * @deprecated Unused. This method will be removed in Tomcat 12.
+ */
+ @Deprecated
public int getOffset() {
return start;
}
-
+ /**
+ * Set start.
+ * @param off the new start
+ * @deprecated Unused. This method will be removed in Tomcat 12.
+ */
+ @Deprecated
public void setOffset(int off) {
if (end < off) {
end = off;
@@ -113,6 +143,9 @@ public abstract class AbstractChunk implements Cloneable,
Serializable {
}
+ /**
+ * @return {@code true} if the buffer contains no data
+ */
public boolean isNull() {
if (end > 0) {
return false;
@@ -121,19 +154,30 @@ public abstract class AbstractChunk implements Cloneable,
Serializable {
}
- public int indexOf(String src, int srcOff, int srcLen, int myOff) {
- char first = src.charAt(srcOff);
+ /**
+ * Return the index of the first occurrence of the subsequence of
+ * the given String, or -1 if it is not found.
+ *
+ * @param src the String to look for
+ * @param srcStart the subsequence start in the String
+ * @param srcLen the subsequence length in the String
+ * @param myOffset the index on which to start the search in the buffer
+ * @return the position of the first character of the first occurrence
+ * of the subsequence in the buffer, or -1 if not found
+ */
+ public int indexOf(String src, int srcStart, int srcLen, int myOffset) {
+ char first = src.charAt(srcStart);
// Look for first char
- int srcEnd = srcOff + srcLen;
+ int srcEnd = srcStart + srcLen;
- mainLoop: for (int i = myOff + start; i <= (end - srcLen); i++) {
+ mainLoop: for (int i = myOffset + start; i <= (end - srcLen); i++) {
if (getBufferElement(i) != first) {
continue;
}
// found first char, now look for a match
int myPos = i + 1;
- for (int srcPos = srcOff + 1; srcPos < srcEnd;) {
+ for (int srcPos = srcStart + 1; srcPos < srcEnd;) {
if (getBufferElement(myPos++) != src.charAt(srcPos++)) {
continue mainLoop;
}
@@ -169,6 +213,9 @@ public abstract class AbstractChunk implements Cloneable,
Serializable {
}
+ /**
+ * @return the hash code for this buffer
+ */
public int hash() {
int code = 0;
for (int i = start; i < end; i++) {
@@ -178,5 +225,9 @@ public abstract class AbstractChunk implements Cloneable,
Serializable {
}
+ /**
+ * @param index the element location in the buffer
+ * @return the element
+ */
protected abstract int getBufferElement(int index);
}
diff --git a/java/org/apache/tomcat/util/buf/B2CConverter.java
b/java/org/apache/tomcat/util/buf/B2CConverter.java
index 0e9db17813..df31c1c394 100644
--- a/java/org/apache/tomcat/util/buf/B2CConverter.java
+++ b/java/org/apache/tomcat/util/buf/B2CConverter.java
@@ -169,11 +169,11 @@ public class B2CConverter {
} else if (result.isOverflow()) {
// Propagate current positions to the byte chunk and char chunk, if
// this continues the char buffer will get resized
- bc.setOffset(bb.position());
+ bc.setStart(bb.position());
cc.setEnd(cb.position());
} else if (result.isUnderflow()) {
// Propagate current positions to the byte chunk and char chunk
- bc.setOffset(bb.position());
+ bc.setStart(bb.position());
cc.setEnd(cb.position());
// Put leftovers in the leftovers byte buffer
if (bc.getLength() > 0) {
diff --git a/java/org/apache/tomcat/util/buf/C2BConverter.java
b/java/org/apache/tomcat/util/buf/C2BConverter.java
index 9c0c34b4c4..2e3db2b526 100644
--- a/java/org/apache/tomcat/util/buf/C2BConverter.java
+++ b/java/org/apache/tomcat/util/buf/C2BConverter.java
@@ -121,11 +121,11 @@ public final class C2BConverter {
} else if (result.isOverflow()) {
// Propagate current positions to the byte chunk and char chunk
bc.setEnd(bb.position());
- cc.setOffset(cb.position());
+ cc.setStart(cb.position());
} else if (result.isUnderflow()) {
// Propagate current positions to the byte chunk and char chunk
bc.setEnd(bb.position());
- cc.setOffset(cb.position());
+ cc.setStart(cb.position());
// Put leftovers in the leftovers char buffer
if (cc.getLength() > 0) {
leftovers.limit(leftovers.array().length);
diff --git a/java/org/apache/tomcat/util/buf/CharChunk.java
b/java/org/apache/tomcat/util/buf/CharChunk.java
index fc0a5753d1..e530ab5c73 100644
--- a/java/org/apache/tomcat/util/buf/CharChunk.java
+++ b/java/org/apache/tomcat/util/buf/CharChunk.java
@@ -175,7 +175,7 @@ public final class CharChunk extends AbstractChunk
implements CharSequence {
public void append(CharChunk src) throws IOException {
- append(src.getBuffer(), src.getOffset(), src.getLength());
+ append(src.getBuffer(), src.getStart(), src.getLength());
}
@@ -484,7 +484,7 @@ public final class CharChunk extends AbstractChunk
implements CharSequence {
public boolean equals(CharChunk cc) {
- return equals(cc.getChars(), cc.getOffset(), cc.getLength());
+ return equals(cc.getChars(), cc.getStart(), cc.getLength());
}
@@ -648,7 +648,7 @@ public final class CharChunk extends AbstractChunk
implements CharSequence {
public CharSequence subSequence(int start, int end) {
try {
CharChunk result = (CharChunk) this.clone();
- result.setOffset(this.start + start);
+ result.setStart(this.start + start);
result.setEnd(this.start + end);
return result;
} catch (CloneNotSupportedException e) {
diff --git a/java/org/apache/tomcat/util/buf/MessageBytes.java
b/java/org/apache/tomcat/util/buf/MessageBytes.java
index 70ac7d9bfe..528c0be0af 100644
--- a/java/org/apache/tomcat/util/buf/MessageBytes.java
+++ b/java/org/apache/tomcat/util/buf/MessageBytes.java
@@ -598,7 +598,7 @@ public final class MessageBytes implements Cloneable,
Serializable {
current = current / 10;
buf[end++] = HexUtils.getHex(digit);
}
- byteC.setOffset(0);
+ byteC.setStart(0);
byteC.setEnd(end);
// Inverting buffer
end--;
diff --git a/java/org/apache/tomcat/util/buf/UDecoder.java
b/java/org/apache/tomcat/util/buf/UDecoder.java
index 937b441fc3..42f08f6ed6 100644
--- a/java/org/apache/tomcat/util/buf/UDecoder.java
+++ b/java/org/apache/tomcat/util/buf/UDecoder.java
@@ -98,7 +98,7 @@ public final class UDecoder {
private void convert(ByteChunk mb, boolean query, EncodedSolidusHandling
encodedSolidusHandling)
throws IOException {
- int start = mb.getOffset();
+ int start = mb.getStart();
byte buff[] = mb.getBytes();
int end = mb.getEnd();
diff --git a/java/org/apache/tomcat/util/http/Parameters.java
b/java/org/apache/tomcat/util/http/Parameters.java
index 31b8abedbb..8e638f68ce 100644
--- a/java/org/apache/tomcat/util/http/Parameters.java
+++ b/java/org/apache/tomcat/util/http/Parameters.java
@@ -478,7 +478,7 @@ public final class Parameters {
data.toBytes();
}
ByteChunk bc = data.getByteChunk();
- processParameters(bc.getBytes(), bc.getOffset(), bc.getLength(),
charset);
+ processParameters(bc.getBytes(), bc.getStart(), bc.getLength(),
charset);
}
/**
diff --git a/java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java
b/java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java
index 3c46926df0..990d531d3e 100644
--- a/java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java
+++ b/java/org/apache/tomcat/util/http/Rfc6265CookieProcessor.java
@@ -88,7 +88,7 @@ public class Rfc6265CookieProcessor extends
CookieProcessorBase {
}
ByteChunk bc = cookieValue.getByteChunk();
- Cookie.parseCookie(bc.getBytes(), bc.getOffset(),
bc.getLength(), serverCookies);
+ Cookie.parseCookie(bc.getBytes(), bc.getStart(),
bc.getLength(), serverCookies);
}
// search from the next position
diff --git a/java/org/apache/tomcat/util/http/parser/Host.java
b/java/org/apache/tomcat/util/http/parser/Host.java
index f9cb602bfe..06415c6f01 100644
--- a/java/org/apache/tomcat/util/http/parser/Host.java
+++ b/java/org/apache/tomcat/util/http/parser/Host.java
@@ -90,7 +90,7 @@ public class Host {
MessageBytesReader(MessageBytes mb) {
ByteChunk bc = mb.getByteChunk();
bytes = bc.getBytes();
- pos = bc.getOffset();
+ pos = bc.getStart();
end = bc.getEnd();
}
diff --git a/test/org/apache/catalina/authenticator/TestBasicAuthParser.java
b/test/org/apache/catalina/authenticator/TestBasicAuthParser.java
index 03d91ba250..0e0d9cac4d 100644
--- a/test/org/apache/catalina/authenticator/TestBasicAuthParser.java
+++ b/test/org/apache/catalina/authenticator/TestBasicAuthParser.java
@@ -486,7 +486,7 @@ public class TestBasicAuthParser {
+ ioe.getMessage());
}
// emulate tomcat server - offset points to method in header
- authHeader.setOffset(initialOffset);
+ authHeader.setStart(initialOffset);
}
/*
@@ -506,7 +506,7 @@ public class TestBasicAuthParser {
+ ioe.getMessage());
}
// emulate tomcat server - offset points to method in header
- authHeader.setOffset(initialOffset);
+ authHeader.setStart(initialOffset);
}
/*
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]