PageRenderTime 152ms CodeModel.GetById 34ms RepoModel.GetById 2ms app.codeStats 0ms

/carrot-jdk7-jnlp-decompile-javaws/src/main/java/com/sun/javaws/Main.java

https://github.com/carrot-garden/carrot-jnlper
Java | 1298 lines | 1262 code | 32 blank | 4 comment | 315 complexity | 0230145227c32c52c1e6bd19aa66f304 MD5 | raw file
  1. package com.sun.javaws;
  2. import com.sun.deploy.Environment;
  3. import com.sun.deploy.cache.Cache;
  4. import com.sun.deploy.cache.CacheEntry;
  5. import com.sun.deploy.cache.DeployCacheHandler;
  6. import com.sun.deploy.config.Config;
  7. import com.sun.deploy.config.JREInfo;
  8. import com.sun.deploy.config.Platform;
  9. import com.sun.deploy.config.WebStartConfig;
  10. import com.sun.deploy.net.DeployClassLoader;
  11. import com.sun.deploy.net.DownloadEngine;
  12. import com.sun.deploy.net.cookie.DeployCookieSelector;
  13. import com.sun.deploy.net.offline.DeployOfflineManager;
  14. import com.sun.deploy.net.proxy.DeployProxySelector;
  15. import com.sun.deploy.net.proxy.StaticProxyManager;
  16. import com.sun.deploy.panel.ControlPanel;
  17. import com.sun.deploy.pings.Pings;
  18. import com.sun.deploy.resources.ResourceManager;
  19. import com.sun.deploy.si.SingleInstanceManager;
  20. import com.sun.deploy.trace.FileTraceListener;
  21. import com.sun.deploy.trace.LoggerTraceListener;
  22. import com.sun.deploy.trace.SocketTraceListener;
  23. import com.sun.deploy.trace.Trace;
  24. import com.sun.deploy.trace.TraceLevel;
  25. import com.sun.deploy.trace.TraceListener;
  26. import com.sun.deploy.uitoolkit.ToolkitStore;
  27. import com.sun.deploy.uitoolkit.UIToolkit;
  28. import com.sun.deploy.uitoolkit.ui.ComponentRef;
  29. import com.sun.deploy.uitoolkit.ui.ConsoleController;
  30. import com.sun.deploy.uitoolkit.ui.ConsoleTraceListener;
  31. import com.sun.deploy.uitoolkit.ui.ConsoleWindow;
  32. import com.sun.deploy.util.DeploySysRun;
  33. import com.sun.deploy.util.DeployUIManager;
  34. import com.sun.deploy.util.JVMParameters;
  35. import com.sun.deploy.util.PerfLogger;
  36. import com.sun.deploy.util.SecurityBaseline;
  37. import com.sun.javaws.exceptions.CacheAccessException;
  38. import com.sun.javaws.exceptions.CouldNotLoadArgumentException;
  39. import com.sun.javaws.exceptions.ExitException;
  40. import com.sun.javaws.exceptions.FailedDownloadingResourceException;
  41. import com.sun.javaws.exceptions.InvalidArgumentException;
  42. import com.sun.javaws.exceptions.JNLPException;
  43. import com.sun.javaws.exceptions.JNLParseException;
  44. import com.sun.javaws.exceptions.LaunchDescException;
  45. import com.sun.javaws.jnl.InformationDesc;
  46. import com.sun.javaws.jnl.LaunchDesc;
  47. import com.sun.javaws.jnl.LaunchDescFactory;
  48. import com.sun.javaws.security.AppContextUtil;
  49. import com.sun.javaws.ui.JavawsSysRun;
  50. import com.sun.javaws.ui.LaunchErrorDialog;
  51. import com.sun.javaws.ui.SplashScreen;
  52. import com.sun.javaws.util.JavawsConsoleController;
  53. import com.sun.javaws.util.JavawsDialogListener;
  54. import com.sun.jnlp.JNLPClassLoader;
  55. import com.sun.jnlp.JnlpLookupStub;
  56. import java.io.BufferedReader;
  57. import java.io.DataInputStream;
  58. import java.io.File;
  59. import java.io.FileInputStream;
  60. import java.io.FileNotFoundException;
  61. import java.io.FileOutputStream;
  62. import java.io.IOException;
  63. import java.io.InputStream;
  64. import java.io.InputStreamReader;
  65. import java.io.PrintStream;
  66. import java.net.Authenticator;
  67. import java.net.MalformedURLException;
  68. import java.net.Socket;
  69. import java.net.URL;
  70. import java.text.ParseException;
  71. import java.text.SimpleDateFormat;
  72. import java.util.ArrayList;
  73. import java.util.Date;
  74. import java.util.Properties;
  75. import java.util.logging.Level;
  76. import java.util.logging.Logger;
  77. import javax.net.ssl.SSLException;
  78. import sun.misc.BASE64Decoder;
  79. public class Main
  80. {
  81. private static boolean _isViewer = false;
  82. private static boolean _silent = false;
  83. private static boolean _environmentInitialized = false;
  84. private static boolean _baselineUpdate = false;
  85. private static ThreadGroup _mainTG = null;
  86. private static ThreadGroup _systemTG;
  87. private static ThreadGroup _securityTG;
  88. private static ClassLoader _secureContextClassLoader;
  89. private static ThreadGroup _launchTG;
  90. private static String _tempfile = null;
  91. private static DataInputStream _tckStream = null;
  92. private static boolean _verbose = false;
  93. private static String _embedded = null;
  94. private static boolean uninstall = false;
  95. private static boolean includeInstalled = false;
  96. private static final String DOCBASE_KEY = "docbase";
  97. private static final String JNLPHREF_KEY = "jnlphref";
  98. private static final String EMBEDDED_KEY = "embedded";
  99. public static void main(String[] paramArrayOfString)
  100. {
  101. try
  102. {
  103. PerfLogger.setBaseTimeString(System.getProperty("jnlp.start.time"));
  104. PerfLogger.setStartTime("Java Web Start started");
  105. PerfLogger.setTime("Starting Main");
  106. Environment.setEnvironmentType(1);
  107. Platform.get().loadDeployNativeLib();
  108. PerfLogger.setTime(" - returned from Platform.get();");
  109. Config.get();
  110. PerfLogger.setTime(" - returned from Config.get();");
  111. Config.setInstance(new WebStartConfig());
  112. PerfLogger.setTime(" - back from Config.setInstance(new WebStartConfig());");
  113. URL.setURLStreamHandlerFactory(null);
  114. Thread.currentThread().setContextClassLoader(new DeployClassLoader());
  115. _secureContextClassLoader = Thread.currentThread().getContextClassLoader();
  116. Thread.currentThread().setContextClassLoader(JNLPClassLoader.createClassLoader());
  117. String str1 = System.getProperty("java.protocol.handler.pkgs");
  118. String str2 = "com.sun.javaws.net.protocol";
  119. if (Config.isJavaVersionAtLeast14())
  120. str2 = str2 + "|com.sun.deploy.net.protocol";
  121. if (str1 != null)
  122. System.setProperty("java.protocol.handler.pkgs", str1 + "|" + str2);
  123. else
  124. System.setProperty("java.protocol.handler.pkgs", str2);
  125. PerfLogger.setTime("Start Toolkit init");
  126. ToolkitStore.get().warmup();
  127. PerfLogger.setTime("End Toolkit init");
  128. initializeThreadGroups();
  129. try
  130. {
  131. DeployCacheHandler.reset();
  132. }
  133. catch (Throwable localThrowable2)
  134. {
  135. }
  136. new Thread(_securityTG, new Runnable(paramArrayOfString)
  137. {
  138. private final String[] val$args;
  139. public void run()
  140. {
  141. AppContextUtil.createSecurityAppContext();
  142. Thread.currentThread().setContextClassLoader(Main.getSecureContextClassLoader());
  143. try
  144. {
  145. Main.continueInSecureThread(this.val$args);
  146. }
  147. catch (Throwable localThrowable)
  148. {
  149. localThrowable.printStackTrace();
  150. }
  151. Trace.flush();
  152. }
  153. }
  154. , "Java Web Start Main Thread").start();
  155. }
  156. catch (Throwable localThrowable1)
  157. {
  158. LaunchErrorDialog.show(null, localThrowable1, true);
  159. }
  160. }
  161. public static void continueInSecureThread(String[] paramArrayOfString)
  162. {
  163. String[] arrayOfString1 = Globals.parseOptions(paramArrayOfString);
  164. arrayOfString1 = parseArgs(arrayOfString1);
  165. if ((!Globals.isSilentMode()) || (Globals.isQuietMode()))
  166. DeployUIManager.setLookAndFeel();
  167. if (arrayOfString1.length > 0)
  168. _tempfile = arrayOfString1[(arrayOfString1.length - 1)];
  169. else if ((!uninstall) && (!_isViewer) && (!_baselineUpdate) && (!Environment.isSystemCacheMode()))
  170. LaunchErrorDialog.show(null, new InvalidArgumentException(paramArrayOfString), true);
  171. if (!_isViewer)
  172. {
  173. PerfLogger.setTime("Start initTrace");
  174. initTrace();
  175. PerfLogger.setTime("End initTrace");
  176. }
  177. if ((Environment.isSystemCacheMode()) && ((Config.getSystemCacheDirectory() == null) || (!Cache.canWrite())))
  178. if ((Environment.isImportMode()) && (Globals.isSilentMode()))
  179. Environment.setSystemCacheMode(false);
  180. else
  181. LaunchErrorDialog.show(null, new CacheAccessException(true), true);
  182. if ((Environment.isImportMode()) && (!Cache.isCacheEnabled()))
  183. if (Globals.isSilentMode())
  184. try
  185. {
  186. systemExit(-1);
  187. }
  188. catch (ExitException localExitException)
  189. {
  190. Trace.println("systemExit: " + localExitException, TraceLevel.BASIC);
  191. Trace.ignoredException(localExitException);
  192. }
  193. else
  194. LaunchErrorDialog.show(null, new CacheAccessException(Environment.isSystemCacheMode(), true), true);
  195. Config.validateSystemCacheDirectory();
  196. if ((Cache.canWrite()) || (_isViewer))
  197. {
  198. setupBrowser();
  199. PerfLogger.setTime("Start JnlpxArgs.verify");
  200. JnlpxArgs.verify();
  201. PerfLogger.setTime("End JnlpxArgs.verify");
  202. initializeExecutionEnvironment();
  203. PerfLogger.setTime("End InitializeExecutionEnv");
  204. if (uninstall)
  205. {
  206. uninstallCache(includeInstalled, arrayOfString1.length > 0 ? arrayOfString1[0] : null);
  207. }
  208. else
  209. {
  210. Cache6UpgradeHelper.getInstance();
  211. if (DeployOfflineManager.isGlobalOffline())
  212. {
  213. JnlpxArgs.SetIsOffline();
  214. DeployOfflineManager.setForcedOffline(true);
  215. }
  216. if (Environment.isSystemCacheMode())
  217. {
  218. CacheUpdateHelper.systemUpdateCheck();
  219. }
  220. else if ((Config.getBooleanProperty("deployment.javaws.cache.update")) && (CacheUpdateHelper.updateCache()))
  221. {
  222. Config.setBooleanProperty("deployment.javaws.cache.update", false);
  223. Config.get().storeIfNeeded();
  224. }
  225. if (_baselineUpdate)
  226. {
  227. SecurityBaseline.forceBaselineUpdate();
  228. }
  229. else if (!_isViewer)
  230. {
  231. if (Globals.TCKHarnessRun)
  232. tckprintln("Java Started");
  233. if (arrayOfString1.length > 0)
  234. if (Environment.isImportMode())
  235. {
  236. for (int i = 0; i < arrayOfString1.length; i++)
  237. {
  238. int j;
  239. if (i == 0)
  240. j = arrayOfString1.length - 1;
  241. else
  242. j = i - 1;
  243. boolean bool = i == arrayOfString1.length - 1;
  244. PerfLogger.setTime("calling launchApp for import ...");
  245. launchApp(arrayOfString1[j], bool);
  246. Environment.setJavaFxInstallMode(0);
  247. }
  248. }
  249. else
  250. {
  251. PerfLogger.setTime("calling launchApp ...");
  252. if (arrayOfString1.length != 1)
  253. {
  254. JnlpxArgs.removeArgumentFile(arrayOfString1[(arrayOfString1.length - 1)]);
  255. LaunchErrorDialog.show(null, new InvalidArgumentException(arrayOfString1), true);
  256. return;
  257. }
  258. launchApp(arrayOfString1[0], true);
  259. }
  260. }
  261. else
  262. {
  263. if (arrayOfString1.length > 0)
  264. JnlpxArgs.removeArgumentFile(arrayOfString1[0]);
  265. PerfLogger.setEndTime("Calling Application viewer");
  266. PerfLogger.outputLog();
  267. try
  268. {
  269. String str = _silent ? "-store" : "-viewer";
  270. String[] arrayOfString2 = new String[1];
  271. arrayOfString2[0] = str;
  272. launchJavaControlPanel(arrayOfString2);
  273. }
  274. catch (Exception localException)
  275. {
  276. LaunchErrorDialog.show(null, localException, true);
  277. }
  278. }
  279. }
  280. }
  281. else
  282. {
  283. LaunchErrorDialog.show(null, new CacheAccessException(Environment.isSystemCacheMode()), true);
  284. }
  285. Trace.flush();
  286. SplashScreen.hide();
  287. }
  288. private static void validateJavaFxUrl(String paramString, boolean paramBoolean)
  289. {
  290. if ((!Environment.allowAltJavaFxRuntimeURL()) && (!"http://dl.javafx.com/javafx-cache.jnlp".equals(paramString)))
  291. {
  292. LaunchErrorDialog.show(null, new Exception("Incorrect URL for JavaFX preload or auto-update"), paramBoolean);
  293. return;
  294. }
  295. }
  296. public static void launchApp(String paramString, boolean paramBoolean)
  297. {
  298. if ((Environment.isImportMode()) && (Environment.getJavaFxInstallMode() != 0))
  299. validateJavaFxUrl(paramString, paramBoolean);
  300. LaunchDesc localLaunchDesc = null;
  301. try
  302. {
  303. JREInfo localJREInfo = JREInfo.getHomeJRE();
  304. if (localJREInfo == null)
  305. throw new ExitException(new Exception("Internal Error: no running JRE"), 3);
  306. localObject2 = System.getProperty("jnlp.application.href");
  307. if (localObject2 != null)
  308. {
  309. localObject3 = new File(paramString);
  310. if (!((File)localObject3).exists())
  311. paramString = (String)localObject2;
  312. }
  313. Object localObject3 = LaunchDescFactory.getDocBase();
  314. localLaunchDesc = fromEmbedded(paramString, (URL)localObject3, _embedded);
  315. if (localLaunchDesc == null)
  316. if (localObject3 != null)
  317. localLaunchDesc = LaunchDescFactory.buildDescriptor(paramString, (URL)null, (URL)localObject3, true);
  318. else
  319. localLaunchDesc = LaunchDescFactory.buildDescriptor(paramString);
  320. if (localLaunchDesc.getLocation() == null)
  321. try
  322. {
  323. URL localURL = new URL(paramString);
  324. CacheEntry localCacheEntry = Cache.getCacheEntry(localURL, null, null);
  325. if (localCacheEntry != null)
  326. Cache.removeCacheEntry(localCacheEntry);
  327. }
  328. catch (MalformedURLException localMalformedURLException2)
  329. {
  330. }
  331. }
  332. catch (IOException localIOException)
  333. {
  334. Object localObject2 = null;
  335. JnlpxArgs.removeArgumentFile(paramString);
  336. localObject2 = new CouldNotLoadArgumentException(paramString, localIOException);
  337. if ((Config.isJavaVersionAtLeast14()) && (((localIOException instanceof SSLException)) || ((localIOException.getMessage() != null) && (localIOException.getMessage().toLowerCase().indexOf("https") != -1))))
  338. try
  339. {
  340. localObject2 = new FailedDownloadingResourceException(new URL(paramString), null, localIOException);
  341. }
  342. catch (MalformedURLException localMalformedURLException1)
  343. {
  344. Trace.ignoredException(localMalformedURLException1);
  345. }
  346. if ((Environment.isImportMode()) && (Environment.getJavaFxInstallMode() != 0))
  347. Pings.sendJFXPing("jfxic", Launcher.getCurrentJavaFXVersion(), "XX", 3, paramString);
  348. LaunchErrorDialog.show(null, (Throwable)localObject2, paramBoolean);
  349. return;
  350. }
  351. catch (JNLParseException localJNLParseException)
  352. {
  353. JnlpxArgs.removeArgumentFile(paramString);
  354. LaunchErrorDialog.show(null, localJNLParseException, paramBoolean);
  355. return;
  356. }
  357. catch (LaunchDescException localLaunchDescException)
  358. {
  359. Trace.println("Error parsing " + paramString + ". Try to parse again with codebase from LAP", TraceLevel.BASIC);
  360. try
  361. {
  362. localLaunchDesc = LaunchDescFactory.buildDescriptor(new File(paramString));
  363. if (localLaunchDesc == null)
  364. throw localLaunchDescException;
  365. }
  366. catch (Exception localException2)
  367. {
  368. JnlpxArgs.removeArgumentFile(paramString);
  369. LaunchErrorDialog.show(null, localLaunchDescException, paramBoolean);
  370. return;
  371. }
  372. }
  373. catch (Exception localException1)
  374. {
  375. Trace.ignoredException(localException1);
  376. JnlpxArgs.removeArgumentFile(paramString);
  377. LaunchErrorDialog.show(null, localException1, paramBoolean);
  378. return;
  379. }
  380. Environment.setImportModeCodebase(localLaunchDesc.getCodebase());
  381. Object localObject1;
  382. if (localLaunchDesc.getLaunchType() == 5)
  383. {
  384. JnlpxArgs.removeArgumentFile(paramString);
  385. localObject1 = localLaunchDesc.getInternalCommand();
  386. String[] arrayOfString;
  387. if ((localObject1 != null) && (!((String)localObject1).equals("player")) && (!((String)localObject1).equals("viewer")))
  388. {
  389. arrayOfString = new String[2];
  390. arrayOfString[0] = "-tab";
  391. arrayOfString[1] = localLaunchDesc.getInternalCommand();
  392. }
  393. else
  394. {
  395. arrayOfString = new String[1];
  396. arrayOfString[0] = "-viewer";
  397. }
  398. launchJavaControlPanel(arrayOfString);
  399. }
  400. else if (Config.get().isValid())
  401. {
  402. localObject1 = new String[1];
  403. localObject1[0] = paramString;
  404. new Launcher(localLaunchDesc).launch(localObject1, paramBoolean);
  405. }
  406. else
  407. {
  408. LaunchErrorDialog.show(null, new LaunchDescException(localLaunchDesc, ResourceManager.getString("enterprize.cfg.mandatory", Config.get().getEnterpriseString()), null), paramBoolean);
  409. }
  410. }
  411. private static LaunchDesc fromEmbedded(String paramString1, URL paramURL, String paramString2)
  412. {
  413. if (paramString2 != null)
  414. try
  415. {
  416. URL localURL = null;
  417. try
  418. {
  419. localURL = new URL(paramString1);
  420. }
  421. catch (MalformedURLException localMalformedURLException)
  422. {
  423. }
  424. BASE64Decoder localBASE64Decoder = new BASE64Decoder();
  425. byte[] arrayOfByte = localBASE64Decoder.decodeBuffer(_embedded);
  426. return LaunchDownload.updateLaunchDescInCache(LaunchDescFactory.buildDescriptor(arrayOfByte, paramURL, paramURL, localURL), paramURL, paramURL);
  427. }
  428. catch (Exception localException)
  429. {
  430. Trace.ignored(localException);
  431. }
  432. return null;
  433. }
  434. static void importApp(String paramString)
  435. {
  436. boolean bool1 = Environment.isImportMode();
  437. Environment.setImportMode(true);
  438. boolean bool2 = Globals.isSilentMode();
  439. Globals.setSilentMode(true);
  440. boolean bool3 = Globals.isShortcutMode();
  441. Globals.setCreateShortcut(true);
  442. launchApp(paramString, false);
  443. Environment.setImportMode(bool1);
  444. Globals.setSilentMode(bool2);
  445. Globals.setCreateShortcut(bool3);
  446. }
  447. private static void launchJavaControlPanel(String[] paramArrayOfString)
  448. {
  449. SplashScreen.hide();
  450. ControlPanel.main(paramArrayOfString);
  451. }
  452. private static void uninstallCache(boolean paramBoolean, String paramString)
  453. {
  454. int i = -1;
  455. try
  456. {
  457. i = uninstall(paramBoolean, paramString);
  458. }
  459. catch (Exception localException)
  460. {
  461. LaunchErrorDialog.show(null, localException, (!Globals.isSilentMode()) || (Globals.isQuietMode()));
  462. }
  463. _tempfile = null;
  464. try
  465. {
  466. systemExit(i);
  467. }
  468. catch (ExitException localExitException)
  469. {
  470. Trace.println("systemExit: " + localExitException, TraceLevel.BASIC);
  471. Trace.ignoredException(localExitException);
  472. }
  473. }
  474. private static Date parseDate(String paramString)
  475. {
  476. Date localDate = null;
  477. SimpleDateFormat localSimpleDateFormat = new SimpleDateFormat("MM/dd/yy hh:mm a");
  478. try
  479. {
  480. localDate = localSimpleDateFormat.parse(paramString);
  481. }
  482. catch (ParseException localParseException1)
  483. {
  484. ParseException localParseException2 = new ParseException(localParseException1.getMessage() + " " + ResourceManager.getString("launch.error.dateformat"), localParseException1.getErrorOffset());
  485. LaunchErrorDialog.show(null, localParseException2, true);
  486. }
  487. return localDate;
  488. }
  489. private static Properties loadPropertiesFromFile(String paramString1, String paramString2)
  490. {
  491. FileInputStream localFileInputStream = null;
  492. InputStreamReader localInputStreamReader = null;
  493. try
  494. {
  495. localFileInputStream = new FileInputStream(paramString1);
  496. localInputStreamReader = new InputStreamReader(localFileInputStream, paramString2);
  497. Properties localProperties1 = new Properties();
  498. localProperties1.load(localInputStreamReader);
  499. localProperties2 = localProperties1;
  500. return localProperties2;
  501. }
  502. catch (Exception localException)
  503. {
  504. Properties localProperties2 = new Properties();
  505. return localProperties2;
  506. }
  507. finally
  508. {
  509. if (localInputStreamReader != null)
  510. try
  511. {
  512. localInputStreamReader.close();
  513. }
  514. catch (IOException localIOException5)
  515. {
  516. Trace.ignoredException(localIOException5);
  517. }
  518. else if (localFileInputStream != null)
  519. try
  520. {
  521. localFileInputStream.close();
  522. }
  523. catch (IOException localIOException6)
  524. {
  525. Trace.ignoredException(localIOException6);
  526. }
  527. }
  528. throw localObject;
  529. }
  530. private static String processLaunchPropFile(String paramString)
  531. {
  532. String str1 = null;
  533. try
  534. {
  535. Properties localProperties = loadPropertiesFromFile(paramString, Platform.get().getPlatformNativeEncoding());
  536. if (localProperties.getProperty("docbase") == null)
  537. localProperties = loadPropertiesFromFile(paramString, "UTF-8");
  538. String str2 = localProperties.getProperty("docbase");
  539. String str3 = localProperties.getProperty("jnlphref");
  540. String str4 = localProperties.getProperty("embedded");
  541. URL localURL1;
  542. if ((str2 != null) && (str2.length() > 0))
  543. {
  544. localURL1 = new URL(str2);
  545. LaunchDescFactory.setDocBase(localURL1);
  546. Trace.println("docbase from launch file: " + localURL1.toString(), TraceLevel.BASIC);
  547. }
  548. if ((str3 != null) && (str3.length() > 0))
  549. {
  550. localURL1 = null;
  551. try
  552. {
  553. localURL1 = new URL(str3);
  554. }
  555. catch (MalformedURLException localMalformedURLException)
  556. {
  557. URL localURL2 = LaunchDescFactory.getDerivedCodebase();
  558. if (localURL2 != null)
  559. localURL1 = new URL(localURL2 + str3);
  560. }
  561. if (localURL1 != null)
  562. {
  563. str1 = localURL1.toString();
  564. Trace.println("jnlphref from launch property file: " + str1, TraceLevel.BASIC);
  565. }
  566. }
  567. if ((str4 != null) && (str4.length() > 0))
  568. _embedded = str4;
  569. }
  570. catch (Exception localException)
  571. {
  572. LaunchErrorDialog.show(null, new Throwable("Launch file error", localException), true);
  573. }
  574. finally
  575. {
  576. if (paramString != null)
  577. Environment.setLaunchPropFile(paramString);
  578. }
  579. return str1;
  580. }
  581. private static String[] parseArgs(String[] paramArrayOfString)
  582. {
  583. ArrayList localArrayList = new ArrayList();
  584. for (int i = 0; i < paramArrayOfString.length; i++)
  585. if (!paramArrayOfString[i].startsWith("-"))
  586. {
  587. localArrayList.add(paramArrayOfString[i]);
  588. }
  589. else if (paramArrayOfString[i].equals("-offline"))
  590. {
  591. JnlpxArgs.SetIsOffline();
  592. DeployOfflineManager.setForcedOffline(true);
  593. }
  594. else
  595. {
  596. if ((paramArrayOfString[i].equals("-online")) || (paramArrayOfString[i].equals("-Xnosplash")))
  597. continue;
  598. if (paramArrayOfString[i].equals("-installer"))
  599. {
  600. Environment.setInstallMode(true);
  601. }
  602. else if (paramArrayOfString[i].equals("-uninstall"))
  603. {
  604. uninstall = true;
  605. includeInstalled = true;
  606. Environment.setInstallMode(true);
  607. Environment.setImportMode(true);
  608. }
  609. else if (paramArrayOfString[i].equals("-clearcache"))
  610. {
  611. uninstall = true;
  612. includeInstalled = false;
  613. Environment.setInstallMode(true);
  614. Environment.setImportMode(true);
  615. }
  616. else if (paramArrayOfString[i].equals("-import"))
  617. {
  618. Environment.setImportMode(true);
  619. }
  620. else if (paramArrayOfString[i].equals("-quiet"))
  621. {
  622. Globals.setQuietMode(true);
  623. }
  624. else if (paramArrayOfString[i].equals("-silent"))
  625. {
  626. _silent = true;
  627. Globals.setSilentMode(true);
  628. }
  629. else if (paramArrayOfString[i].equals("-reverse"))
  630. {
  631. Globals.setReverseMode(true);
  632. }
  633. else if (paramArrayOfString[i].equals("-javafx"))
  634. {
  635. Environment.setJavaFxInstallMode(1);
  636. }
  637. else if (paramArrayOfString[i].equals("-javafxau"))
  638. {
  639. Environment.setJavaFxInstallMode(2);
  640. }
  641. else if (paramArrayOfString[i].equals("-shortcut"))
  642. {
  643. Globals.setCreateShortcut(true);
  644. }
  645. else if (paramArrayOfString[i].equals("-association"))
  646. {
  647. Globals.setCreateAssoc(true);
  648. }
  649. else if (paramArrayOfString[i].equals("-prompt"))
  650. {
  651. Globals.setShowPrompts(true);
  652. }
  653. else if (paramArrayOfString[i].equals("-nocodebase"))
  654. {
  655. if (i + 1 >= paramArrayOfString.length)
  656. continue;
  657. i++;
  658. localObject = paramArrayOfString[i];
  659. String str = processLaunchPropFile((String)localObject);
  660. if (str != null)
  661. localArrayList.add(str);
  662. }
  663. else if (paramArrayOfString[i].equals("-docbase"))
  664. {
  665. if (i + 1 >= paramArrayOfString.length)
  666. continue;
  667. i++;
  668. localObject = paramArrayOfString[i];
  669. try
  670. {
  671. LaunchDescFactory.setDocBase(new URL((String)localObject));
  672. }
  673. catch (MalformedURLException localMalformedURLException1)
  674. {
  675. Trace.ignoredException(localMalformedURLException1);
  676. }
  677. }
  678. else if (paramArrayOfString[i].equals("-codebase"))
  679. {
  680. if (i + 1 >= paramArrayOfString.length)
  681. continue;
  682. i++;
  683. localObject = paramArrayOfString[i];
  684. try
  685. {
  686. new URL((String)localObject);
  687. }
  688. catch (MalformedURLException localMalformedURLException2)
  689. {
  690. LaunchErrorDialog.show(null, localMalformedURLException2, true);
  691. }
  692. Environment.setImportModeCodebaseOverride((String)localObject);
  693. }
  694. else
  695. {
  696. Date localDate;
  697. if (paramArrayOfString[i].equals("-timestamp"))
  698. {
  699. if (i + 1 >= paramArrayOfString.length)
  700. continue;
  701. i++;
  702. localObject = paramArrayOfString[i];
  703. localDate = parseDate((String)localObject);
  704. if (localDate != null)
  705. Environment.setImportModeTimestamp(localDate);
  706. }
  707. else if (paramArrayOfString[i].equals("-expiration"))
  708. {
  709. if (i + 1 >= paramArrayOfString.length)
  710. continue;
  711. i++;
  712. localObject = paramArrayOfString[i];
  713. localDate = parseDate((String)localObject);
  714. if (localDate != null)
  715. Environment.setImportModeExpiration(localDate);
  716. }
  717. else if (paramArrayOfString[i].equals("-system"))
  718. {
  719. Environment.setSystemCacheMode(true);
  720. }
  721. else if (paramArrayOfString[i].equals("-secure"))
  722. {
  723. Globals.setSecureMode(true);
  724. }
  725. else if ((paramArrayOfString[i].equals("-open")) || (paramArrayOfString[i].equals("-print")))
  726. {
  727. if (i + 1 >= paramArrayOfString.length)
  728. continue;
  729. localObject = new String[2];
  730. localObject[0] = paramArrayOfString[(i++)];
  731. localObject[1] = paramArrayOfString[i];
  732. Globals.setApplicationArgs(localObject);
  733. SingleInstanceManager.setActionName(localObject[0]);
  734. SingleInstanceManager.setOpenPrintFilePath(localObject[1]);
  735. }
  736. else if (paramArrayOfString[i].equals("-viewer"))
  737. {
  738. _isViewer = true;
  739. }
  740. else if (paramArrayOfString[i].equals("-verbose"))
  741. {
  742. _verbose = true;
  743. }
  744. else if (paramArrayOfString[i].equals("-SSVBaselineUpdate"))
  745. {
  746. _baselineUpdate = true;
  747. }
  748. else
  749. {
  750. Trace.println("unsupported option: " + paramArrayOfString[i], TraceLevel.BASIC);
  751. }
  752. }
  753. }
  754. Object localObject = new String[localArrayList.size()];
  755. for (int j = 0; j < localObject.length; j++)
  756. localObject[j] = ((String)localArrayList.get(j));
  757. return (String)localObject;
  758. }
  759. private static void initTrace()
  760. {
  761. Trace.redirectStdioStderr();
  762. Trace.resetTraceLevel();
  763. Trace.clearTraceListeners();
  764. Trace.setInitialTraceLevel();
  765. if ((_verbose) || (Globals.TraceBasic))
  766. Trace.setEnabled(TraceLevel.BASIC, true);
  767. if ((_verbose) || (Globals.TraceNetwork))
  768. Trace.setEnabled(TraceLevel.NETWORK, true);
  769. if ((_verbose) || (Globals.TraceCache))
  770. Trace.setEnabled(TraceLevel.CACHE, true);
  771. if ((_verbose) || (Globals.TraceSecurity))
  772. Trace.setEnabled(TraceLevel.SECURITY, true);
  773. if ((_verbose) || (Globals.TraceExtensions))
  774. Trace.setEnabled(TraceLevel.EXTENSIONS, true);
  775. if ((_verbose) || (Globals.TraceTemp))
  776. Trace.setEnabled(TraceLevel.TEMP, true);
  777. PerfLogger.setTime("Start setup Console");
  778. if ((Config.getStringProperty("deployment.console.startup.mode").equals("SHOW")) && (!ToolkitStore.get().isHeadless()) && (!Globals.isQuietMode()))
  779. {
  780. localObject1 = JavawsConsoleController.getInstance();
  781. localObject2 = new ConsoleTraceListener();
  782. localObject3 = ToolkitStore.getUI().getConsole((ConsoleController)localObject1);
  783. ((JavawsConsoleController)localObject1).setConsole((ConsoleWindow)localObject3);
  784. ((ConsoleTraceListener)localObject2).setConsole((ConsoleWindow)localObject3);
  785. Trace.addTraceListener((TraceListener)localObject2);
  786. ((ConsoleWindow)localObject3).clear();
  787. }
  788. PerfLogger.setTime("End setup Console");
  789. Object localObject1 = initSocketTrace();
  790. if (localObject1 != null)
  791. Trace.addTraceListener((TraceListener)localObject1);
  792. Object localObject2 = initFileTrace();
  793. if (localObject2 != null)
  794. Trace.addTraceListener((TraceListener)localObject2);
  795. Object localObject3 = JavawsConsoleController.getInstance();
  796. if ((Config.isJavaVersionAtLeast14()) && (Config.getBooleanProperty("deployment.log")))
  797. {
  798. File localFile1 = null;
  799. try
  800. {
  801. boolean bool = false;
  802. String str = Config.getStringProperty("deployment.javaws.logFileName");
  803. File localFile2 = new File(Config.getLogDirectory());
  804. if ((str != null) && (!"".equals(str)))
  805. {
  806. localFile1 = new File(str);
  807. if (localFile1.isDirectory())
  808. localFile1 = null;
  809. else
  810. bool = true;
  811. }
  812. LoggerTraceListener localLoggerTraceListener = LoggerTraceListener.getOrCreateSharedInstance("com.sun.deploy", localFile1, localFile2, "javaws", ".log", bool);
  813. if (localLoggerTraceListener != null)
  814. {
  815. localLoggerTraceListener.getLogger().setLevel(Level.ALL);
  816. ((JavawsConsoleController)localObject3).setLogger(localLoggerTraceListener.getLogger());
  817. Trace.addTraceListener(localLoggerTraceListener);
  818. }
  819. }
  820. catch (Exception localException)
  821. {
  822. Trace.println("can not create log file in directory: " + Config.getLogDirectory(), TraceLevel.BASIC);
  823. }
  824. }
  825. }
  826. private static FileTraceListener initFileTrace()
  827. {
  828. if (Config.getBooleanProperty("deployment.trace"))
  829. {
  830. File localFile = null;
  831. String str1 = Config.getLogDirectory();
  832. String str2 = Config.getStringProperty("deployment.javaws.traceFileName");
  833. boolean bool = false;
  834. try
  835. {
  836. if ((str2 != null) && (!"".equals(str2)) && (str2.compareToIgnoreCase("TEMP") != 0))
  837. {
  838. localFile = new File(str2);
  839. if (!localFile.isDirectory())
  840. {
  841. int i = str2.lastIndexOf(File.separator);
  842. if (i != -1)
  843. str1 = str2.substring(0, i);
  844. bool = true;
  845. }
  846. else
  847. {
  848. localFile = null;
  849. }
  850. }
  851. return FileTraceListener.getOrCreateSharedInstance(localFile, new File(str1), "javaws", ".trace", true, bool);
  852. }
  853. catch (Exception localException)
  854. {
  855. Trace.println("cannot create trace file in Directory: " + str1, TraceLevel.BASIC);
  856. }
  857. }
  858. return null;
  859. }
  860. private static SocketTraceListener initSocketTrace()
  861. {
  862. if (Globals.LogToHost != null)
  863. {
  864. String str1 = Globals.LogToHost;
  865. String str2 = null;
  866. int i = -1;
  867. int j = 0;
  868. int k = 0;
  869. if ((str1.charAt(0) == '[') && ((k = str1.indexOf(1, 93)) != -1))
  870. j = 1;
  871. else
  872. k = str1.indexOf(":");
  873. str2 = str1.substring(j, k);
  874. if (str2 == null)
  875. return null;
  876. try
  877. {
  878. String str3 = str1.substring(str1.lastIndexOf(':') + 1);
  879. i = Integer.parseInt(str3);
  880. }
  881. catch (NumberFormatException localNumberFormatException)
  882. {
  883. i = -1;
  884. }
  885. if (i < 0)
  886. return null;
  887. SocketTraceListener localSocketTraceListener = new SocketTraceListener(str2, i);
  888. if (localSocketTraceListener != null)
  889. {
  890. Socket localSocket = localSocketTraceListener.getSocket();
  891. if ((Globals.TCKResponse) && (localSocket != null))
  892. try
  893. {
  894. _tckStream = new DataInputStream(localSocket.getInputStream());
  895. }
  896. catch (IOException localIOException)
  897. {
  898. Trace.ignoredException(localIOException);
  899. }
  900. }
  901. return localSocketTraceListener;
  902. }
  903. return null;
  904. }
  905. private static int uninstall(boolean paramBoolean, String paramString)
  906. {
  907. if (paramString == null)
  908. {
  909. Trace.println("Uninstall all!", TraceLevel.BASIC);
  910. CacheUtil.remove(paramBoolean);
  911. if (Globals.TCKHarnessRun)
  912. tckprintln("Cache Clear Success");
  913. }
  914. else
  915. {
  916. Trace.println("Uninstall: " + paramString, TraceLevel.BASIC);
  917. LaunchDesc localLaunchDesc = null;
  918. try
  919. {
  920. localLaunchDesc = LaunchDescFactory.buildDescriptor(paramString);
  921. }
  922. catch (IOException localIOException)
  923. {
  924. Trace.ignoredException(localIOException);
  925. }
  926. catch (JNLPException localJNLPException)
  927. {
  928. Trace.ignoredException(localJNLPException);
  929. }
  930. Object localObject1;
  931. Object localObject2;
  932. String str2;
  933. if (localLaunchDesc != null)
  934. {
  935. Object localObject3;
  936. if (Globals.showPrompts())
  937. {
  938. localObject1 = localLaunchDesc.getInformation().getTitle();
  939. localObject2 = ResourceManager.getString("uninstall.app.prompt.title");
  940. localObject3 = ResourceManager.getString("uninstall.app.prompt.message", (String)localObject1);
  941. str2 = ResourceManager.getString("common.ok_btn");
  942. String str3 = ResourceManager.getString("common.cancel_btn");
  943. ToolkitStore.getUI();
  944. ToolkitStore.getUI();
  945. if (ToolkitStore.getUI().showMessageDialog(null, localLaunchDesc.getAppInfo(), 3, (String)localObject2, null, (String)localObject3, null, str2, str3, null) != 0)
  946. {
  947. Trace.println("Uninstall canceled by user.", TraceLevel.BASIC);
  948. return 0;
  949. }
  950. }
  951. localObject1 = null;
  952. if ((localLaunchDesc.isInstaller()) || (localLaunchDesc.isLibrary()))
  953. localObject1 = Cache.getLocalApplicationProperties(paramString);
  954. else
  955. localObject1 = Cache.getLocalApplicationProperties(localLaunchDesc.getCanonicalHome());
  956. if (localObject1 != null)
  957. {
  958. localObject2 = null;
  959. try
  960. {
  961. localObject2 = new File(paramString);
  962. if (!((File)localObject2).exists())
  963. {
  964. localObject3 = new URL(paramString);
  965. localObject2 = DownloadEngine.getCachedFile((URL)localObject3);
  966. }
  967. }
  968. catch (Exception localException)
  969. {
  970. Trace.ignored(localException);
  971. }
  972. if ((localObject2 != null) && (((File)localObject2).exists()))
  973. CacheUtil.remove((File)localObject2, localLaunchDesc, new ArrayList());
  974. if (Globals.TCKHarnessRun)
  975. tckprintln("Cache Clear Success");
  976. return 0;
  977. }
  978. }
  979. Trace.println("Error uninstalling!", TraceLevel.BASIC);
  980. if (Globals.TCKHarnessRun)
  981. tckprintln("Cache Clear Failed");
  982. if ((!Globals.isSilentMode()) || (Globals.isQuietMode()))
  983. {
  984. SplashScreen.hide();
  985. localObject1 = ResourceManager.getMessage("uninstall.failedMessageTitle");
  986. localObject2 = ResourceManager.getMessage("uninstall.failedMessage");
  987. String str1 = ResourceManager.getString("common.ok_btn");
  988. str2 = ResourceManager.getString("common.detail.button");
  989. ToolkitStore.getUI();
  990. ToolkitStore.getUI().showMessageDialog(null, null, 0, (String)localObject1, null, (String)localObject2, null, str1, str2, null);
  991. }
  992. }
  993. return 0;
  994. }
  995. private static void setupBrowser()
  996. {
  997. if (Config.getBooleanProperty("deployment.capture.mime.types"))
  998. {
  999. setupNS6();
  1000. setupOpera();
  1001. Config.setBooleanProperty("deployment.capture.mime.types", false);
  1002. }
  1003. }
  1004. private static void setupOpera()
  1005. {
  1006. OperaSupport localOperaSupport = BrowserSupport.getInstance().getOperaSupport();
  1007. if ((localOperaSupport != null) && (localOperaSupport.isInstalled()))
  1008. localOperaSupport.enableJnlp(new File(Platform.get().getSystemJavawsPath()), Config.getBooleanProperty("deployment.update.mime.types"));
  1009. }
  1010. private static void setupNS6()
  1011. {
  1012. String str1 = null;
  1013. str1 = BrowserSupport.getInstance().getNS6MailCapInfo();
  1014. String str2 = "user_pref(\"browser.helperApps.neverAsk.openFile\", \"application%2Fx-java-jnlp-file\");\n";
  1015. File localFile = null;
  1016. String str3 = Platform.get().getMozillaUserProfileDirectory();
  1017. if (str3 != null)
  1018. localFile = new File(str3 + File.separator + "prefs.js");
  1019. if (localFile == null)
  1020. return;
  1021. FileInputStream localFileInputStream = null;
  1022. try
  1023. {
  1024. String str4 = null;
  1025. localFileInputStream = new FileInputStream(localFile);
  1026. localObject1 = new BufferedReader(new InputStreamReader(localFileInputStream));
  1027. localObject2 = "";
  1028. int i = 1;
  1029. int j;
  1030. if (str1 == null)
  1031. j = 0;
  1032. else
  1033. j = 1;
  1034. while (true)
  1035. try
  1036. {
  1037. str4 = ((BufferedReader)localObject1).readLine();
  1038. if (str4 != null)
  1039. continue;
  1040. localFileInputStream.close();
  1041. break;
  1042. localObject2 = (String)localObject2 + str4 + "\n";
  1043. if (str4.indexOf("x-java-jnlp-file") == -1)
  1044. continue;
  1045. i = 0;
  1046. if ((str1 == null) || (str4.indexOf(".mime.types") == -1))
  1047. continue;
  1048. j = 0;
  1049. continue;
  1050. }
  1051. catch (IOException localIOException2)
  1052. {
  1053. Trace.ignoredException(localIOException2);
  1054. }
  1055. if ((i == 0) && (j == 0))
  1056. return;
  1057. if (i != 0)
  1058. localObject2 = (String)localObject2 + str2;
  1059. if ((str1 != null) && (j != 0))
  1060. localObject2 = (String)localObject2 + str1;
  1061. FileOutputStream localFileOutputStream = new FileOutputStream(localFile);
  1062. try
  1063. {
  1064. localFileOutputStream.write(((String)localObject2).getBytes());
  1065. localFileOutputStream.close();
  1066. }
  1067. catch (IOException localIOException3)
  1068. {
  1069. Trace.ignoredException(localIOException3);
  1070. }
  1071. }
  1072. catch (FileNotFoundException localFileNotFoundException)
  1073. {
  1074. Object localObject2;
  1075. Trace.ignoredException(localFileNotFoundException);
  1076. Object localObject1 = "";
  1077. if (str1 != null)
  1078. localObject1 = (String)localObject1 + str1;
  1079. localObject1 = (String)localObject1 + str2;
  1080. try
  1081. {
  1082. localObject2 = new FileOutputStream(localFile);
  1083. ((FileOutputStream)localObject2).write(((String)localObject1).getBytes());
  1084. ((FileOutputStream)localObject2).close();
  1085. }
  1086. catch (IOException localIOException1)
  1087. {
  1088. Trace.ignoredException(localIOException1);
  1089. }
  1090. }
  1091. }
  1092. public static void initializeExecutionEnvironment()
  1093. {
  1094. if (_environmentInitialized)
  1095. return;
  1096. _environmentInitialized = true;
  1097. int i = Config.getOSName().indexOf("Windows") != -1 ? 1 : 0;
  1098. int j = Config.getOSName().indexOf("Mac") != -1 ? 1 : 0;
  1099. boolean bool = Config.isJavaVersionAtLeast15();
  1100. Environment.setUserAgent(Globals.getUserAgent());
  1101. if (i != 0)
  1102. {
  1103. if (bool)
  1104. com.sun.deploy.services.ServiceManager.setService(33024);
  1105. else
  1106. com.sun.deploy.services.ServiceManager.setService(16640);
  1107. }
  1108. else if (j != 0)
  1109. com.sun.deploy.services.ServiceManager.setService(40960);
  1110. else if (bool)
  1111. com.sun.deploy.services.ServiceManager.setService(36864);
  1112. else
  1113. com.sun.deploy.services.ServiceManager.setService(20480);
  1114. Properties localProperties = System.getProperties();
  1115. localProperties.put("http.auth.serializeRequests", "true");
  1116. if (Config.isJavaVersionAtLeast14())
  1117. {
  1118. if (Config.installDeployRMIClassLoaderSpi())
  1119. localProperties.put("java.rmi.server.RMIClassLoaderSpi", "com.sun.jnlp.JNLPRMIClassLoaderSpi");
  1120. String str = (String)localProperties.get("java.protocol.handler.pkgs");
  1121. if (str != null)
  1122. localProperties.put("java.protocol.handler.pkgs", str + "|com.sun.deploy.net.protocol");
  1123. else
  1124. localProperties.put("java.protocol.handler.pkgs", "com.sun.deploy.net.protocol");
  1125. }
  1126. localProperties.setProperty("javawebstart.version", Globals.getComponentName());
  1127. try
  1128. {
  1129. PerfLogger.setTime("Start DeployProxySelector.reset");
  1130. DeployProxySelector.reset();
  1131. PerfLogger.setTime("End DeployProxySelector.reset");
  1132. DeployCookieSelector.reset();
  1133. }
  1134. catch (Throwable localThrowable)
  1135. {
  1136. StaticProxyManager.reset();
  1137. }
  1138. DeployOfflineManager.reset();
  1139. if (Config.getBooleanProperty("deployment.security.authenticator"))
  1140. {
  1141. localObject = JAuthenticator.getInstance((ComponentRef)null);
  1142. Authenticator.setDefault((Authenticator)localObject);
  1143. }
  1144. javax.jnlp.ServiceManager.setServiceManagerStub(new JnlpLookupStub());
  1145. Config.setupPackageAccessRestriction();
  1146. com.sun.deploy.ui.UIFactory.setDialogListener(new JavawsDialogListener());
  1147. if (localProperties.get("https.protocols") == null)
  1148. {
  1149. localObject = new StringBuffer();
  1150. if (Config.getBooleanProperty("deployment.security.TLSv1.2"))
  1151. ((StringBuffer)localObject).append("TLSv1.2");
  1152. if (Config.getBooleanProperty("deployment.security.TLSv1.1"))
  1153. {
  1154. if (((StringBuffer)localObject).length() != 0)
  1155. ((StringBuffer)localObject).append(",");
  1156. ((StringBuffer)localObject).append("TLSv1.1");
  1157. }
  1158. if (Config.getBooleanProperty("deployment.security.TLSv1"))
  1159. {
  1160. if (((StringBuffer)localObject).length() != 0)
  1161. ((StringBuffer)localObject).append(",");
  1162. ((StringBuffer)localObject).append("TLSv1");
  1163. }
  1164. if (Config.getBooleanProperty("deployment.security.SSLv3"))
  1165. {
  1166. if (((StringBuffer)localObject).length() != 0)
  1167. ((StringBuffer)localObject).append(",");
  1168. ((StringBuffer)localObject).append("SSLv3");
  1169. }
  1170. if (Config.getBooleanProperty("deployment.security.SSLv2Hello"))
  1171. {
  1172. if (((StringBuffer)localObject).length() != 0)
  1173. ((StringBuffer)localObject).append(",");
  1174. ((StringBuffer)localObject).append("SSLv2Hello");
  1175. }
  1176. localProperties.put("https.protocols", ((StringBuffer)localObject).toString());
  1177. }
  1178. Object localObject = new JVMParameters();
  1179. long l = JnlpxArgs.getMaxHeapSize();
  1180. if (l <= 0L)
  1181. l = JVMParameters.getDefaultHeapSize();
  1182. ((JVMParameters)localObject).setMaxHeapSize(l);
  1183. l = JnlpxArgs.getInitialHeapSize();
  1184. if ((l > 0L) && (l != JVMParameters.getDefaultHeapSize()))
  1185. ((JVMParameters)localObject).parse("-Xms" + JVMParameters.unparseMemorySpec(l));
  1186. ((JVMParameters)localObject).parseTrustedOptions(JnlpxArgs.getVMArgs());
  1187. ((JVMParameters)localObject).setDefault(true);
  1188. JVMParameters.setRunningJVMParameters((JVMParameters)localObject);
  1189. if (Trace.isEnabled(TraceLevel.BASIC))
  1190. Trace.println("Running JVMParams: " + localObject + "\n\t-> " + JVMParameters.getRunningJVMParameters(), TraceLevel.BASIC);
  1191. }
  1192. public static void systemExit(int paramInt)
  1193. throws ExitException
  1194. {
  1195. try
  1196. {
  1197. JnlpxArgs.removeArgumentFile(_tempfile);
  1198. SplashScreen.hide();
  1199. }
  1200. catch (Exception localException)
  1201. {
  1202. Trace.ignored(localException);
  1203. }
  1204. Trace.flush();
  1205. if (Environment.isJavaPlugin())
  1206. {
  1207. ExitException localExitException = new ExitException(new RuntimeException("exit(" + paramInt + ")"), 4);
  1208. throw localExitException;
  1209. }
  1210. System.exit(paramInt);
  1211. }
  1212. public static boolean isViewer()
  1213. {
  1214. return _isViewer;
  1215. }
  1216. public static final ThreadGroup getLaunchThreadGroup()
  1217. {
  1218. return _launchTG;
  1219. }
  1220. public static final ThreadGroup getSecurityThreadGroup()
  1221. {
  1222. return _securityTG;
  1223. }
  1224. public static final ClassLoader getSecureContextClassLoader()
  1225. {
  1226. return _secureContextClassLoader;
  1227. }
  1228. static final ThreadGroup getMainThreadGroup()
  1229. {
  1230. return _mainTG;
  1231. }
  1232. private static void initializeThreadGroups()
  1233. {
  1234. if (_mainTG == null)
  1235. _mainTG = Thread.currentThread().getThreadGroup();
  1236. if (_securityTG == null)
  1237. {
  1238. _systemTG = Thread.currentThread().getThreadGroup();
  1239. while (_systemTG.getParent() != null)
  1240. _systemTG = _systemTG.getParent();
  1241. _securityTG = new ThreadGroup(_systemTG, "javawsSecurityThreadGroup");
  1242. DeploySysRun.setOverride(new JavawsSysRun());
  1243. _launchTG = new ThreadGroup(_systemTG, "javawsApplicationThreadGroup");
  1244. }
  1245. }
  1246. public static synchronized void tckprintln(String paramString)
  1247. {
  1248. long l = System.currentTimeMillis();
  1249. Trace.println("##TCKHarnesRun##:" + l + ":" + Runtime.getRuntime().hashCode() + ":" + Thread.currentThread() + ":" + paramString);
  1250. if (_tckStream != null)
  1251. try
  1252. {
  1253. while (_tckStream.readLong() < l);
  1254. }
  1255. catch (IOException localIOException)
  1256. {
  1257. System.err.println("Warning:Exceptions occurred, while logging to logSocket");
  1258. localIOException.printStackTrace(System.err);
  1259. }
  1260. Trace.flush();
  1261. }
  1262. }
  1263. /* Location: /opt/sun/java32/jdk1.7.0_04/jre/lib/javaws.jar
  1264. * Qualified Name: com.sun.javaws.Main
  1265. * JD-Core Version: 0.6.0
  1266. */