diff --git a/src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java b/src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java index 8f1e5d09a..dc711c9ad 100644 --- a/src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java +++ b/src/net/java/sip/communicator/plugin/provisioning/ProvisioningServiceImpl.java @@ -596,14 +596,22 @@ else if(s.indexOf(passwordParam) != -1) InputStream in = res.getContent(); - // Chain a ProgressMonitorInputStream to the - // URLConnection's InputStream - final ProgressMonitorInputStream pin - = new ProgressMonitorInputStream(null, u.toString(), in); + // Skips ProgressMonitorInputStream wrapper on Android + InputStream usedStream = in; + if(!OSUtils.IS_ANDROID) + { + // Chain a ProgressMonitorInputStream to the + // URLConnection's InputStream + final ProgressMonitorInputStream pin; + pin = new ProgressMonitorInputStream(null, u.toString(), in); + + // Set the maximum value of the ProgressMonitor + ProgressMonitor pm = pin.getProgressMonitor(); + pm.setMaximum((int)res.getContentLength()); - // Set the maximum value of the ProgressMonitor - ProgressMonitor pm = pin.getProgressMonitor(); - pm.setMaximum((int)res.getContentLength()); + // Uses ProgressMonitorInputStream if available + usedStream = pin; + } final BufferedOutputStream bout = new BufferedOutputStream(new FileOutputStream(temp)); @@ -615,13 +623,13 @@ else if(s.indexOf(passwordParam) != -1) int read = -1; byte[] buff = new byte[1024]; - while((read = pin.read(buff)) != -1) + while((read = usedStream.read(buff)) != -1) { bout.write(buff, 0, read); logStream.write(buff, 0, read); } - pin.close(); + usedStream.close(); bout.flush(); bout.close(); @@ -633,7 +641,7 @@ else if(s.indexOf(passwordParam) != -1) try { - pin.close(); + usedStream.close(); bout.close(); } catch (Exception e1)