-
Bug
-
Resolution: Fixed
-
P3
-
7u25
-
windows_7
FULL PRODUCT VERSION :
from JRE:
Java Plug-in 10.25.2.17
Using JRE version 1.7.0_25-b17 Java HotSpot(TM) 64-Bit Server VM
ADDITIONAL OS VERSION INFORMATION :
Windows 7
A DESCRIPTION OF THE PROBLEM :
When loading and refreshing a page with a number of applets, multiple Java console windows open. After some time of refreshing the pages, pausing starts to happen.
I have a simple example with 10 applets that demonstrates the issue. I will provide it here.
REGRESSION. Last worked in version 6u45
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create an HTML page with an 10 or more applets. Open the page in a browser and refresh the page often. Make sure the Java console window is open. After refreshing many times, you start to see multiple console windows opening, as well as pausing while refreshing.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I expect to see one console window open, displaying the teardown and buildup of the applets.
ACTUAL -
I see multiple console windows opening, and each window continuing to report results.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
I see these error messages in the console, though I have no idea if they are really related or not.
ui: missing resource: java.util.MissingResourceException: Can't find resource for bundle com.sun.deploy.resources.Deployment, key PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 483744 us, pluginInit dt 9271380 us, TotalTime: 9755124 us
basic: WARNING - specified JRE version, null is invalid platform version
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Applet class
-------------------
package applet;
import javax.swing.JApplet;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class TestApplet extends JApplet {
JTextArea area = null;
@Override
public void destroy() {
// TODO Auto-generated method stub
super.destroy();
}
@Override
public void init() {
// TODO Auto-generated method stub
super.init();
}
@Override
public void start() {
// TODO Auto-generated method stub
super.start();
setSize(640, 480);
if (area == null)
area = new JTextArea();
for (int i = 0, n = 100; i < n; i++) {
area.setText(area.getText() + " The brown cow the brown cow the brown cow.
" );
}
this.getContentPane().add(new JScrollPane(area));
}
@Override
public void stop() {
// TODO Auto-generated method stub
super.stop();
}
public String getText() {
return area.getText();
}
public void setText(String text) {
area.setText(text);
}
}
HTML Page
------------------
<HTML>
<HEAD>
<TITLE>Job Tracking</TITLE>
<script>
var AppletCount = 15;
function ReduceCounter(){
if (AppletCount == 15)
{
document.getElementById( " appCountId " ).value = AppletCount;
}
AppletCount = AppletCount -1;
document.getElementById( " appCountId " ).value = document.getElementById( " appCountId " ).value + " , " +AppletCount;
if (AppletCount == 0) {
AppStat();
displayMenu();
}
}
function AppStat(){
document.getElementById( " txtId " ).innerHTML =
" <b>1) document.CommandJobOn=</b> " +document.CommandJobOn + " <br> " +
" <b>2) document.CommandJobOff=</b> " +document.CommandJobOff + " <br> " +
" <b>3) document.CommandConfSave=</b> " +document.CommandConfSave + " <br> " +
" <b>4) document.CommandDMAS=</b> " +document.CommandDMAS + " <br> " +
" <b>5) document.CommandCarelink=</b> " +document.CommandCarelink + " <br> " +
" <b>6) document.GetPOD=</b> " +document.GetPOD + " <br> " +
" <b>7) document.SignatureVerification=</b> " +document.SignatureVerification + " <br> " +
" <b>8) document.GetNextActionApplet=</b> " +document.GetNextActionApplet + " <br> " +
" <b>9) document.GetFilePath=</b> " +document.GetFilePath + " <br> " +
" <b>10) document.Comment=</b> " +document.Comment + " <br> " +
" <b>11) document.TxnTextType=</b> " +document.TxnTextType + " <br> " +
" <b>12) document.TrainerVerification=</b> " +document.TrainerVerification + " <br> " +
" <b>13)document.StartTimerTime=</b> " +document.StartTimerTime + " <br> " +
" <b>14)document.CheckDataCount=</b> " +document.CheckDataCount + " <br> " +
" <b>15)document.ProdOrderList=</b> " +document.ProdOrderList;
}
function setDropDownList(){
ReduceCounter();
}
function windowRefresh() {
window.location.reload();
}
function runAutomatedTest() {
var runAutoTest = true;
for (var i =0, n = 1; i < n; i++) {
AppStat();
windowRefresh();
}
}
</script>
</HEAD>
<script src= " ../scripts/topMenu.js " type= " text/javascript " ></script>
<BODY class= " normal " topmargin= " 0 " ><!--setMessage('{Message}','{Conf}','{Suitability}','{Conftext}') " onkeydown = " logoutPage() " onClick = " logoutPage() " onDoubleClick = " logoutPage() " >-->
<div id= " topMenu " ></div>
<!--iCommand for Triggering on clicking " Job On " -->
<APPLET NAME= " CommandJobOn " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT>
</APPLET>
<!--iCommand for Triggering on clicking " Job Off " -->
<APPLET NAME= " CommandJobOff " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--iCommand for Triggering on clicking " Job Off " -->
<APPLET NAME= " CommandConfSave " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--Applet fo firing DMAS Verification command as iCommand-->
<APPLET NAME= " CommandDMAS " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT >
</APPLET>
<!--Applet for firing Carelink Verification command Type as iCommand-->
<APPLET NAME= " CommandCarelink " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT >
</APPLET>
<!--Applet to receive Reason for Variance as iCommand-->
<APPLET NAME= " GetPOD " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT >
</APPLET>
<!-- Applet for signature verification - CRD 8316 -->
<APPLET NAME= " SignatureVerification " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!-- Applet to search next Custom Action List - CRD 8316 -->
<APPLET NAME= " GetNextActionApplet " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--iCommand to get File Path to write and prod order-->
<APPLET NAME= " GetFilePath " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--Applet for Confirmation Text Field-->
<APPLET NAME= " Comment " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT TABINDEX= " -1 " >
</APPLET>
<!--Applet for getting Transaction Type as iCommand-->
<APPLET NAME= " TxnTextType " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT TABINDEX= " -1 " >
</APPLET>
<!-- Applet for trainer verification -->
<APPLET NAME= " TrainerVerification " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT>
</APPLET>
<!-- Applet for Start Timer Time Stamp -->
<APPLET NAME= " StartTimerTime " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--begin add :singhp11 CRD11932-->
<!--Applet for Action Check Data Count as iCommand-->
<APPLET NAME= " CheckDataCount " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 1 " HEIGHT= " 1 " MAYSCRIPT>
</APPLET>
<!--Applet for Action Check Data Count as iCommand-->
<APPLET NAME= " ProdOrderList " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 1 " HEIGHT= " 1 " MAYSCRIPT>
</APPLET>
<!--end add :singhp11 CRD11932-->
<!-- Applet to get opertion List for supervisor - CRD 8316 -->
<input type = " text " value = " " id = " appCountId " style= " width:400 " />
<input type = " button " value = " check applet status " onClick = " AppStat() " />
<input type = " button " value = " start refresh cycle " onClick = " runAutomatedTest() " />
<div id= " txtId " > </div>
</BODY>
</HTML>
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
no workaround found.
from JRE:
Java Plug-in 10.25.2.17
Using JRE version 1.7.0_25-b17 Java HotSpot(TM) 64-Bit Server VM
ADDITIONAL OS VERSION INFORMATION :
Windows 7
A DESCRIPTION OF THE PROBLEM :
When loading and refreshing a page with a number of applets, multiple Java console windows open. After some time of refreshing the pages, pausing starts to happen.
I have a simple example with 10 applets that demonstrates the issue. I will provide it here.
REGRESSION. Last worked in version 6u45
STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create an HTML page with an 10 or more applets. Open the page in a browser and refresh the page often. Make sure the Java console window is open. After refreshing many times, you start to see multiple console windows opening, as well as pausing while refreshing.
EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I expect to see one console window open, displaying the teardown and buildup of the applets.
ACTUAL -
I see multiple console windows opening, and each window continuing to report results.
ERROR MESSAGES/STACK TRACES THAT OCCUR :
I see these error messages in the console, though I have no idea if they are really related or not.
ui: missing resource: java.util.MissingResourceException: Can't find resource for bundle com.sun.deploy.resources.Deployment, key PERF: AppletExecutionRunnable - applet.init() BEGIN ; jvmLaunch dt 483744 us, pluginInit dt 9271380 us, TotalTime: 9755124 us
basic: WARNING - specified JRE version, null is invalid platform version
REPRODUCIBILITY :
This bug can be reproduced always.
---------- BEGIN SOURCE ----------
Applet class
-------------------
package applet;
import javax.swing.JApplet;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
public class TestApplet extends JApplet {
JTextArea area = null;
@Override
public void destroy() {
// TODO Auto-generated method stub
super.destroy();
}
@Override
public void init() {
// TODO Auto-generated method stub
super.init();
}
@Override
public void start() {
// TODO Auto-generated method stub
super.start();
setSize(640, 480);
if (area == null)
area = new JTextArea();
for (int i = 0, n = 100; i < n; i++) {
area.setText(area.getText() + " The brown cow the brown cow the brown cow.
" );
}
this.getContentPane().add(new JScrollPane(area));
}
@Override
public void stop() {
// TODO Auto-generated method stub
super.stop();
}
public String getText() {
return area.getText();
}
public void setText(String text) {
area.setText(text);
}
}
HTML Page
------------------
<HTML>
<HEAD>
<TITLE>Job Tracking</TITLE>
<script>
var AppletCount = 15;
function ReduceCounter(){
if (AppletCount == 15)
{
document.getElementById( " appCountId " ).value = AppletCount;
}
AppletCount = AppletCount -1;
document.getElementById( " appCountId " ).value = document.getElementById( " appCountId " ).value + " , " +AppletCount;
if (AppletCount == 0) {
AppStat();
displayMenu();
}
}
function AppStat(){
document.getElementById( " txtId " ).innerHTML =
" <b>1) document.CommandJobOn=</b> " +document.CommandJobOn + " <br> " +
" <b>2) document.CommandJobOff=</b> " +document.CommandJobOff + " <br> " +
" <b>3) document.CommandConfSave=</b> " +document.CommandConfSave + " <br> " +
" <b>4) document.CommandDMAS=</b> " +document.CommandDMAS + " <br> " +
" <b>5) document.CommandCarelink=</b> " +document.CommandCarelink + " <br> " +
" <b>6) document.GetPOD=</b> " +document.GetPOD + " <br> " +
" <b>7) document.SignatureVerification=</b> " +document.SignatureVerification + " <br> " +
" <b>8) document.GetNextActionApplet=</b> " +document.GetNextActionApplet + " <br> " +
" <b>9) document.GetFilePath=</b> " +document.GetFilePath + " <br> " +
" <b>10) document.Comment=</b> " +document.Comment + " <br> " +
" <b>11) document.TxnTextType=</b> " +document.TxnTextType + " <br> " +
" <b>12) document.TrainerVerification=</b> " +document.TrainerVerification + " <br> " +
" <b>13)document.StartTimerTime=</b> " +document.StartTimerTime + " <br> " +
" <b>14)document.CheckDataCount=</b> " +document.CheckDataCount + " <br> " +
" <b>15)document.ProdOrderList=</b> " +document.ProdOrderList;
}
function setDropDownList(){
ReduceCounter();
}
function windowRefresh() {
window.location.reload();
}
function runAutomatedTest() {
var runAutoTest = true;
for (var i =0, n = 1; i < n; i++) {
AppStat();
windowRefresh();
}
}
</script>
</HEAD>
<script src= " ../scripts/topMenu.js " type= " text/javascript " ></script>
<BODY class= " normal " topmargin= " 0 " ><!--setMessage('{Message}','{Conf}','{Suitability}','{Conftext}') " onkeydown = " logoutPage() " onClick = " logoutPage() " onDoubleClick = " logoutPage() " >-->
<div id= " topMenu " ></div>
<!--iCommand for Triggering on clicking " Job On " -->
<APPLET NAME= " CommandJobOn " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT>
</APPLET>
<!--iCommand for Triggering on clicking " Job Off " -->
<APPLET NAME= " CommandJobOff " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--iCommand for Triggering on clicking " Job Off " -->
<APPLET NAME= " CommandConfSave " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--Applet fo firing DMAS Verification command as iCommand-->
<APPLET NAME= " CommandDMAS " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT >
</APPLET>
<!--Applet for firing Carelink Verification command Type as iCommand-->
<APPLET NAME= " CommandCarelink " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT >
</APPLET>
<!--Applet to receive Reason for Variance as iCommand-->
<APPLET NAME= " GetPOD " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT >
</APPLET>
<!-- Applet for signature verification - CRD 8316 -->
<APPLET NAME= " SignatureVerification " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!-- Applet to search next Custom Action List - CRD 8316 -->
<APPLET NAME= " GetNextActionApplet " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--iCommand to get File Path to write and prod order-->
<APPLET NAME= " GetFilePath " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--Applet for Confirmation Text Field-->
<APPLET NAME= " Comment " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT TABINDEX= " -1 " >
</APPLET>
<!--Applet for getting Transaction Type as iCommand-->
<APPLET NAME= " TxnTextType " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 0 " HEIGHT= " 0 " MAYSCRIPT TABINDEX= " -1 " >
</APPLET>
<!-- Applet for trainer verification -->
<APPLET NAME= " TrainerVerification " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT>
</APPLET>
<!-- Applet for Start Timer Time Stamp -->
<APPLET NAME= " StartTimerTime " WIDTH= " 1 " HEIGHT= " 1 " CODE= " applet.TestApplet " CODEBASE= " /XMII/Classes " ARCHIVE= " appletTest.zip " MAYSCRIPT >
</APPLET>
<!--begin add :singhp11 CRD11932-->
<!--Applet for Action Check Data Count as iCommand-->
<APPLET NAME= " CheckDataCount " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 1 " HEIGHT= " 1 " MAYSCRIPT>
</APPLET>
<!--Applet for Action Check Data Count as iCommand-->
<APPLET NAME= " ProdOrderList " CODEBASE= " /XMII/Classes " CODE= " applet.TestApplet " ARCHIVE= " appletTest.zip " WIDTH= " 1 " HEIGHT= " 1 " MAYSCRIPT>
</APPLET>
<!--end add :singhp11 CRD11932-->
<!-- Applet to get opertion List for supervisor - CRD 8316 -->
<input type = " text " value = " " id = " appCountId " style= " width:400 " />
<input type = " button " value = " check applet status " onClick = " AppStat() " />
<input type = " button " value = " start refresh cycle " onClick = " runAutomatedTest() " />
<div id= " txtId " > </div>
</BODY>
</HTML>
---------- END SOURCE ----------
CUSTOMER SUBMITTED WORKAROUND :
no workaround found.
- relates to
-
JDK-8023095 Applet with legacy_lifecycle=true and jdwp properties destroyed on browseaway
- Resolved
-
JDK-7195948 IE 10 + Windows 2012 runs reloaded plugin in 2nd JVM instance
- Closed