Merge remote-tracking branch 'origin/jetty-9.2.x'
Conflicts: jetty-server/src/main/java/org/eclipse/jetty/server/handler/ResourceHandler.java jetty-util/src/test/java/org/eclipse/jetty/util/resource/AbstractFSResourceTest.java
This commit is contained in:
commit
a6e00bc642
|
@ -327,8 +327,8 @@ public class ServerConnector extends AbstractNetworkConnector
|
||||||
serverChannel = ServerSocketChannel.open();
|
serverChannel = ServerSocketChannel.open();
|
||||||
|
|
||||||
InetSocketAddress bindAddress = getHost() == null ? new InetSocketAddress(getPort()) : new InetSocketAddress(getHost(), getPort());
|
InetSocketAddress bindAddress = getHost() == null ? new InetSocketAddress(getPort()) : new InetSocketAddress(getHost(), getPort());
|
||||||
serverChannel.socket().bind(bindAddress, getAcceptQueueSize());
|
|
||||||
serverChannel.socket().setReuseAddress(getReuseAddress());
|
serverChannel.socket().setReuseAddress(getReuseAddress());
|
||||||
|
serverChannel.socket().bind(bindAddress, getAcceptQueueSize());
|
||||||
|
|
||||||
_localPort = serverChannel.socket().getLocalPort();
|
_localPort = serverChannel.socket().getLocalPort();
|
||||||
if (_localPort <= 0)
|
if (_localPort <= 0)
|
||||||
|
|
|
@ -303,6 +303,9 @@ public class ResourceHandler extends HandlerWrapper
|
||||||
if (path==null || !path.startsWith("/"))
|
if (path==null || !path.startsWith("/"))
|
||||||
throw new MalformedURLException(path);
|
throw new MalformedURLException(path);
|
||||||
|
|
||||||
|
if (LOG.isDebugEnabled())
|
||||||
|
LOG.debug("{} getResource({})",_context==null?_baseResource:_context,_baseResource,path);
|
||||||
|
|
||||||
Resource base = _baseResource;
|
Resource base = _baseResource;
|
||||||
if (base==null)
|
if (base==null)
|
||||||
{
|
{
|
||||||
|
@ -315,8 +318,12 @@ public class ResourceHandler extends HandlerWrapper
|
||||||
{
|
{
|
||||||
path=URIUtil.canonicalPath(path);
|
path=URIUtil.canonicalPath(path);
|
||||||
Resource r = base.addPath(path);
|
Resource r = base.addPath(path);
|
||||||
if (r!=null && r.isAlias() && !_context.checkAlias(path, r))
|
if (r!=null && r.isAlias() && (_context==null || !_context.checkAlias(path, r)))
|
||||||
|
{
|
||||||
|
if (LOG.isDebugEnabled())
|
||||||
|
LOG.debug("resource={} alias={}",r,r.getAlias());
|
||||||
return null;
|
return null;
|
||||||
|
}
|
||||||
return r;
|
return r;
|
||||||
}
|
}
|
||||||
catch(Exception e)
|
catch(Exception e)
|
||||||
|
@ -404,6 +411,16 @@ public class ResourceHandler extends HandlerWrapper
|
||||||
}
|
}
|
||||||
|
|
||||||
Resource resource = getResource(request);
|
Resource resource = getResource(request);
|
||||||
|
|
||||||
|
if (LOG.isDebugEnabled())
|
||||||
|
{
|
||||||
|
if (resource==null)
|
||||||
|
LOG.debug("resource=null");
|
||||||
|
else
|
||||||
|
LOG.debug("resource={} alias={} exists={}",resource,resource.getAlias(),resource.exists());
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
// If resource is not found
|
// If resource is not found
|
||||||
if (resource==null || !resource.exists())
|
if (resource==null || !resource.exists())
|
||||||
{
|
{
|
||||||
|
|
|
@ -114,6 +114,7 @@ public class StartLog
|
||||||
if (logFileName != null)
|
if (logFileName != null)
|
||||||
{
|
{
|
||||||
Path logfile = baseHome.getPath(logFileName);
|
Path logfile = baseHome.getPath(logFileName);
|
||||||
|
logfile = logfile.toAbsolutePath();
|
||||||
initLogFile(logfile);
|
initLogFile(logfile);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -839,13 +839,12 @@ public class URIUtil
|
||||||
if (cb=='%')
|
if (cb=='%')
|
||||||
cb=TypeUtil.convertHexDigit(uriB.charAt(b++))*16+TypeUtil.convertHexDigit(uriB.charAt(b++));
|
cb=TypeUtil.convertHexDigit(uriB.charAt(b++))*16+TypeUtil.convertHexDigit(uriB.charAt(b++));
|
||||||
|
|
||||||
if (ca!=cb)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
if (ca=='/' && oa!=ob)
|
if (ca=='/' && oa!=ob)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
|
if (ca!=cb )
|
||||||
|
return URIUtil.decodePath(uriA).equals(URIUtil.decodePath(uriB));
|
||||||
}
|
}
|
||||||
|
|
||||||
return a==lenA && b==lenB;
|
return a==lenA && b==lenB;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -52,6 +52,7 @@ import org.eclipse.jetty.util.CollectionAssert;
|
||||||
import org.hamcrest.BaseMatcher;
|
import org.hamcrest.BaseMatcher;
|
||||||
import org.hamcrest.Description;
|
import org.hamcrest.Description;
|
||||||
import org.hamcrest.Matcher;
|
import org.hamcrest.Matcher;
|
||||||
|
import org.junit.Assert;
|
||||||
import org.junit.Rule;
|
import org.junit.Rule;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
import org.junit.runner.RunWith;
|
import org.junit.runner.RunWith;
|
||||||
|
@ -1043,4 +1044,20 @@ public class FileSystemResourceTest
|
||||||
assertThat("File should have been deleted.",res.exists(),is(false));
|
assertThat("File should have been deleted.",res.exists(),is(false));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@Test
|
||||||
|
public void testUtf8Dir() throws Exception
|
||||||
|
{
|
||||||
|
File dir=new File(testdir.getDir(),"bãm");
|
||||||
|
dir.mkdir();
|
||||||
|
File file = new File(dir,"file.txt");
|
||||||
|
file.createNewFile();
|
||||||
|
|
||||||
|
Resource base = newResource(dir);
|
||||||
|
assertNull(base.getAlias());
|
||||||
|
|
||||||
|
Resource r = base.addPath("file.txt");
|
||||||
|
assertNull(r.getAlias());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -92,7 +92,7 @@ public class XmlConfiguration
|
||||||
|
|
||||||
private static final Iterable<ConfigurationProcessorFactory> __factoryLoader = ServiceLoader.load(ConfigurationProcessorFactory.class);
|
private static final Iterable<ConfigurationProcessorFactory> __factoryLoader = ServiceLoader.load(ConfigurationProcessorFactory.class);
|
||||||
private static final XmlParser __parser = initParser();
|
private static final XmlParser __parser = initParser();
|
||||||
private synchronized static XmlParser initParser()
|
private static XmlParser initParser()
|
||||||
{
|
{
|
||||||
XmlParser parser = new XmlParser();
|
XmlParser parser = new XmlParser();
|
||||||
URL config60 = Loader.getResource(XmlConfiguration.class, "org/eclipse/jetty/xml/configure_6_0.dtd");
|
URL config60 = Loader.getResource(XmlConfiguration.class, "org/eclipse/jetty/xml/configure_6_0.dtd");
|
||||||
|
|
Loading…
Reference in New Issue