gwtproject / gwt-site

Sources of the pages of the gwtproject.org website.
150 stars 332 forks source link

Module dtds not found #276

Open branflake2267 opened 6 years ago

branflake2267 commented 6 years ago

Are the module dtd files on this site?

http://gwtproject.org/doctype/2.7.0/gwt-module.dtd

TDesjardins commented 6 years ago

@branflake2267 The link is the official one but it seems that it is broken.

TDesjardins commented 4 years ago

You will always get a HTTP 301 (Moved Permanently) response if you request a file other than html (which is true for dtd-files). The cause for this issue is the server code of the gwt-site-webapp:

      if (!fullPath.endsWith("/")) {
        fullPath = fullPath + ".html";
        e = getResourceByKey(fullPath);
        if (e != null) {
          // redirect so we use correct urls!
          resp.setStatus(HttpServletResponse.SC_MOVED_PERMANENTLY);
          resp.setHeader("Location", "/" + fullPath);
          return;
        }
      }

So someone has to fix this code to solve this issue, but for repo 'gwt-site-webapp' it is not clear if contributions are welcome and the official code isn't hosted @ Github:

https://gwt.googlesource.com/gwt-site-webapp

tbroyer commented 4 years ago

Nope, this code is only triggered if the resource cannot be found in the data store. So if DTD links don't work, then it should mean they're not in the data store. Possibly a deployment problem then.

tbroyer commented 4 years ago

Their hashes are in the DocHash collection: http://www.gwtproject.org/hash?count=0, that probably means they'll never going to be uploaded again, so if they're missing in the actual document store then redeploying the site won't fix it.

TDesjardins commented 4 years ago

Nope, this code is only triggered if the resource cannot be found in the data store. So if DTD links don't work, then it should mean they're not in the data store. Possibly a deployment problem then.

I suppose you are wrong. Have a look at this point in the code:

fullPath = fullPath + ".html";

For all paths the String ".html" is added before searching in the datastore. This ends up in the following I think when searching for dtd file: "doctype/2.7.0/gwt-module.dtd.html" which of course can't be found.

tbroyer commented 4 years ago

You omitted the lines just above 😉


String fullPath = normalizePath(req.getRequestURI());

Entity e = getResourceByKey(fullPath);

if (e == null) {
  // temporary try to find the resource with .html appended
  // due to redirects from developers.google.com
TDesjardins commented 4 years ago

Hm, right! The classic if-cascade. Whatever happened here it ends in a HTTP 301:

moved-301

Don't know if the code alone can explain this behaviour.

TDesjardins commented 4 years ago

If you use these links it works:

http://www.gwtproject.org/doctype/2.7.0/gwt-module.dtd http://www.gwtproject.org/doctype/2.8.2/gwt-module.dtd

comparing to these which redirect to gwt-project page:

http://gwtproject.org/doctype/2.7.0/gwt-module.dtd http://gwtproject.org/doctype/2.8.2/gwt-module.dtd

Ommitting 'www' will break the links.

Don't know if this knowledge is sufficiant to close this issue. In my opinion it should also work without 'www'.