aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJiri Vanek <[email protected]>2012-09-05 15:46:56 +0200
committerJiri Vanek <[email protected]>2012-09-05 15:46:56 +0200
commitd770d3cb8aa41cbe3a860485bcb2c39a4f2cac40 (patch)
treee25b5a7a14a953a2fdbf9bc065a5fbf189432c49
parent52b4eb32aaf143c8091d9a7d39e17a1453b82ca6 (diff)
Added multiple-applets tests
-rw-r--r--ChangeLog28
-rw-r--r--tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java110
-rw-r--r--tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java62
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html44
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html44
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html44
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html44
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html44
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html45
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html44
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html45
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html48
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html48
-rw-r--r--tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html44
-rw-r--r--tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java109
-rw-r--r--tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java227
-rw-r--r--tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java109
-rw-r--r--tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java30
18 files changed, 1166 insertions, 3 deletions
diff --git a/ChangeLog b/ChangeLog
index 541301a..8a4c2a9 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,31 @@
+2012-09-05 Jiri Vanek <[email protected]>
+
+ * tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java:
+ Signed applet painting to canvas and periodically printing out counted messages
+ * tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2:
+ Second simple signed applet for testing two different simple ones parallel
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html:
+ * tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html:
+ Various combinations of plain, signed, crashing, exception throwing and
+ exiting applets on single web-page
+ * tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java:
+ Simple applet painting to canvas and periodically printing out counted messages
+ * tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java:
+ testcases launching above html files.
+ * tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java:
+ Second simple applet painting to canvas and periodically printing out counted messages
+ * tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java: Enhanced
+ exception throwing reproducer.
+
2012-09-04 Jiri Vanek <[email protected]>
Danesh Dadachanji <[email protected]>
diff --git a/tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java b/tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java
new file mode 100644
index 0000000..0aded87
--- /dev/null
+++ b/tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java
@@ -0,0 +1,110 @@
+
+import java.applet.Applet;
+import java.awt.BorderLayout;
+import javax.swing.JLabel;
+import javax.swing.SwingUtilities;
+
+/* CountingAppletSigned.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+public class CountingAppletSigned extends Applet {
+
+ public static void main(String[] args) throws InterruptedException {
+ Integer counter = null;
+ if (args.length > 0) {
+ counter = new Integer(args[0]);
+ ;
+ }
+ int i = 0;
+ while (true) {
+ System.out.println("counting... " + i);
+ if (counter != null && i == counter.intValue()) {
+ System.exit(-i);
+ }
+ i++;
+ Thread.sleep(1000);
+ }
+ }
+
+ @Override
+ public void init() {
+ System.out.println("applet was initialised");
+ final CountingAppletSigned self = this;
+ SwingUtilities.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ self.setLayout(new BorderLayout());
+ self.add(new JLabel("S"));
+ self.validateTree();
+ self.repaint();
+ }
+ });
+ }
+
+ @Override
+ public void start() {
+ System.out.println("applet was started");
+ String s = getParameter("kill");
+ final String[] params;
+ if (s != null) {
+ params = new String[]{s};
+ } else {
+ params = new String[0];
+ }
+ new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ try {
+ main(params);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }).start();
+ }
+
+ @Override
+ public void stop() {
+ System.out.println("applet was stopped");
+ }
+
+ @Override
+ public void destroy() {
+ System.out.println("applet will be destroyed");
+ }
+}
diff --git a/tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java b/tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java
new file mode 100644
index 0000000..d6958f0
--- /dev/null
+++ b/tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java
@@ -0,0 +1,62 @@
+/* AppletTestSigned2.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+import java.applet.Applet;
+
+public class AppletTestSigned2 extends Applet {
+
+
+ @Override
+ public void init() {
+ System.out.println("AppletTestSigned2 was initialised");
+ }
+
+ @Override
+ public void start() {
+ System.out.println("AppletTestSigned2 was started");
+ }
+
+ @Override
+ public void stop() {
+ System.out.println("AppletTestSigned2 was stopped");
+ }
+
+ @Override
+ public void destroy() {
+ System.out.println("AppletTestSigned2 will be destroyed");
+ }
+}
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html
new file mode 100644
index 0000000..33b92e7
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html
@@ -0,0 +1,44 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="orange">
+<p><applet code="SimpleTest2.class" archive="NOT_EXISTING_JAR.jar" codebase="." width="50" height="100">
+</applet></p>
+<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="100" height="50">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html
new file mode 100644
index 0000000..b361608
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html
@@ -0,0 +1,44 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="blue">
+<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100">
+</applet></p>
+<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="100" height="50">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html
new file mode 100644
index 0000000..23e06f6
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html
@@ -0,0 +1,44 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="blue">
+<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100">
+</applet></p>
+<p><applet code="CountingApplet2.class" archive="CountingApplet2.jar" codebase="." width="100" height="50">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html
new file mode 100644
index 0000000..80dda2f
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html
@@ -0,0 +1,44 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="blue">
+<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100">
+</applet></p>
+<p><applet code="NotExising.class" archive="simpletest2.jar" codebase="." width="100" height="50">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html
new file mode 100644
index 0000000..d708901
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html
@@ -0,0 +1,44 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="blue">
+<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100">
+</applet></p>
+<p><applet code="SimpleTest2.class" archive="simpletest2.jar" codebase="." width="100" height="50">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html
new file mode 100644
index 0000000..88a8214
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html
@@ -0,0 +1,45 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="blue">
+<p><applet code="CountingApplet2.class" archive="CountingApplet2.jar" codebase="." width="50" height="100">
+</applet></p>
+<p><applet code="CountingAppletSigned.class" archive="CountingAppletSigned.jar" codebase="." width="100" height="50">
+ <param name="kill" value="5">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html
new file mode 100644
index 0000000..5b0518f
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html
@@ -0,0 +1,44 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="orange">
+<p><applet code="SimpleTest2.class" archive="simpletest2.jar" codebase="." width="50" height="100">
+</applet></p>
+<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="100" height="50">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html
new file mode 100644
index 0000000..f46662d
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html
@@ -0,0 +1,45 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="blue">
+<p><applet code="CountingApplet1.class" archive="CountingApplet1.jar" codebase="." width="50" height="100">
+ <param name="kill" value="5">
+</applet></p>
+<p><applet code="CountingApplet2.class" archive="CountingApplet2.jar" codebase="." width="100" height="50">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html
new file mode 100644
index 0000000..c007be2
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html
@@ -0,0 +1,48 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+-->
+<html><head></head><body bgcolor="orange">
+ <p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="50" height="100">
+ <param name="key1" value="value1">
+ <param name="key2" value="#value2">
+ </applet></p>
+ <p><applet code="AppletTest.class" archive="AppletTest.jar" codebase="." width="100" height="50">
+ <param name="key1" value="value1">
+ <param name="key2" value="#value2">
+ </applet></p>
+ </body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html
new file mode 100644
index 0000000..9409d94
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html
@@ -0,0 +1,48 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="red">
+<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="50" height="100">
+ <param name="key1" value="value1">
+ <param name="key2" value="#value2">
+</applet></p>
+<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="50" height="100">
+ <param name="key1" value="value1">
+ <param name="key2" value="#value2">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html
new file mode 100644
index 0000000..5c114f1
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html
@@ -0,0 +1,44 @@
+<!--
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or modify
+it under the terms of the GNU General Public License as published by
+the Free Software Foundation; either version 2, or (at your option)
+any later version.
+
+IcedTea is distributed in the hope that it will be useful, but
+WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to the
+Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+
+ -->
+<html><head></head><body bgcolor="red">
+<p><applet code="AppletTestSigned2.class" archive="AppletTestSigned2.jar" codebase="." width="50" height="100">
+</applet></p>
+<p><applet code="AppletTestSigned.class" archive="AppletTestSigned.jar" codebase="." width="100" height="50">
+</applet></p>
+</body>
+</html>
diff --git a/tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java b/tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java
new file mode 100644
index 0000000..33c2229
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java
@@ -0,0 +1,109 @@
+
+import java.applet.Applet;
+import java.awt.BorderLayout;
+import javax.swing.JLabel;
+import javax.swing.SwingUtilities;
+
+/* CountingApplet1.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+public class CountingApplet1 extends Applet {
+
+ public static void main(String[] args) throws InterruptedException {
+ Integer counter = null;
+ if (args.length > 0) {
+ counter = new Integer(args[0]);
+ }
+ int i = 0;
+ while (true) {
+ System.out.println("counting... " + i);
+ if (counter != null && i == counter.intValue()) {
+ System.exit(-i);
+ }
+ i++;
+ Thread.sleep(1000);
+ }
+ }
+
+ @Override
+ public void init() {
+ System.out.println("applet was initialised");
+ final CountingApplet1 self = this;
+ SwingUtilities.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ self.setLayout(new BorderLayout());
+ self.add(new JLabel("C1"));
+ self.validateTree();
+ self.repaint();
+ }
+ });
+ }
+
+ @Override
+ public void start() {
+ System.out.println("applet was started");
+ String s = getParameter("kill");
+ final String[] params;
+ if (s != null) {
+ params = new String[]{s};
+ } else {
+ params = new String[0];
+ }
+ new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ try {
+ main(params);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }).start();
+ }
+
+ @Override
+ public void stop() {
+ System.out.println("applet was stopped");
+ }
+
+ @Override
+ public void destroy() {
+ System.out.println("applet will be destroyed");
+ }
+}
diff --git a/tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java b/tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java
new file mode 100644
index 0000000..2087e05
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java
@@ -0,0 +1,227 @@
+/* ParallelAppletsTest.java
+Copyright (C) 2011 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+
+import net.sourceforge.jnlp.ProcessResult;
+import net.sourceforge.jnlp.browsertesting.BrowserTest;
+import net.sourceforge.jnlp.browsertesting.Browsers;
+import net.sourceforge.jnlp.annotations.NeedsDisplay;
+import net.sourceforge.jnlp.annotations.TestInBrowsers;
+import org.junit.Assert;
+
+import org.junit.Test;
+
+public class ParallelAppletsTest extends BrowserTest {
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1Ex2s() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1E_x_2s.html");
+ checkSimpleSignedStarted(pr);
+ checkNotInitialised(pr);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1x2E() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_2E.html");
+ checkExactCounts(1, 10, pr);
+ checkNotInitialised(pr);
+
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1x2e() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_2e.html");
+ checkExactCounts(1, 10, pr);
+ checkException(pr);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1ex2s() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1e_x_2s.html");
+ checkSimpleSignedStarted(pr);
+ checkException(pr);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1sx2() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1s_x_2.html");
+ checkAppletStarted(pr);
+ checkSimpleSignedStarted(pr);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1sx2s() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1s_x_2s.html");
+ int found=countCounts(SimpleSignedStarted, pr.stdout);
+ assertExactCount(SimpleSignedStarted, 2, found);
+
+
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1sx2ssk() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1s_x_2ss.html");
+ checkSimpleSigned2Started(pr);
+ checkSimpleSignedStarted(pr);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1x2sk() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_2sk.html");
+ checkExitNotAllowed(pr);
+ checkAtLeastCounts(1, 10, pr);
+ checkExactCounts(2, 5, pr);
+
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1kx2() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1k_x_2.html");
+ checkExitNotAllowed(pr);
+ checkAtLeastCounts(1, 10, pr);
+ checkExactCounts(2, 5, pr);
+
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1x2() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_2.html");
+ checkExactCounts(2, 10, pr);
+ }
+
+ @Test
+ @TestInBrowsers(testIn = {Browsers.one})
+ @NeedsDisplay
+ public void testParallelAppletsTest1x1() throws Exception {
+ ProcessResult pr = server.executeBrowser("ParallelAppletsTest_1_x_1.html");
+ checkExactCounts(2, 10, pr);
+ }
+ private static final String ACE = "java.security.AccessControlException";
+ private static final String Sexit = "System.exit()";
+ private static final String LE1 = "net.sourceforge.jnlp.LaunchException";
+ private static final String LE2 = "Fatal: Initialization Error";
+ private static final String Cinit = "Could not initialize applet";
+ private static final String CountStub = "counting... ";
+ private static final String SimpleSignedStarted = "AppletTestSigned was started";
+ private static final String SimpleSigned2Started = "AppletTestSigned2 was started";
+ private static final String AppletStarted = "applet was started";
+ private static final String AppletThrowedException = "java.lang.RuntimeException: Correct exception";
+
+
+
+
+ private void checkExitNotAllowed(ProcessResult pr) {
+ Assert.assertTrue("Applets cant call " + Sexit, pr.stderr.matches("(?s).*" + ACE + ".*" + Sexit + ".*"));
+ }
+
+ private void checkNotInitialised(ProcessResult pr) {
+ Assert.assertTrue("Applets should not be initialised ", pr.stderr.matches("(?s).*" + LE1 + ".*" + LE2 + ".*" + Cinit + ".*"));
+ }
+
+ private void checkSimpleSignedStarted(ProcessResult pr) {
+ Assert.assertTrue("Applet's start should be confirmed by " + SimpleSignedStarted, pr.stdout.contains(SimpleSignedStarted));
+ }
+ private void checkSimpleSigned2Started(ProcessResult pr) {
+ Assert.assertTrue("Applet's start should be confirmed by " + SimpleSigned2Started, pr.stdout.contains(SimpleSigned2Started));
+ }
+ private void checkAppletStarted(ProcessResult pr) {
+ Assert.assertTrue("Applet's start should be confirmed by " + AppletStarted, pr.stdout.contains(AppletStarted));
+ }
+ private void checkException(ProcessResult pr) {
+ Assert.assertTrue("Applet's exception should be confirmed by " + AppletThrowedException, pr.stderr.contains(AppletThrowedException));
+ }
+
+ private void checkExactCounts(int howManyTimes, int countIdTill, ProcessResult pr) {
+ for (int i = 0; i <= countIdTill; i++) {
+ String countId = CountStub + i+"\n";
+ int found = countCounts(countId, pr.stdout);
+ assertExactCount(countId, howManyTimes, found);
+ }
+
+ }
+
+ private void assertExactCount(String what, int howManyTimes, int found) {
+ Assert.assertEquals(what + " was expected exactly " + howManyTimes + " but was found " + found, howManyTimes, found);
+ }
+
+ private void checkAtLeastCounts(int howManyTimes, int countIdTill, ProcessResult pr) {
+ for (int i = 0; i <= countIdTill; i++) {
+ String countId = CountStub + i;
+ int found = countCounts(countId, pr.stdout);
+ Assert.assertTrue(countId + " was expected et least " + howManyTimes + " but was found " + found, found >= howManyTimes);
+ }
+
+ }
+
+ private int countCounts(String what, String where) {
+ int lastIndex = 0;
+ int count = 0;
+
+ while (lastIndex != -1) {
+
+ lastIndex = where.indexOf(what, lastIndex);
+
+ if (lastIndex != -1) {
+ count++;
+ lastIndex += what.length();
+ }
+ }
+ return count;
+
+ }
+
+
+}
diff --git a/tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java b/tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java
new file mode 100644
index 0000000..bb9ebf2
--- /dev/null
+++ b/tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java
@@ -0,0 +1,109 @@
+
+import java.applet.Applet;
+import java.awt.BorderLayout;
+import javax.swing.JLabel;
+import javax.swing.SwingUtilities;
+
+/* CountingApplet1.java
+Copyright (C) 2012 Red Hat, Inc.
+
+This file is part of IcedTea.
+
+IcedTea is free software; you can redistribute it and/or
+modify it under the terms of the GNU General Public License as published by
+the Free Software Foundation, version 2.
+
+IcedTea is distributed in the hope that it will be useful,
+but WITHOUT ANY WARRANTY; without even the implied warranty of
+MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+General Public License for more details.
+
+You should have received a copy of the GNU General Public License
+along with IcedTea; see the file COPYING. If not, write to
+the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+02110-1301 USA.
+
+Linking this library statically or dynamically with other modules is
+making a combined work based on this library. Thus, the terms and
+conditions of the GNU General Public License cover the whole
+combination.
+
+As a special exception, the copyright holders of this library give you
+permission to link this library with independent modules to produce an
+executable, regardless of the license terms of these independent
+modules, and to copy and distribute the resulting executable under
+terms of your choice, provided that you also meet, for each linked
+independent module, the terms and conditions of the license of that
+module. An independent module is a module which is not derived from
+or based on this library. If you modify this library, you may extend
+this exception to your version of the library, but you are not
+obligated to do so. If you do not wish to do so, delete this
+exception statement from your version.
+ */
+public class CountingApplet2 extends Applet {
+
+ public static void main(String[] args) throws InterruptedException {
+ Integer counter = null;
+ if (args.length > 0) {
+ counter = new Integer(args[0]);
+ }
+ int i = 0;
+ while (true) {
+ System.out.println("counting... " + i);
+ if (counter != null && i == counter.intValue()) {
+ System.exit(-i);
+ }
+ i++;
+ Thread.sleep(1000);
+ }
+ }
+
+ @Override
+ public void init() {
+ System.out.println("applet was initialised");
+ final CountingApplet2 self = this;
+ SwingUtilities.invokeLater(new Runnable() {
+
+ @Override
+ public void run() {
+ self.setLayout(new BorderLayout());
+ self.add(new JLabel("C2"));
+ self.validateTree();
+ self.repaint();
+ }
+ });
+ }
+
+ @Override
+ public void start() {
+ System.out.println("applet was started");
+ String s = getParameter("kill");
+ final String[] params;
+ if (s != null) {
+ params = new String[]{s};
+ } else {
+ params = new String[0];
+ }
+ new Thread(new Runnable() {
+
+ @Override
+ public void run() {
+ try {
+ main(params);
+ } catch (Exception ex) {
+ ex.printStackTrace();
+ }
+ }
+ }).start();
+ }
+
+ @Override
+ public void stop() {
+ System.out.println("applet was stopped");
+ }
+
+ @Override
+ public void destroy() {
+ System.out.println("applet will be destroyed");
+ }
+}
diff --git a/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java b/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java
index 9160c62..f15278f 100644
--- a/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java
+++ b/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java
@@ -1,3 +1,6 @@
+
+import java.applet.Applet;
+
/* SimpleTest2.java
Copyright (C) 2011 Red Hat, Inc.
@@ -35,10 +38,31 @@ obligated to do so. If you do not wish to do so, delete this
exception statement from your version.
*/
-public class SimpleTest2{
+public class SimpleTest2 extends Applet{
+
+ public static void main(String[] args) {
+ throw new RuntimeException("Correct exception");
+ }
+
+ @Override
+ public void init() {
+ System.out.println("applet was initialised");
+ }
- public static void main(String[] args){
-throw new RuntimeException("Correct exception");
+ @Override
+ public void start() {
+ System.out.println("applet was started");
+ main(null);
+ }
+ @Override
+ public void stop() {
+ System.out.println("applet was stopped");
}
+
+ @Override
+ public void destroy() {
+ System.out.println("applet will be destroyed");
+ }
+
}