ResourceReference rr_temp = null;
while ( ls.hasMoreComponents() ) {
try {
if (rr == null)
error(request, "url too long");
Resource r = rr.lock();
if ( ! ( r instanceof ContainerInterface) )
error(request, "url too long");
rr_temp = ((ContainerInterface) r).lookup(
ls.getNextComponent());
} catch (InvalidResourceException ex) {
error(request, "unable to restore resource");
} finally {
rr.unlock();
rr = rr_temp;
}
}
if ( rr == null )
error(request, "unknown resource");
String query = request.getQueryString();
if ( query != null ) {
try {
Resource r = rr.lock();
// Querying a frame !
if ( ! (r instanceof FramedResource) )
error(request, "not a framed resource");
} catch (InvalidResourceException ex) {
error(request, "unable to restore resource");