summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--htroot/ConfigUpdate_p.html3
-rw-r--r--htroot/ConfigUpdate_p.java32
-rw-r--r--source/net/yacy/peers/operation/yacyRelease.java6
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>
&nbsp;&nbsp;<input type="submit" name="downloadRelease" class="btn btn-primary" value="Download Release"/>
&nbsp;&nbsp;<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