diff options
| -rw-r--r-- | htroot/ConfigUpdate_p.html | 3 | ||||
| -rw-r--r-- | htroot/ConfigUpdate_p.java | 32 | ||||
| -rw-r--r-- | source/net/yacy/peers/operation/yacyRelease.java | 6 |
3 files changed, 28 insertions, 13 deletions
diff --git a/htroot/ConfigUpdate_p.html b/htroot/ConfigUpdate_p.html index 6c12e6318..31aafabba 100644 --- a/htroot/ConfigUpdate_p.html +++ b/htroot/ConfigUpdate_p.html @@ -30,6 +30,9 @@ </select> <input type="submit" name="downloadRelease" class="btn btn-primary" value="Download Release"/> <input type="submit" name="checkRelease" class="btn btn-default" value="Check for new Release"/> + #(downloadError)#:: + <div class="error">Download of release #[releasedownload]# failed.</div> + #(/downloadError)# </p></form></dd> <dt><br />Downloaded Releases</dt> <dd><form action="ConfigUpdate_p.html" method="get" accept-charset="UTF-8"><p> diff --git a/htroot/ConfigUpdate_p.java b/htroot/ConfigUpdate_p.java index 2996e1386..c70e71f39 100644 --- a/htroot/ConfigUpdate_p.java +++ b/htroot/ConfigUpdate_p.java @@ -70,6 +70,7 @@ public class ConfigUpdate_p { prop.put("candeploy_configCommit", "0"); prop.put("candeploy_autoUpdate", "0"); prop.put("candeploy_downloadsAvailable", "0"); + prop.put("candeploy_downloadError", "0"); if (post != null) { // check if update is supposed to be installed and a release is defined @@ -86,21 +87,26 @@ public class ConfigUpdate_p { final String release = post.get("releasedownload", ""); if (!release.isEmpty()) { try { - yacyRelease versionToDownload = new yacyRelease(new DigestURL(release)); + yacyRelease versionToDownload = new yacyRelease(new DigestURL(release)); - // replace this version with version which contains public key - final yacyRelease.DevAndMainVersions allReleases = yacyRelease.allReleases(false, false); - final Set<yacyRelease> mostReleases = versionToDownload.isMainRelease() ? allReleases.main : allReleases.dev; - for (final yacyRelease rel : mostReleases) { - if (rel.equals(versionToDownload)) { - versionToDownload = rel; - break; - } - } - versionToDownload.downloadRelease(); + // replace this version with version which contains public key + final yacyRelease.DevAndMainVersions allReleases = yacyRelease.allReleases(false, false); + final Set<yacyRelease> mostReleases = versionToDownload.isMainRelease() ? allReleases.main : allReleases.dev; + for (final yacyRelease rel : mostReleases) { + if (rel.equals(versionToDownload)) { + versionToDownload = rel; + break; + } + } + File downloadedRelease = versionToDownload.downloadRelease(); + if(downloadedRelease == null) { + prop.put("candeploy_downloadError", "1"); + prop.putHTML("candeploy_downloadError_releasedownload", release); + } } catch (final IOException e) { - // TODO Auto-generated catch block - ConcurrentLog.logException(e); + ConcurrentLog.logException(e); + prop.put("candeploy_downloadError", "1"); + prop.putHTML("candeploy_downloadError_releasedownload", release); } } } diff --git a/source/net/yacy/peers/operation/yacyRelease.java b/source/net/yacy/peers/operation/yacyRelease.java index 1bfdfe9c0..5884c2092 100644 --- a/source/net/yacy/peers/operation/yacyRelease.java +++ b/source/net/yacy/peers/operation/yacyRelease.java @@ -44,6 +44,8 @@ import java.util.SortedSet; import java.util.TreeSet;
import java.util.concurrent.ConcurrentHashMap;
+import org.apache.http.HttpStatus;
+
import net.yacy.cora.document.encoding.UTF8;
import net.yacy.cora.document.id.AnchorURL;
import net.yacy.cora.document.id.DigestURL;
@@ -304,6 +306,10 @@ public final class yacyRelease extends yacyVersion { client.setTimout(120000);
client.GET(getUrl().toString(), false);
int statusCode = client.getHttpResponse().getStatusLine().getStatusCode();
+ if(statusCode != HttpStatus.SC_OK) {
+ /* HTTP status is not OK (200) : let's stop here to avoid creating a invalid download file*/
+ throw new IOException("HTTP response status code : " + statusCode);
+ }
final ResponseHeader header = new ResponseHeader(statusCode, client.getHttpResponse().getAllHeaders());
final boolean unzipped = header.gzip() && (header.mime().toLowerCase().equals("application/x-tar")); // if true, then the httpc has unzipped the file
|
