Applet ms jvm problem

Hi all,
I'm writing an applet in which I use threads and it's giving me some errors with msjvm I don't understand.
With sun plugins there is no problem and all is ok.
I know that msjvm supports only 1.1.8 and I have to compile with -source 1.4 -target 1.1
I did all my variable volatile, but with ms jvm the process never ends.
My source is this:
//File Prova.java
public class Prova extends Applet implements ActionListener {
public void init()
MakeGUI();
public void actionPerformed(ActionEvent event)
if(event.getSource() == start)
down_result.setText("");
up_result.setText("");
start.setEnabled(false);
cycles = 0;
status = 0;
task = new LongTask(0);
task.start();
checkWork();
task = null;
private void checkWork() {
try {
while ( task.noStopRequested ) {
if(status == 0) {
//set_Stato_Progress();
double b_c = format_double((double)task.current );
double b_t = format_double((double)task.lengthOfTask);
String cur = Double.toString(b_c);
String tot = Double.toString(b_t);
cycles++;
double s_t = (double)task.current * 1000.0 * 8.0;
down_result.setText("prova");
//printThreadName("Down in ");
if(task.done)
stato_progress.setText("First step concluded");
down_result.setText("Fine");
status = 1;
cycles = 0;
else {
//set_Stato_Progress();
double b_c = format_double((double)task.current_up );
double b_t = format_double((double)task.lengthOfTask);
String cur = Double.toString(b_c);
String tot = Double.toString(b_t);
cycles++;
double speed_temp = (double)task.current_up * 1000.0 * 8.0);
double s_t = format_double(speed_temp);
if(task.done_up)
stato_progress.setText("Test concluso");
start.setEnabled(true);
repaint();
task.interrupt();
return;
repaint();
Thread.sleep((long)QUART_SECOND);
catch ( Exception x ) {
stop();
//File LongTask.java
public class LongTask extends Thread {
public volatile boolean noStopRequested;
private final Object pauseLock = new Object();
private boolean paused;
public volatile int lengthOfTask;
public volatile int current = 0;
public volatile boolean done = false;
public boolean canceled = false;
public String statMessage;
public volatile long duration;
public volatile double speed_down;
public volatile long duration_up;
public volatile double speed_up;
public volatile int current_up = 0;
public volatile boolean done_up = false;
private byte [] image_byte;
static int DEFAULT_DOWN_SIZE = 2097152;
private void printThreadName(String prefix) {
String name = Thread.currentThread().getName();
System.out.println(prefix + name);
public LongTask(int tipo_conn) {      
     lengthOfTask = DEFAULT_DOWN_SIZE;
paused = true;
noStopRequested = true;
current = 0;
duration = 0;
speed_down = 0;
duration_up = 0;
speed_up = 0;
current_up = 0;
done = false;
done_up = false;
canceled = false;
statMessage = null;
image_byte = null;
paused = false;
public void stopThread() {
paused = true;
public void run() {
Socket sock = null;
InetSocketAddress isa = null;
InputStream instream = null;
ByteArrayOutputStream tempBuffer;
int numBytesRead = 0;
byte [] buffer;
try {
while (noStopRequested) {
waitWhilePaused();
//My first operation
done = true;
//My second operation
done_up = true;
paused = true;
catch (MalformedURLException e) {
System.out.println("[Errore] " + e.getMessage());
Thread.currentThread().interrupt();
catch(UnknownHostException e) {
System.out.println("[Errore] " + e.getMessage());
Thread.currentThread().interrupt();
catch (IOException e) {
System.out.println("[Errore] " + e.getMessage());
Thread.currentThread().interrupt();
catch(Exception e) {
e.printStackTrace();
speed_down = 0.0;
speed_up = 0.0;
Thread.currentThread().interrupt();
private void setPaused(boolean newPauseState) {
synchronized ( pauseLock ) {
if ( paused != newPauseState ) {
paused = newPauseState;
pauseLock.notifyAll();
private void waitWhilePaused() throws InterruptedException {
synchronized ( pauseLock ) {
while ( paused ) {
pauseLock.wait();
I can't explain me where is my error.
Running my applet on msjvm, it semms that LongTask never ends and never update the volatile variables.
Any hints?
Thanks for the support
Laura

Solved.
The ms jvm support 1.1* and then there is no Double.parseDouble.....
You have to use Double.valueOf(....).doubleValue();
Bye
Laura

Similar Messages

  • Sometimes "target applet or jvm process exited abruptly" liveconnect

    I have a problem with a applet with is embedded in my webpage ans which I am using to setup a socket connection to a server. I am communicating from the webpage to the applet with live connect to send data, and from the applet to the page with live connect for the received data.
    This works fine most of the time, but occasionaly at the customers site i get the error:
    "target applet or jvm process exited abruptly"
    which seems to indicate the JVM has crashed. I searched the client for hs_err* files but did not find them. The client is running the latest JRE 1.7_05
    Does anyone have any ideas how to find the root cause of this problem ?
    Kind regards,
    Marco

    Enable full tracing and see what is happening with applet around the time you get this message. See also other troubleshooting hints in
    http://docs.oracle.com/javase/7/docs/webnotes/tsg/TSG-Desktop/html/plugin.html
    May be browser "reloads" page and reinstantiate the applet or it could be bug in applet or Java platform.

  • Multiple instances of the same applet loaded causes problem

    I have a java applet that has several classes in the project. The applet has a JTable a JButton and a JLabel control. The applet is displayed within an HTML page. The problem is that if a user opens the same html page more than once with the applet in it, only the last applet loaded receives the screen updates.
    For example in one senario. I have an error message that displays in the Label control once they click on the button.
    The user opens the html page and the applet is loaded (window 1). The user then opens the same html page again (window 2) with window 1 still open. If the user clicks on the Button in window 1, the error message is displayed in the window 2 applet.
    Originally I had some static variables. Thinking it was being used globally by the JVM so I removed all of them and it still happens. I have tried using both the Applet and Object tag. But it still happens.
    Has anyone experienced this before? Any suggestions on how to make the applet update the instance that recieved the events and not just the last one that was loaded?

    You need to look at applet classloader issues. If applets have the same archive list and come from the same codebase, they have the same classloader. A class is namespaced by it's class + classloader. Any statics in a class with a classloader will be shared. If you instead make it such that your applets have unique classloaders (which you can't change for unsigned applets by yourself) by changing the codebase, that would be one solution.
    For other solutions, I recommend searching the forum. This issue comes up a lot.

  • Quake level in an applet compatible JVM 1.1

    Here is a Quake 3d level rendered in an applet with 3DzzD API
    NB: the model has been converted from quake to 3ds, this result in visual imperfection (smooth groups are wrong) more visible on soft engine as it use phong shader, also perf maybe not as good as they should be due to the fact that BSP model produce a lot of unecessary face for 3DzzD engine and conversion produce curved surface with a fixed quality.
    Note that for now there is only windows native libraries on the server and so this demo will not work in hardware mode for other platform than window, this will be updated soon
    Once started it will be rendered using the 3DzzD software renderer, to switch to Hardware mode click the applet and press H
    http://dzzd.net/demo/QUAKE/
    as the software engine may be slow, here is the same applet with a smaller size
    http://dzzd.net/demo/QUAKE/indexSmall.htm
    this feature is available in the last 3DzzD API wich will be published as well as this demo source code in the comming days

    Hi there.
    I've found this page by googling.
    I am not a Java developer, but am using a third party java applet on my web page for mapping.
    Funnily enough, I've been trying to hunt down a memory leak thats occuring in IE (not any other browser).
    It only occurs when the applet is physically visible on the page, and the user is using the Sun JVM (1.5.0_06). The GDI object count increases every time I mouseover a link in a tree.
    This does not occur with the MS JVM.
    Unfortunately I do not have access to the applet source code, but I'm wondering if its related to your problem.
    Have you had any success on this?
    Thanks.

  • Applet memory / JVM & IE Configuration

    Hi,
    I created an applet loading some jpeg images and shapefiles
    Plug-in java is set to 350 Mo (-Xmx350m) which seems to be the max size accepted by IE
    Over-350Mo-jvm-size shuts down IE at launch.
    With 350 mo configured, I miss some jpeg images when applets is loaded.
    How can I manage to increase the JVM without shutting down IE.
    Any ideas ?
    Thanks in advance

    Hello Sanjaya,
    I am facing a very similar problem and my project is in danger - I was wondering if you have found a way to deal with that memory leak?
    Please let me know.
    Thanks.
    Tal

  • Multiple applets, single JVM == out of memory

    Consider the following applet (MS IE 6, JRE 1.4.2_04)
    public class DgAppletTest extends JApplet
    double nums[];
    public void init() {
    nums = new double[10000000];
    public void start() {
    public void stop() {
    public void destroy() {
    This does nothing except allocate a large array. When this is delivered to the browser as part of an html page, a JVM instance is created and so on. The plug in control panel confirms the memory usage. When the user closes the browser window, the applet is "destroyed" but curiously the memory is not gc'ed. The next time the page is delivered the same JVM is used with the current memory situation. The result is that very soon the memory is exhausted.
    Once upon a time, Microsoft launched each browser instance into a separate process. No longer, although there is a registry hack to make it do so. When as a separate process, each browser window instantiates a new JVM. In this scenario, there's no problem. However, hacking the registry is not a solution, nor is telling the end user to modify JVM startup parameters.
    So, what am I not doing? (calling the gc within the applet has no effect on this). What's the trick to get the JVM to actually destroy the destroyed applet?
    Thanks

    http://forum.java.sun.com/thread.jspa?threadID=605153&messageID=3276004
    Quote from another thread:
    Objects are never null. Only references can be null. If you set the only reachable
    reference to the object to null (or to any value other than pointing at that object), then the
    object becomes eligible to be garbage collected. When--or if--it actually gets cleaned up
    is beyond your control, but it's guaranteed to happen if the memory is needed.
    Which is basacally the same as what this tells you:
    http://java.sun.com/developer/technicalArticles/ALT/RefObj/
    under
    Softly Reachable

  • Applet using JVM 1.5.0_06 causes GDI Object Leaks

    Hi,
    Since the release of 1.5.0_06 our applet has developed a GDI Object leak. Basically, our applet draws on a panel when ever an update is available. The previous versions of the JVM seem fine and th e GDI Objects are stable, but this new version eats the GDIs up really quickly, and never releases them.
    The problem occurs when the applet repaints itself. Calling repaint() or paint() from code works ok with no leaks but as soon as the applet is forced to repaint because of a resize, or because another window has moved over it the GDIs go up by multiples of 10.
    Here is some sample code:
    import java.awt.*;
    import java.applet.*;
    import java.util.Date;
    * <p>Copyright: Copyright (c) 2005</p>
    * <p>Company: </p>
    * @author not attributable
    * @version 1.0
    public class GDIApplet extends Applet {
        //Construct the applet
        public GDIApplet() {
        //Initialize the applet
        public void init() {
            try {
                jbInit();
            } catch (Exception e) {
                e.printStackTrace();
        //Component initialization
         private void jbInit() throws Exception {
             this.setLayout(new BorderLayout());
             this.add(new GDIPanel(), BorderLayout.CENTER);
         public class GDIPanel extends Panel implements Runnable{
        public GDIPanel() {
            Thread t = new Thread(this,"SPGPaintTimer");
            t.start();
        public void paint(Graphics g){
            if( g == null){
                return;
            System.out.println("Paint on thread: " + Thread.currentThread().getName());
            Date d = new Date();
            Rectangle bounds = getBounds();
            g.setColor(Color.black);
            g.fillRect(0,0, bounds.width, bounds.height);
            FontMetrics fm = g.getFontMetrics();
            String val = d.toString();
            int width = fm.stringWidth(val);
            int height = fm.getHeight();
            int x = (bounds.width - width) /2;
            int y = (bounds.height/2) - height;
            g.setColor(Color.yellow);
            g.drawString(val,x,y);
        public void run(){
            while(true){
                try {
                    Thread.sleep(1000);
                } catch (InterruptedException ex) {
                repaint();
    }

    Hi there.
    I've found this page by googling.
    I am not a Java developer, but am using a third party java applet on my web page for mapping.
    Funnily enough, I've been trying to hunt down a memory leak thats occuring in IE (not any other browser).
    It only occurs when the applet is physically visible on the page, and the user is using the Sun JVM (1.5.0_06). The GDI object count increases every time I mouseover a link in a tree.
    This does not occur with the MS JVM.
    Unfortunately I do not have access to the applet source code, but I'm wondering if its related to your problem.
    Have you had any success on this?
    Thanks.

  • Java Applet re-creation problem

    Hi skilled,
    At our project we use an Applet that resides in the iFrame. On the main page the iFrame is used to show an Applet.
    There is a table with two cells, there is DIV in every cell with IDs �div1� and �div2� accordingly. The iFrame is in the "div1".
    When we move an iFrame from �div1� to �div2� using the JavaScript code below:
    div2.appendChild(
    document.getElementById('myframe')
    where �myframe� is the iFrame ID, the Applet destroys and new one is being created. This leads to the loss of data that was stored in the applet before.
    We need to avoid such a behavior of the Applet somehow or find a workaround to this problem.
    This problem reproduces on SUN JVM 1.5.0.11 and 1.6.0.x.
    Please share your ideas/suggestions with me � you will help us a lot.

    I can save the data from the old applet when it is going to destroy, however I cannot pass it to the new one.
    Here is the problem:
    - until the <iframe/> is moved, my browser has a right reference to the applet - I can use any public methods of an applet;
    - then, I move an <iframe/> tag to another cell/div, JVM destroys my applet and creates a new one, however the browser have lost the reference (or it holds the reference to the old applet which is destroyed) - so, I cannot call any applet method from JavaScript anymore.
    And one more thing, when applet is being recreated in this way, it is no longer re-draws itselft. Update and Paint methods are no longer called inside an applet even if to call them by hand (repaint function).
    Btw, this is not reproduces on MS JVM :) That's strange problem...
    Any help will be really appreciated.
    Thanks,

  • Question regarding Applet and JVM

    Hi all!
    I'm working on an applet now and it's been working quite fine, just that when I run the same applet on different tab in a single browser window, it'll get some error.
    But if I run the applets in different windows, it'll be fine.
    So I'd like to know how does JVM handle the execution of applet?
    What is the difference between:
    - how JVM handles multiple applet in different-tab-in-single-browser and
    - how JVM handles multiple applet in different browser?
    Any help is greatly appreciated :)
    Thanks in advance ^^

    Sounds like you're using static fields. Not a good idea in applets because...
    What is the difference between:
    - how JVM handles multiple applet in different-tab-in-single-browser and
    - how JVM handles multiple applet in different browser?
    ...that's entirely up to the browser. Actually, your question's slightly misconstrued. What you should really ask is,
    What is the difference between:
    - how the browser spawns JVMs in different-tab-in-single-browser and
    - how the browser spawns JVMs in different browser?
    Either way, it's out of your hands. Which is why you're going to have to be very careful about using statics: if you use them for state information then another applet can trash them; if you use them for inter-applet communication you might not reach one applet from another.

  • I have a basic applet method timing problem with Firefox (and Chrome), not IE nor Opera. Works if JavaScript issues windows.alert() prior, fails otherwise.

    I have an applet method, which is invoked from a JavaScript function, that is triggered by the window.onload event. The problem seems to center in the loading of the applet and its methods.
    If I step through the 3 applet acceptance prompts (I chose to use a down-level Java), the applet method is never invoked, nor is an exception raised. How this happens is beyond my understanding.
    As additional information, the Init(), start(), and "desired" Java methods all use the synchronized keyword. This is an attempt to minimize the exposure to a multi-thread environment.
    If I issue a message from JavaScript (via window.alert()) PRIOR to invoking the method, I can get the desired results in special circumstances:
    1) When the alert is presented, Firefox also prompts, SIMULTANEOUSLY, to block/continue the applet (the first of the 3 applet acceptance prompts). I can accept that these are separate threads.
    2a) If I walk through the 3 applet acceptance prompts FIRST, and then hit the OK button on the alert message SECOND, I get the desired results, my applet method executes, and all is well (other than the fact that I would prefer not to have the alert in place at all).
    2b) If I hit the OK button on the alert message FIRST, and then walk through the 3 applet acceptance prompts SECOND, I get the same results as when the page loads WITHOUT the alert, which is the applet method is never invoked, nor is an exception raised. Weird, huh?
    The above problem only occurs when the browser and the applet's URL are loaded for the first time.
    Subsequent invocations (after the page & applet has been loaded initially) do not have the failing symptoms.
    It is my understanding that IE and Firefox (and Chrome and Opera, for that matter) each use the same implementation of JavaScript provided by Microsoft. Please correct me if this information is inaccurate.
    The failing page and it's applet are proprietary; I cannot provide the Internet URL, nor the Java or JavaScript source, to aid in your analysis.

    I can speak to the source code, but have no access to it.
    The current process/thread that invokes an applet method must check to see that the applet is not currently being loaded by another process/thread. If it is being loaded, the current process/thread should block until the load is complete, THEN attempt to invoke the applet method.
    Please forward my concern to a knowledgable developer. The nature of the problem, once identified, can be addressed in a very straightforward manner.

  • Load a second video into an applet: resize - stretch problem

    Hello!
    I have an applet that loads a movie (call it film_a.mov). The size of the movie is 320 x 240. Since I want to show it bigger, I use a BorderLayout that stretches the video depending on the size given by
    the applet. In my case I set the applet parameter to "<applet code=Simple.class width=640 height=510>". Anyway, this display area is bigger than the actuell video size, so the video will be stretched.
    Everytime a user clicks with the mouse pointer onto the video area the second movie (call it film_b.mov) replace the first movie. The setup for the BorderLayout has not be chance. I close the player before loading the second movie with a function called loadNewMovie(). I even call this.removeAll(), player.close() and player.removeControllerListener(this).
    The problem is that if the second movie is loaded and placed into the vido display area it is not alway stretched to the possible BorderLayout.CENTER area. Sometimes it is stretched sometimes it is not streched. I really do not understand such behavior. It seems to me that I forget to call a update function that tells to stretch alway any video displayed.
    Both movies have the same size. I tried to solve this problem by using setSize, setBounds, etc. on the visualComponent but this does not solve the problem. If you want to try out, here come the code:
    mport java.applet.Applet;
    import java.awt.*;
    import java.lang.String;
    import java.net.URL;
    import java.net.MalformedURLException;
    import java.io.IOException;
    import javax.media.*;
    // import com.sun.media.util.JMFSecurity;
    * This is a Java Applet that demonstrates how to create a simple media player
    * with a media event listener. It will play the media clip right away and
    * continuously loop.
    * <applet code=Simple.class width=640 height=510> <param
    * name=file1 value="auto.mov"> <param name=file2 value="hongkong.mov">
    public class Simple extends Applet implements ControllerListener {
         private static final long serialVersionUID = 1L;
         // media Player
         Player player = null;
         // component in which video is playing
         Component visualComponent = null;
         // controls gain, position, start, stop
         Component controlComponent = null;
         // displays progress during download
         Component progressBar = null;
         boolean firstTime = true;
         long CachingSize = 0L;
         int controlPanelHeight = 0;
         int videoWidth = 0;
         int videoHeight = 0;
         MediaLocator mrl = null;
         String mediaFile1 = null;
         String mediaFile2 = null;
         boolean closed = false;
          * Read the applet file parameter and create the media player.
         public void init() {
              // $ System.out.println("Applet.init() is called");
              setLayout(new BorderLayout());
              setBackground(Color.red);
              if ((mediaFile1 = getParameter("FILE1")) == null)
                   Fatal("Invalid media file parameter");
              if ((mediaFile2 = getParameter("FILE2")) == null)
                   Fatal("Invalid media file parameter");
          * Start media file playback. This function is called the first time that
          * the Applet runs and every time the user re-enters the page.
         public void start() {
              // $ System.out.println("Applet.start() is called");
              // Call start() to prefetch and start the player.
              getMedia(mediaFile1);
              if (player != null)
                   player.start();
              setVisible(true);
          * Stop media file playback and release resource before leaving the page.
         public void stop() {
              // $ System.out.println("Applet.stop() is called");
              if (player != null) {
                   player.stop();
                   player.deallocate();
         public void destroy() {
              // $ System.out.println("Applet.destroy() is called");
              player.close();
         public void getMedia(String mediaFile) {
              URL url = null;
              try {
                   url = new URL(getDocumentBase(), mediaFile);
                   mediaFile = url.toExternalForm();
              } catch (MalformedURLException mue) {
              try {
                   // Create a media locator from the file name
                   if ((mrl = new MediaLocator(mediaFile)) == null)
                        Fatal("Can't build URL for " + mediaFile);
                   // Create an instance of a player for this media
                   try {
                        player = Manager.createPlayer(mrl);
                   } catch (NoPlayerException e) {
                        System.out.println(e);
                        Fatal("Could not create player for " + mrl);
                   // Add ourselves as a listener for a player's events
                   player.addControllerListener(this);
              } catch (MalformedURLException e) {
                   Fatal("Invalid media file URL!");
              } catch (IOException e) {
                   Fatal("IO exception creating player for " + mrl);
          * This controllerUpdate function must be defined in order to implement a
          * ControllerListener interface. This function will be called whenever there
          * is a media event
         public synchronized void controllerUpdate(ControllerEvent event) {
              // If we're getting messages from a dead player,
              // just leave
              if (player == null)
                   return;
              // When the player is Realized, get the visual
              // and control components and add them to the Applet
              if (event instanceof RealizeCompleteEvent) {
                   if (progressBar != null) {
                        remove(progressBar);
                        progressBar = null;
                   if ((controlComponent = player.getControlPanelComponent()) != null) {
                        controlPanelHeight = controlComponent.getPreferredSize().height;
                        add(BorderLayout.SOUTH, controlComponent);
                        validate();
                   if ((visualComponent = player.getVisualComponent()) != null) {
                        add(BorderLayout.CENTER, visualComponent);
                        validate();
                        visualComponent
                                  .addMouseListener(new java.awt.event.MouseAdapter() {
                                       public void mousePressed(
                                                 java.awt.event.MouseEvent evt) {
                                            System.out
                                                      .println("MovieStreaming: mousePressed");
                                            loadNewMovie(mediaFile2);
                                       public void mouseReleased(
                                                 java.awt.event.MouseEvent evt) {
                                       public void mouseEntered(
                                                 java.awt.event.MouseEvent evt) {
                                       public void mouseExited(
                                                 java.awt.event.MouseEvent evt) {
              } else if (event instanceof CachingControlEvent) {
                   if (player.getState() > Controller.Realizing)
                        return;
                   // Put a progress bar up when downloading starts,
                   // take it down when downloading ends.
                   CachingControlEvent e = (CachingControlEvent) event;
                   CachingControl cc = e.getCachingControl();
                   // Add the bar if not already there ...
                   if (progressBar == null) {
                        if ((progressBar = cc.getControlComponent()) != null) {
                             add(progressBar);
                             setSize(progressBar.getPreferredSize());
                             validate();
              } else if (event instanceof EndOfMediaEvent) {
                   // We've reached the end of the media; rewind and
                   // start over
                   player.setMediaTime(new Time(0));
                   player.start();
              } else if (event instanceof ControllerErrorEvent) {
                   // Tell TypicalPlayerApplet.start() to call it a day
                   player = null;
                   Fatal(((ControllerErrorEvent) event).getMessage());
              } else if (event instanceof ControllerClosedEvent) {
                   closed = true;
         public void closePlayer() {
              synchronized (this) {
                   player.close();
                   while (!closed) {
                        try {
                             wait(100);
                        } catch (InterruptedException ie) {
                   player.removeControllerListener(this);
                   System.out.println("player is shutdown");
                   closed = false;
         public void loadNewMovie(String mediaFile) {
              // remove all components
              closePlayer();
              removeAll();
              getMedia(mediaFile);
              if (player != null)
                   player.start();
              setVisible(true);
         void Fatal(String s) {
              // Applications will make various choices about what
              // to do here. We print a message
              System.err.println("FATAL ERROR: " + s);
              throw new Error(s); // Invoke the uncaught exception
              // handler System.exit() is another
              // choice.
    }As you may notice this code is basicly the SimplePlayerApplet example which I modified a bit.
    Thank you for your Help
    Matt2

    Sorry,
    Can you tell me how do you solve it because I have got the same problem.
    Can you indicate me the topic where did you find solution.
    Thank in advance.

  • Java Applet Background Color Problem on Internet Explorer

    Hi,
    Please check out the following URL:
    http://www.utopiainteractive.com/clients/AkonFinal/glossary.htm
    The menu bar is writting in Java Applet. If you scroll down the page, and scroll back up, I see white background as I scroll back up. It happens only on Internet explorer. Neither Java Applet nor HTML Body bg color is white. I am kinda lost, and any help would really be appreciated.
    Thank you and look forward to hearing from someone soon.
    Sachin

    Hi,
    Well I used HtmlConver utility to generate applet html code, so I assume nothing is wrong with Object tag. Do you know what could cause this problem on Internet explorer? To be honest, I spent last couple of days, but I am just lost. It absolutely works fine on Netscape.
    Thanks,
    Sachin

  • Java Applet call javascript problem

    Hi I have a web page as follow and embedded a applet. The applet call the java script, and instead of showing an alarm, the browser show the javascript code. Is that strange ? Any suggestion for this problem.
    HTML:
    ================================================================
    <HTML>
         <HEAD>
         function ShowEmbd()
              alert("Test Applet call Javascript");
         </SCRIPT>
         </HEAD>
         <BODY>
         <FORM NAME="AppletEmbdStart">
              <OBJECT classid="clsid:48B2DD7B-6B52-4DB0-97C9-ECB940113B47" id="CIVON_DEmbdObj" width="0" height="0"></OBJECT>
              <APPLET code="MyApplet.class" width="0" height="0"></APPLET>
         </FORM>
         </BODY>
    </HTML>MyApplet.java
    =========================================================================
    import netscape.javascript.*;
    public class MyApplet extends javax.swing.JApplet
         private JSObject m_win = null;
         private JSObject m_doc = null;
         public void init()
              getJSWin().call("ShowEmbd", null);
         private getJSDoc()
              if(m_doc == bull)
                   m_doc = (JSObject) getJSWin().getMember("document");
              return m_doc;
         private JSObject getJSWin()
              if (m_win == null)
                   m_win = netscape.javascript.JSObject.getWindow(this);
              return m_win;
    }The page was load and it should call the applet MyApplet. The MyApplet should do the init() method and call the Javascript "ShowEmbd()", BUT, instead of show alert from ShowEmbd(), the browser show the code of ShowEmbd() itself ...... It did not run the javascript and shows the alert ??
    The browser shows a message from status bar "The applet not initial" ???? why ???
    Can anyone help ?!

    On first look:
    I am not sure about the Object Tag, but the Applet Tag requires the MAYSCRIPT attribute before Java can call Javascript.

  • Applet-Servlet Communication problem EOFException

    Hi! i´ve been searching and searching through forums because it seems this problem is very common, but none of the solutions i´ve seen so far suits me, so i´m here looking for some help because i´ve been stuck one week with this. First of all sorry if my english isn´t the best... i´m a bit rusty...
    Well, i had some code that worked perfectly, but i needed to perform some changes because i needed the servlet to send more info to the applet, and here started the problems, when i made the changes it started to throw EOFException when i was trying to read the InputStream, and furthermore when i came back to the original code it started to throw the exception in the same place too
    So here i am... don´t know what to do now and i entrust to you to give me some tips.
    Here comes some code. This is the original code, the one that runned but it doesn´t run right now
    Applet:
    public ListasComponentesSeleccionables cargarListasComponentes( ) throws IOException, ClassNotFoundException {
              String serv = "/Desaladora/cargarListasComponentesApplet.do";
              String host = Principal.documentBase.getHost( );
              URL direccion = new URL( "http", host, 8080, serv );
              // Create conection
              URLConnection connection = direccion.openConnection( );
              connection.setDoInput( true ); 
              connection.setDoOutput( true );
              connection.setUseCaches( false );
              connection.setRequestProperty( "Content-Type", "application/x-java-serialized-object" );
              ObjectOutputStream output;
              output = new ObjectOutputStream( connection.getOutputStream( ) );
              output.writeObject( new Boolean(true) );
              output.flush( );
              output.close( );
              ObjectInputStream input = new ObjectInputStream( connection.getInputStream( ) ); //<-- Here is the problem
              ListasComponentesSeleccionables response = new ListasComponentesSeleccionables( );
              response = ( ListasComponentesSeleccionables ) input.readObject( );
              return response;
         }Servlet:
    ublic class CargarListasComponentesAppletAction extends Action {
    public ActionForward execute(     ActionMapping mapping,
                                                     ActionForm form,
                                                     HttpServletRequest request,
                                                     HttpServletResponse response )
                            throws ServletException, IOException, Exception  {
              InitialContext context = new InitialContext();
              SensorManagerService sensor_service;
              ActuatorManagerService actuator_service;
              Globals.LOGGER_SECURITY.debug( "Entering ACTION 'CargarListasComponentesAppletAction'" );
              response.setContentType("application/x-java-serialized-object");
              try
                   ObjectInputStream bufferentrada = new ObjectInputStream(request.getInputStream());
                   Boolean peticionOK = (Boolean)bufferentrada.readObject();
                   ObjectOutputStream buffersalida = new ObjectOutputStream(response.getOutputStream());
                   sensor_service = ( SensorManagerService ) context.lookup( "desaladora/SensorManagerServiceBean/local" );
                   ArrayList<AlarmConnectedSensorDTO> sensorList = sensor_service.findAllSensorsToAlarms();
                   actuator_service = ( ActuatorManagerService ) context.lookup( "desaladora/ActuatorManagerServiceBean/local" );
                   ArrayList<AlarmConnectedActuatorDTO> actuatorList = actuator_service.findAllActuatorsToAlarms();
                   buffersalida.writeObject( crearListasSeleccionables(sensorList, actuatorList) );
                   buffersalida.flush();
              catch(Exception e)
                   System.out.println("Error en la trasmision de datos");
              return null;
         private ListasComponentesSeleccionables crearListasSeleccionables(ArrayList<AlarmConnectedSensorDTO> sensorList,
                    ArrayList<AlarmConnectedActuatorDTO> actuatorList) {
              Vector<Integer> vectorSensores = new Vector<Integer>();
              Vector<Integer> vectorActuadores = new Vector<Integer>();
              for(AlarmConnectedSensorDTO sensor : sensorList) {
                   vectorSensores.add(sensor.getIdSensor( ));
              for(AlarmConnectedActuatorDTO actuator : actuatorList) {
                   vectorActuadores.add(actuator.getIdActuator( ));
              ListasComponentesSeleccionables listasComponentesSeleccionables =
                                  new ListasComponentesSeleccionables(vectorSensores, vectorActuadores);
              return listasComponentesSeleccionables;
    }i´ve been running some test in another computer, and this code simply works, but it doesn´t work in the machine i usually work.
    Maybe someway the stream get corrupt? the info i´ve been trying to send and started throwing the exception may still be in the stream? I don´t know what to think right now.
    Hope someone has any idea, thankyou.

    I dont see the problem. However, I suggest you change this;
    System.out.println("Error en la trasmision de datos"); t
    to e.printStackTrace() to see what it is doing when it stops working.
    I also suggest peppering your code with System.out.println() statements to see what it is doing just before stopping.
    Also, try your code with a brand new file with only a few characters in it. If it works, add to it some of your originial file content until it stops working. This way, you can determine if its the file size that is causing the crash or something in the file content. If all else fails, study java I/O and try some other way to read/write the file. You can also try a different browser. If it works, its the browser. Still having problems? Create a new project with a simple applet and file read/write program and get that working. That way, all the other stuff in your original project isn't in the way.

  • Please Urgent sound applet in jsp problem

    Hi please any body hekp me urgently.
    I have a problem while playing a sound applet in the jsp file the error is class not found.
    My applet class file is in the com.mypack.common
    its code is
    public class PlayErrorSoundApplet extends Applet
    public PlayErrorSoundApplet()
    public void init()
    public void playSound()
    String soundObj = getParameter("soundObj");
    AudioClip sound = getAudioClip(getDocumentBase(), "success.wav");
    sound.play();
    in the jsp i have written the code like this
    <applet codebase="com.mypack.common" code="PlayErrorSoundApplet.class" name="soundApplet" width="0" height="0">
    <param name="soundObj" value="error.wav">
    </applet>
    In the applet console i got class not found error.
    please help me .....advanced thanks......

    actually, codbase is a directory. so
    <applet codebase="com/mypack/common" code="PlayErrorSoundApplet.class" name="soundApplet" width="0" height="0">
    <param name="soundObj" value="error.wav">
    </applet>this means you have something like
    pacakge com.mypack.common
    public class PlayErrorSoundApplet {
    Make sure to put the html file in the root directory of the package structure
    /myhtmlfile.html
       /com
          /mypack
               /common
                    PlayErrorSoundApplet.class                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                           

Maybe you are looking for