Merge branch 'master' of ssh://git.eclipse.org/gitroot/jetty/org.eclipse.jetty.project
This commit is contained in:
commit
11ca71700f
14
VERSION.txt
14
VERSION.txt
|
@ -1,4 +1,16 @@
|
|||
jetty-7.5.1-SNAPSHOT
|
||||
jetty-7.5.2-SNAPSHOT
|
||||
|
||||
jetty-7.5.1.v20110908 - 08 September 2011
|
||||
+ 350634 Added Resource.newResource(File)
|
||||
+ 356190 fix monodb tests for changed test api
|
||||
+ 356428 removed timed waits from test
|
||||
+ 356693 reduce visibility to webapp of websocket implementations
|
||||
+ 356695 jetty server jars are provided for websockets
|
||||
+ 356726 Instead of the sessionDestroyed called sessionCreated after
|
||||
invalidate session
|
||||
+ 356751 Add null protection to ServletContextHandler.doStop
|
||||
+ 356823 correctly decode close codes. Send not utf-8 close code.
|
||||
+ 357058 Acceptor thread blocking
|
||||
|
||||
jetty-7.5.0.v20110901 - 01 September 2011
|
||||
+ 356421 Upgraded websocket to draft 13 support
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>example-jetty-embedded</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-aggregate-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-aggregate-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-aggregate-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-aggregate-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-aggregate-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-aggregate-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-aggregate-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<groupId>org.eclipse.jetty.aggregate</groupId>
|
||||
<artifactId>jetty-aggregate-project</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-ajp</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-annotations</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-continuation</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-deploy</artifactId>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>jetty-distribution</artifactId>
|
||||
<name>Jetty :: Distribution Assemblies</name>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-jaspi</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-jmx</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-jndi</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-jsp-2.1</artifactId>
|
||||
|
|
|
@ -19,7 +19,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-monitor</artifactId>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>jetty-nested</artifactId>
|
||||
<name>Jetty :: Nested</name>
|
||||
|
|
|
@ -88,6 +88,7 @@ public class NestedConnection extends HttpConnection
|
|||
{
|
||||
getServer().handle(this);
|
||||
completeResponse();
|
||||
while (!_generator.isComplete() && _endp.isOpen())
|
||||
_generator.flushBuffer();
|
||||
_endp.flush();
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ public class NestedGenerator extends AbstractGenerator
|
|||
|
||||
public void addContent(Buffer content, boolean last) throws IOException
|
||||
{
|
||||
// LOG.debug("addContent {} {}",content.length(),last);
|
||||
LOG.debug("addContent {} {}",content.length(),last);
|
||||
if (_noContent)
|
||||
{
|
||||
content.clear();
|
||||
|
@ -70,7 +70,6 @@ public class NestedGenerator extends AbstractGenerator
|
|||
// Handle any unfinished business?
|
||||
if (_content != null && _content.length() > 0)
|
||||
{
|
||||
|
||||
flushBuffer();
|
||||
if (_content != null && _content.length() > 0)
|
||||
throw new IllegalStateException("FULL");
|
||||
|
@ -86,21 +85,23 @@ public class NestedGenerator extends AbstractGenerator
|
|||
content.clear();
|
||||
_content = null;
|
||||
}
|
||||
else
|
||||
else if (!last || _buffer!=null)
|
||||
{
|
||||
// Yes - so we better check we have a buffer
|
||||
initContent();
|
||||
initBuffer();
|
||||
// Copy _content to buffer;
|
||||
int len = 0;
|
||||
len = _buffer.put(_content);
|
||||
|
||||
// make sure there is space for a trailing null
|
||||
// make sure there is space for a trailing null (???)
|
||||
if (len > 0 && _buffer.space() == 0)
|
||||
{
|
||||
len--;
|
||||
_buffer.setPutIndex(_buffer.putIndex() - 1);
|
||||
}
|
||||
|
||||
LOG.debug("copied {} to buffer",len);
|
||||
|
||||
_content.skip(len);
|
||||
|
||||
if (_content.length() == 0)
|
||||
|
@ -139,7 +140,7 @@ public class NestedGenerator extends AbstractGenerator
|
|||
return false;
|
||||
|
||||
// we better check we have a buffer
|
||||
initContent();
|
||||
initBuffer();
|
||||
|
||||
// Copy _content to buffer;
|
||||
|
||||
|
@ -149,7 +150,7 @@ public class NestedGenerator extends AbstractGenerator
|
|||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
private void initContent() throws IOException
|
||||
private void initBuffer() throws IOException
|
||||
{
|
||||
if (_buffer == null)
|
||||
{
|
||||
|
@ -176,7 +177,7 @@ public class NestedGenerator extends AbstractGenerator
|
|||
@Override
|
||||
public int prepareUncheckedAddContent() throws IOException
|
||||
{
|
||||
initContent();
|
||||
initBuffer();
|
||||
return _buffer.space();
|
||||
}
|
||||
|
||||
|
@ -229,6 +230,26 @@ public class NestedGenerator extends AbstractGenerator
|
|||
_state = STATE_CONTENT;
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
/**
|
||||
* Complete the message.
|
||||
*
|
||||
* @throws IOException
|
||||
*/
|
||||
@Override
|
||||
public void complete() throws IOException
|
||||
{
|
||||
if (_state == STATE_END)
|
||||
return;
|
||||
|
||||
super.complete();
|
||||
|
||||
if (_state < STATE_FLUSHING)
|
||||
_state = STATE_FLUSHING;
|
||||
|
||||
flushBuffer();
|
||||
}
|
||||
|
||||
/* ------------------------------------------------------------ */
|
||||
@Override
|
||||
public long flushBuffer() throws IOException
|
||||
|
@ -236,23 +257,44 @@ public class NestedGenerator extends AbstractGenerator
|
|||
if (_state == STATE_HEADER)
|
||||
throw new IllegalStateException("State==HEADER");
|
||||
|
||||
|
||||
if (_content != null && _content.length() < _buffer.space() && _state != STATE_FLUSHING)
|
||||
{
|
||||
initContent();
|
||||
_buffer.put(_content);
|
||||
_content.clear();
|
||||
_content = null;
|
||||
}
|
||||
int len = 0;
|
||||
|
||||
if (_buffer==null)
|
||||
return 0;
|
||||
{
|
||||
|
||||
if (_content!=null && _content.length()>0)
|
||||
{
|
||||
// flush content directly
|
||||
len = _endp.flush(_content);
|
||||
if (len>0)
|
||||
_content.skip(len);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if (_buffer.length()==0 && _content!=null && _content.length()>0)
|
||||
{
|
||||
// Copy content to buffer
|
||||
_content.skip(_buffer.put(_content));
|
||||
}
|
||||
|
||||
int size=_buffer.length();
|
||||
int len = _buffer==null?0:_endp.flush(_buffer);
|
||||
len =_endp.flush(_buffer);
|
||||
LOG.debug("flushBuffer {} of {}",len,size);
|
||||
if (len>0)
|
||||
_buffer.skip(len);
|
||||
}
|
||||
|
||||
if (_content!=null && _content.length()==0)
|
||||
_content=null;
|
||||
if (_buffer!=null && _buffer.length()==0 && _content==null)
|
||||
{
|
||||
_buffers.returnBuffer(_buffer);
|
||||
_buffer=null;
|
||||
}
|
||||
|
||||
if (_state==STATE_FLUSHING && _buffer==null && _content==null)
|
||||
_state=STATE_END;
|
||||
|
||||
return len;
|
||||
}
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-nosql</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.osgi</groupId>
|
||||
<artifactId>jetty-osgi-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.osgi</groupId>
|
||||
<artifactId>jetty-osgi-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.osgi</groupId>
|
||||
<artifactId>jetty-osgi-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.osgi</groupId>
|
||||
<artifactId>jetty-osgi-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.osgi</groupId>
|
||||
<artifactId>jetty-osgi-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.osgi</groupId>
|
||||
<artifactId>jetty-osgi-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<groupId>org.eclipse.jetty.osgi</groupId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.osgi</groupId>
|
||||
<artifactId>jetty-osgi-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<relativePath>../pom.xml</relativePath>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-overlay-deployer</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-plus</artifactId>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-policy</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-rewrite</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-security</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-server</artifactId>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<parent>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-servlet</artifactId>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<parent>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-servlets</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-start</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-util</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-webapp</artifactId>
|
||||
|
|
|
@ -3,7 +3,7 @@
|
|||
<parent>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
|
|
|
@ -42,7 +42,8 @@ import org.eclipse.jetty.websocket.WebSocket.OnTextMessage;
|
|||
public class WebSocketConnectionD13 extends AbstractConnection implements WebSocketConnection
|
||||
{
|
||||
private static final Logger LOG = Log.getLogger(WebSocketConnectionD13.class);
|
||||
private static final boolean STRICT=true;
|
||||
private static final boolean STRICT=Boolean.getBoolean("org.eclipse.jetty.websocket.STRICT");
|
||||
private static final boolean BRUTAL=Boolean.getBoolean("org.eclipse.jetty.websocket.BRUTAL");
|
||||
|
||||
final static byte OP_CONTINUATION = 0x00;
|
||||
final static byte OP_TEXT = 0x01;
|
||||
|
@ -62,7 +63,7 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
final static int CLOSE_UNDEFINED=1004;
|
||||
final static int CLOSE_NO_CODE=1005;
|
||||
final static int CLOSE_NO_CLOSE=1006;
|
||||
final static int CLOSE_NOT_UTF8=1007;
|
||||
final static int CLOSE_BAD_PAYLOAD=1007;
|
||||
final static int CLOSE_POLICY_VIOLATION=1008;
|
||||
final static int CLOSE_MESSAGE_TOO_LARGE=1009;
|
||||
final static int CLOSE_REQUIRED_EXTENSION=1010;
|
||||
|
@ -641,19 +642,13 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
{
|
||||
if (isControlFrame(opcode) && buffer.length()>125)
|
||||
{
|
||||
_connection.close(WebSocketConnectionD13.CLOSE_PROTOCOL,"Control frame too large");
|
||||
errorClose(WebSocketConnectionD13.CLOSE_PROTOCOL,"Control frame too large");
|
||||
return;
|
||||
}
|
||||
|
||||
if ((flags&0x7)!=0)
|
||||
{
|
||||
_connection.close(WebSocketConnectionD13.CLOSE_PROTOCOL,"RSV bits set 0x"+Integer.toHexString(flags));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_opcode!=-1 && opcode!=WebSocketConnectionD13.OP_CONTINUATION)
|
||||
{
|
||||
_connection.close(WebSocketConnectionD13.CLOSE_PROTOCOL,"Bad continuation"+Integer.toHexString(opcode));
|
||||
errorClose(WebSocketConnectionD13.CLOSE_PROTOCOL,"RSV bits set 0x"+Integer.toHexString(flags));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -681,7 +676,7 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
{
|
||||
if (_opcode==-1)
|
||||
{
|
||||
_connection.close(WebSocketConnectionD13.CLOSE_PROTOCOL,"Bad Continuation");
|
||||
errorClose(WebSocketConnectionD13.CLOSE_PROTOCOL,"Bad Continuation");
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -756,6 +751,12 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
|
||||
case WebSocketConnectionD13.OP_TEXT:
|
||||
{
|
||||
if (STRICT && _opcode!=-1)
|
||||
{
|
||||
errorClose(WebSocketConnectionD13.CLOSE_PROTOCOL,"Expected Continuation"+Integer.toHexString(opcode));
|
||||
return;
|
||||
}
|
||||
|
||||
if(_onTextMessage!=null)
|
||||
{
|
||||
if (_connection.getMaxTextMessageSize()<=0)
|
||||
|
@ -766,7 +767,7 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
else
|
||||
{
|
||||
LOG.warn("Frame discarded. Text aggregation disabled for {}",_endp);
|
||||
_connection.close(WebSocketConnectionD13.CLOSE_POLICY_VIOLATION,"Text frame aggregation disabled");
|
||||
errorClose(WebSocketConnectionD13.CLOSE_POLICY_VIOLATION,"Text frame aggregation disabled");
|
||||
}
|
||||
}
|
||||
// append bytes to message buffer (if they fit)
|
||||
|
@ -791,6 +792,12 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
|
||||
case WebSocketConnectionD13.OP_BINARY:
|
||||
{
|
||||
if (STRICT && _opcode!=-1)
|
||||
{
|
||||
errorClose(WebSocketConnectionD13.CLOSE_PROTOCOL,"Expected Continuation"+Integer.toHexString(opcode));
|
||||
return;
|
||||
}
|
||||
|
||||
if (_onBinaryMessage!=null && checkBinaryMessageSize(0,buffer.length()))
|
||||
{
|
||||
if (lastFrame)
|
||||
|
@ -808,7 +815,7 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
else
|
||||
{
|
||||
LOG.warn("Frame discarded. Binary aggregation disabed for {}",_endp);
|
||||
_connection.close(WebSocketConnectionD13.CLOSE_POLICY_VIOLATION,"Binary frame aggregation disabled");
|
||||
errorClose(WebSocketConnectionD13.CLOSE_POLICY_VIOLATION,"Binary frame aggregation disabled");
|
||||
}
|
||||
}
|
||||
break;
|
||||
|
@ -816,17 +823,15 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
|
||||
default:
|
||||
if (STRICT)
|
||||
_connection.close(WebSocketConnectionD13.CLOSE_PROTOCOL,"Bad opcode 0x"+Integer.toHexString(opcode));
|
||||
errorClose(WebSocketConnectionD13.CLOSE_PROTOCOL,"Bad opcode 0x"+Integer.toHexString(opcode));
|
||||
return;
|
||||
|
||||
}
|
||||
}
|
||||
catch(Utf8Appendable.NotUtf8Exception notUtf8)
|
||||
{
|
||||
LOG.warn(notUtf8);
|
||||
LOG.warn("{} for {}",notUtf8,_endp);
|
||||
LOG.debug(notUtf8);
|
||||
_connection.close(WebSocketConnectionD13.CLOSE_NOT_UTF8,"Invalid UTF-8");
|
||||
errorClose(WebSocketConnectionD13.CLOSE_BAD_PAYLOAD,"Invalid UTF-8");
|
||||
}
|
||||
catch(ThreadDeath th)
|
||||
{
|
||||
|
@ -838,6 +843,23 @@ public class WebSocketConnectionD13 extends AbstractConnection implements WebSoc
|
|||
}
|
||||
}
|
||||
|
||||
private void errorClose(int code, String message)
|
||||
{
|
||||
_connection.close(code,message);
|
||||
if (BRUTAL)
|
||||
{
|
||||
try
|
||||
{
|
||||
_endp.close();
|
||||
}
|
||||
catch (IOException e)
|
||||
{
|
||||
LOG.warn(e.toString());
|
||||
LOG.debug(e);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private boolean checkBinaryMessageSize(int bufferLen, int length)
|
||||
{
|
||||
int max = _connection.getMaxBinaryMessageSize();
|
||||
|
|
|
@ -227,11 +227,13 @@ public class WebSocketFactory
|
|||
connection = new WebSocketConnectionD12(websocket, endp, _buffers, http.getTimeStamp(), _maxIdleTime, protocol,extensions,draft);
|
||||
break;
|
||||
case 13:
|
||||
case 14:
|
||||
extensions= initExtensions(extensions_requested,8-WebSocketConnectionD13.OP_EXT_DATA, 16-WebSocketConnectionD13.OP_EXT_CTRL,3);
|
||||
connection = new WebSocketConnectionD13(websocket, endp, _buffers, http.getTimeStamp(), _maxIdleTime, protocol,extensions,draft);
|
||||
break;
|
||||
default:
|
||||
LOG.warn("Unsupported Websocket version: "+draft);
|
||||
response.setHeader("Sec-WebSocket-Version","0,6,12,13,14");
|
||||
throw new HttpException(400, "Unsupported draft specification: " + draft);
|
||||
}
|
||||
|
||||
|
@ -251,6 +253,8 @@ public class WebSocketFactory
|
|||
request.setAttribute("org.eclipse.jetty.io.Connection", connection);
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
protected String[] parseProtocols(String protocol)
|
||||
{
|
||||
if (protocol == null)
|
||||
|
@ -264,6 +268,8 @@ public class WebSocketFactory
|
|||
return protocols;
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public boolean acceptWebSocket(HttpServletRequest request, HttpServletResponse response)
|
||||
throws IOException
|
||||
{
|
||||
|
@ -280,10 +286,13 @@ public class WebSocketFactory
|
|||
|
||||
// Try each requested protocol
|
||||
WebSocket websocket = null;
|
||||
String protocol = request.getHeader("Sec-WebSocket-Protocol");
|
||||
if (protocol == null) // TODO remove once draft period is over
|
||||
protocol = request.getHeader("WebSocket-Protocol");
|
||||
for (String p : parseProtocols(protocol))
|
||||
|
||||
Enumeration<String> protocols = request.getHeaders("Sec-WebSocket-Protocol");
|
||||
String protocol=null;
|
||||
while (protocol==null && protocols!=null && protocols.hasMoreElements())
|
||||
{
|
||||
String candidate = protocols.nextElement();
|
||||
for (String p : parseProtocols(candidate))
|
||||
{
|
||||
websocket = _acceptor.doWebSocketConnect(request, p);
|
||||
if (websocket != null)
|
||||
|
@ -292,13 +301,20 @@ public class WebSocketFactory
|
|||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Did we get a websocket?
|
||||
if (websocket == null)
|
||||
{
|
||||
// Try with no protocol
|
||||
websocket = _acceptor.doWebSocketConnect(request, null);
|
||||
|
||||
if (websocket==null)
|
||||
{
|
||||
response.sendError(HttpServletResponse.SC_SERVICE_UNAVAILABLE);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
// Send the upgrade
|
||||
upgrade(request, response, websocket, protocol);
|
||||
|
@ -308,6 +324,8 @@ public class WebSocketFactory
|
|||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
public List<Extension> initExtensions(List<String> requested,int maxDataOpcodes,int maxControlOpcodes,int maxReservedBits)
|
||||
{
|
||||
List<Extension> extensions = new ArrayList<Extension>();
|
||||
|
@ -339,6 +357,8 @@ public class WebSocketFactory
|
|||
return extensions;
|
||||
}
|
||||
|
||||
/**
|
||||
*/
|
||||
private Extension newExtension(String name)
|
||||
{
|
||||
try
|
||||
|
@ -354,6 +374,4 @@ public class WebSocketFactory
|
|||
|
||||
return null;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
@ -84,6 +84,7 @@ public class WebSocketMessageD00Test
|
|||
InputStream input = socket.getInputStream();
|
||||
BufferedReader reader = new BufferedReader(new InputStreamReader(input, "ISO-8859-1"));
|
||||
String responseLine = reader.readLine();
|
||||
System.err.println(responseLine);
|
||||
assertTrue(responseLine.startsWith("HTTP/1.1 101 WebSocket Protocol Handshake"));
|
||||
// Read until we find an empty line, which signals the end of the http response
|
||||
String line;
|
||||
|
|
|
@ -998,7 +998,7 @@ public class WebSocketMessageD13Test
|
|||
assertEquals(0x80|WebSocketConnectionD13.OP_CLOSE,input.read());
|
||||
assertEquals(15,input.read());
|
||||
int code=(0xff&input.read())*0x100+(0xff&input.read());
|
||||
assertEquals(WebSocketConnectionD13.CLOSE_NOT_UTF8,code);
|
||||
assertEquals(WebSocketConnectionD13.CLOSE_BAD_PAYLOAD,code);
|
||||
lookFor("Invalid UTF-8",input);
|
||||
}
|
||||
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>jetty-xml</artifactId>
|
||||
|
|
2
pom.xml
2
pom.xml
|
@ -7,7 +7,7 @@
|
|||
</parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
<name>Jetty :: Project</name>
|
||||
<url>${jetty.url}</url>
|
||||
<packaging>pom</packaging>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>test-continuation-jetty6</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>test-continuation</artifactId>
|
||||
|
|
|
@ -4,7 +4,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>test-jetty-nested</artifactId>
|
||||
<name>Jetty :: Nested Test</name>
|
||||
|
|
|
@ -31,7 +31,7 @@ public class NestedServer
|
|||
|
||||
|
||||
WebAppContext webapp = new WebAppContext();
|
||||
webapp.setContextPath("/");
|
||||
webapp.setContextPath("/jnest");
|
||||
webapp.setWar("src/main/webapp");
|
||||
webapp.setParentLoaderPriority(true);
|
||||
server.setHandler(webapp);
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>test-jetty-servlet</artifactId>
|
||||
|
|
|
@ -2,7 +2,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty</groupId>
|
||||
<artifactId>jetty-project</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>tests-parent</artifactId>
|
||||
|
|
|
@ -20,7 +20,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>tests-parent</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<modelVersion>4.0.0</modelVersion>
|
||||
<artifactId>test-integration</artifactId>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>tests-parent</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>test-loginservice</artifactId>
|
||||
<name>Jetty Tests :: Login Service</name>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>tests-parent</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>test-sessions-parent</artifactId>
|
||||
<name>Jetty Tests :: Sessions :: Parent</name>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>test-sessions-parent</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>test-hash-sessions</artifactId>
|
||||
<name>Jetty Tests :: Sessions :: Hash</name>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>test-sessions-parent</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>test-jdbc-sessions</artifactId>
|
||||
<name>Jetty Tests :: Sessions :: JDBC</name>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>test-sessions-parent</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>test-sessions-common</artifactId>
|
||||
<name>Jetty Tests :: Sessions :: Common</name>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>tests-parent</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>test-webapps-parent</artifactId>
|
||||
<name>Jetty Tests :: WebApps :: Parent</name>
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<parent>
|
||||
<groupId>org.eclipse.jetty.tests</groupId>
|
||||
<artifactId>test-webapps-parent</artifactId>
|
||||
<version>7.5.1-SNAPSHOT</version>
|
||||
<version>7.5.2-SNAPSHOT</version>
|
||||
</parent>
|
||||
<artifactId>test-webapp-rfc2616</artifactId>
|
||||
<name>Jetty Tests :: WebApp :: RFC2616</name>
|
||||
|
|
Loading…
Reference in New Issue