changeset 516:b61292f73b60

Added multiple-applets tests
author Jiri Vanek <jvanek@redhat.com>
date Wed, 05 Sep 2012 15:46:56 +0200
parents 03803e23d0e6
children 4d8eccca14ed
files ChangeLog tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java 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 tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java
diffstat 18 files changed, 1166 insertions(+), 3 deletions(-) [+]
line wrap: on
line diff
--- a/ChangeLog	Wed Sep 05 12:30:30 2012 +0200
+++ b/ChangeLog	Wed Sep 05 15:46:56 2012 +0200
@@ -1,3 +1,31 @@
+2012-09-05  Jiri Vanek  <jvanek@redhat.com>
+
+	* 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  <Jvanek@redhat.com>
             Danesh Dadachanji  <ddadacha@redhat.com>
 
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/signed/CountingAppletSigned/srcs/CountingAppletSigned.java	Wed Sep 05 15:46:56 2012 +0200
@@ -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");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/signed2/AppletTestSigned2/srcs/AppletTestSigned2.java	Wed Sep 05 15:46:56 2012 +0200
@@ -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");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1E_x_2s.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_1.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2E.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2e.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1_x_2sk.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1e_x_2s.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1k_x_2.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2s.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/resources/ParallelAppletsTest_1s_x_2ss.html	Wed Sep 05 15:46:56 2012 +0200
@@ -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>
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/srcs/CountingApplet1.java	Wed Sep 05 15:46:56 2012 +0200
@@ -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");
+    }
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet1/testcases/ParallelAppletsTest.java	Wed Sep 05 15:46:56 2012 +0200
@@ -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;
+
+    }
+
+
+}
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/tests/reproducers/simple/CountingApplet2/srcs/CountingApplet2.java	Wed Sep 05 15:46:56 2012 +0200
@@ -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");
+    }
+}
--- a/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java	Wed Sep 05 12:30:30 2012 +0200
+++ b/tests/reproducers/simple/simpletest2/srcs/SimpleTest2.java	Wed Sep 05 15:46:56 2012 +0200
@@ -1,3 +1,6 @@
+
+import java.applet.Applet;
+
 /* SimpleTest2.java
 Copyright (C) 2011 Red Hat, Inc.
 
@@ -35,10 +38,31 @@
 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");
+    }
+
 }