home *** CD-ROM | disk | FTP | other *** search
- package sun.net.www;
-
- import java.io.File;
- import java.io.FileOutputStream;
- import java.io.IOException;
- import java.io.InputStream;
- import java.io.OutputStream;
- import java.net.URL;
- import java.net.URLConnection;
- import java.util.StringTokenizer;
-
- class MimeLauncher extends Thread {
- // $FF: renamed from: uc java.net.URLConnection
- URLConnection field_0;
- // $FF: renamed from: m sun.net.www.MimeEntry
- MimeEntry field_1;
- String genericTempFileTemplate;
- // $FF: renamed from: is java.io.InputStream
- InputStream field_2;
- String execPath;
-
- MimeLauncher(MimeEntry var1, URLConnection var2, InputStream var3, String var4, String var5) throws ApplicationLaunchException {
- super(var5);
- this.field_1 = var1;
- this.field_0 = var2;
- this.field_2 = var3;
- this.genericTempFileTemplate = var4;
- String var6 = this.field_1.getLaunchString();
- if (!this.findExecutablePath(var6)) {
- int var8 = var6.indexOf(32);
- String var7;
- if (var8 != -1) {
- var7 = var6.substring(0, var8);
- } else {
- var7 = var6;
- }
-
- throw new ApplicationLaunchException(var7);
- }
- }
-
- protected String getTempFileName(URL var1, String var2) {
- int var4 = var2.lastIndexOf("%s");
- String var5 = var2.substring(0, var4);
- String var6 = "";
- if (var4 < var2.length() - 2) {
- var6 = var2.substring(var4 + 2);
- }
-
- long var7 = System.currentTimeMillis() / 1000L;
-
- int var14;
- for(var14 = 0; (var14 = var5.indexOf("%s")) >= 0; var5 = var5.substring(0, var14) + var7 + var5.substring(var14 + 2)) {
- }
-
- String var10 = var1.getFile();
- String var11 = "";
- int var12 = var10.lastIndexOf(46);
- if (var12 >= 0) {
- var11 = var10.substring(var12);
- var10 = var10.substring(0, var12);
- }
-
- File var13 = new File(var10.replace('/', File.separatorChar));
- var10 = var13.getName();
- String var3 = var5 + var10 + var7 + var11 + var6;
- return var3;
- }
-
- public void run() {
- try {
- String var1 = this.field_1.getTempFileTemplate();
- if (var1 == null) {
- var1 = this.genericTempFileTemplate;
- }
-
- var1 = this.getTempFileName(this.field_0.getURL(), var1);
-
- try {
- FileOutputStream var2 = new FileOutputStream(var1);
- byte[] var3 = new byte[2048];
- int var4 = 0;
-
- try {
- while((var4 = this.field_2.read(var3)) >= 0) {
- ((OutputStream)var2).write(var3, 0, var4);
- }
- } catch (IOException var11) {
- } finally {
- ((OutputStream)var2).close();
- this.field_2.close();
- }
- } catch (IOException var13) {
- }
-
- int var16 = 0;
-
- String var19;
- for(var19 = this.execPath; (var16 = var19.indexOf("%t")) >= 0; var19 = var19.substring(0, var16) + this.field_0.getContentType() + var19.substring(var16 + 2)) {
- }
-
- boolean var21;
- for(var21 = false; (var16 = var19.indexOf("%s")) >= 0; var21 = true) {
- var19 = var19.substring(0, var16) + var1 + var19.substring(var16 + 2);
- }
-
- if (!var21) {
- var19 = var19 + " <" + var1;
- }
-
- Runtime.getRuntime().exec(var19);
- } catch (IOException var14) {
- }
- }
-
- private boolean findExecutablePath(String var1) {
- if (var1 != null && var1.length() != 0) {
- int var3 = var1.indexOf(32);
- String var2;
- if (var3 != -1) {
- var2 = var1.substring(0, var3);
- } else {
- var2 = var1;
- }
-
- File var4 = new File(var2);
- if (var4.isFile()) {
- this.execPath = var1;
- return true;
- } else {
- String var5 = System.getProperty("exec.path");
- if (var5 == null) {
- return false;
- } else {
- StringTokenizer var6 = new StringTokenizer(var5, "|");
-
- while(var6.hasMoreElements()) {
- String var7 = (String)var6.nextElement();
- String var8 = var7 + File.separator + var2;
- var4 = new File(var8);
- if (var4.isFile()) {
- this.execPath = var7 + File.separator + var1;
- return true;
- }
- }
-
- return false;
- }
- }
- } else {
- return false;
- }
- }
- }
-