synchronized (this) {
BrowserDetails browserDetails = request.getBrowserDetails();
+ boolean hasBrowserDetails = browserDetails != null
+ && browserDetails.getUriFragment() != null;
- if (browserDetails != null) {
+ if (hasBrowserDetails) {
// Don't wait for a second request any more
pendingRoots.remove(rootId);
}
}
Integer retainedRootId;
- if (browserDetails == null) {
+ if (!hasBrowserDetails) {
throw new RootRequiresMoreInformationException();
} else {
String windowName = browserDetails.getWindowName();
boolean initRequiresBrowserDetails = preserveRoot
|| !root.getClass()
.isAnnotationPresent(EagerInit.class);
- if (initRequiresBrowserDetails && browserDetails == null) {
+ if (initRequiresBrowserDetails && !hasBrowserDetails) {
pendingRoots.put(rootId, new PendingRootRequest(request));
} else {
if (preserveRoot) {
if (request.getParameter("lazyCreate") != null) {
// Root created on second request
final BrowserDetails browserDetails = request.getBrowserDetails();
- if (browserDetails == null) {
+ if (browserDetails == null
+ || browserDetails.getUriFragment() == null) {
throw new RootRequiresMoreInformationException();
} else {
Root root = new Root() {