Application hangs in SetCaretPosition call

Hi,
I have a JTextArea where i append some text. When i call
m_textareaLogWindow.setCaretPosition(m_textareaLogWindow.getDocument().getLength());
the application hangs... does any one had the same problem?
sugestions are welcome.
By the way, the function that executes this code is synchronized.
thanks in advance
Cris

Hi again, i have discovered my problem.
This is a well know situation and can be found under the Bug Id 4839713.
here is an example:
WRONG CODE:
public synchronized void writeLine(String newText)
String output = textArea.getText() + newText + NL;
try{ Thread.sleep(SLEEPTIME); }catch(Exception e){}
textArea.setText(output);
textArea.setCaretPosition(output.length());
GOOD CODE:
public void workAround(String newText)
synchronized(textArea)
String output = textArea.getText() + newText + NL;
try{ Thread.sleep(SLEEPTIME); }catch(Exception e){}
textArea.setText(output);
textArea.setCaretPosition(output.length());
The first method synchronizes with 'this' (which is HangGraphics extends
JFrame)
The second one synchronizes with textArea. If you change it to 'this' the same deadlock occurs.
Adding synchronized methods might lead to deadlocks.
Cris

Similar Messages

  • Application hangs on setVisible call in Solaris 8

    I have a Swing application that I am having trouble with. The swing part of it is simple enough, however it does use a C++ API with JNI. It all works perfectly on Linux. However in Solaris 8 the application hangs on the call to either myFrame.pack () or myFrame.setVisible (true). It simply never returns from either of these functions when called. It doesn't crash.
    I have commented out all of the JNI stuff to eliminate that as a possible cause. Oh and I am using the -d64 option on the JVM because the JNI library is 64 bit.
    Any thoughts?

    First question is - did you get a thread dump?
    On Solaris, if you run the app in a terminal window, then type C-\ (control-backslash) you get a thread dump. What you'll be looking for is multiple threads "waiting for monitor" on the same object.
    - David

  • After Effects CS6 and Premiere Pro CS6 Long Startup and Application Hang

    Problem:
    After Effects and Premiere Pro CS5.5 and CS6 are very slow to start all of a sudden.  Around 5 minutes to get to/by the intro dialogue box.  For AE, the majority of the time is spent on the "initializing user interface." Then, if I can make a comp, and even a layer inside that comp, it will "Hang" if I attempt to open AE's General preferences for example (no preferences window ever comes up).  This "hang" is what the Event Viewer in windows calls it, with the faulting module being afterfx.exe.  Premiere is not much different.   It makes it to the new project window fast, but after setting project parameters and creating the first sequence, I can't get into the preferences either and the application hangs.  It is important to note that if I have another application open, like Chrome or Firefox for example at the time the application hangs, they will freeze as well.  As soon as I kill the Afterfx.exe process, they come back to life.
    I have read nearly all threads on the subject, and am struggling to find a solution:
    Deleted preferences folder under my username's appdata.
    Turned off Firewall (network traffic from dynamiclink, qtserver, etc was allowed, but what the hay)
    ran windows system file checker/malwarebytes/rkill/rootkit detection.
    checked for windows compatibility checkboxes under the file.
    Uninstalled Wacom Tablet drivers
    Disabled Aero
    Started with ctrl-alt-shift to delete pref.
    uninstalled video driver and replaced with one 6 months ago.
    uninstalled, reinstalled, and tested various quicktime versions back to version 7.69
    moved plugins folder
    moved opengl's plugin out of the folder temporarily
    Disabled all 3rd party codecs (xvid was the only one installed and for months)
    reinitialized default directshow filters
    checked for adobe font list (none found) and removed any fonts from 1 month ago to present.
    used msconfig to selective startup without other applications/services running.
    Uninstalled all adobe products, and reinstalled.
    I performed all of these in a systematic manner, trying to solve the problem.  None have fixed the problem.
    So it doesn't seem to be a network issue, a codec issue, a plugin issue, a driver issue, font issue, or conflicting application.  Any thoughts?
    System Info:
    PC Windows 7 pro 64-bit SP1
    Core i7 - 960 24GB ram
    AMD Radeon 6750  v12.10
    Adobe CS6 Master Collection

    Who's says that Microsoft can't debug?
    I used msconfig, first disabling startup items, -same result.
    Enabled all startup items, disabled all non-microsoft services - AE worked!
    I re-enabled each service in turn until AE crashed.
    The fault was related to an item for a video streaming device I have in my house.  It was Monsoon-multimedia's Vulkano Service.  Sometimes under the old name of Hava, this is an app that acts like a sling-box to send my Cable TV to my screen.  It does load a couple of virtual devices in device manager, and uses a proprietary codec.
    I uninstalled the vulkano streamer application and rebooted the external Vulkano device.  I reinstalled the Vulkano and verified it connected to the device and could stream.  Once it did, I tried AE again and IT WORKED!
    I wonder if simply rebooting the Vulkano would have fixed it.  Its like opening the garage door to turn on the refridgerator.
    Thanks for the help!
    Jim

  • Application hanging after commit issued, how to tell why?

    Hi All,
    We're using adf bc, jsp's and jdev 10.1.2.
    The scenario is this.. I have 2 views based on the same entity(called Milk). One view is the control view Milk i.e. straightforward select, no where clause. The other one is based on a join with another entity (Area), which uses where clause parameters to output a row of Milk for every entry on the Area entity. So basically for every area there is, a milk row will be output even if that row does not exist on the milk table.
    So my problem was when the user edited and saved a row which didn't actually exist on the database, the program would hang. Editing of rows that do exist pose no problem at all. So then I thought maybe I should create these rows first so that they would physically exist on the database before the edit. Still to no avail..
    If it's just one row created or many rows, once the commit is issued, the application hangs. I've debugged it and nothing happens once it executes the commit line, there are no error messages, it just never progresses past this line.
    I've tested with the App Module tester and I can create rows here fine. Obvisouly something is wrong or it wouldn't be happening. How can I tell why it's hanging? Or can anyone suggest what I can do. It is extremely crucial that I fix this soon so I would really appreciate any help that anyone can give me.
    Thanks in advance,
    Liz.

    Maybe you should look into
    /var/log/messages.log
    /var/log/daemon.log
    /var/log/kernel.log
    /var/log/Xorg.0.log will be overridden, afaik.
    Last edited by MadTux (2009-11-19 18:50:04)

  • C application hangs intermittently on invoking Closehandle() function in Win 7 64bit OS

    Hi,
    I have a application which basically deals with network operations like begin session, send/receive etc. The application also has mutex create, request and close. Before terminating the transaction between the client and server, there is a call to Closehandle()
    while clears that mutex that was created during initialization. (Mutex is released prior to close). During closing the mutex, in Windows 7 64 bit OS, the application goes to hung state intermittently. The same application used work without any issues in Win
    XP. 
    PS: The C application is written in Visual Studio 6.0
    Hence requesting for any thoughts to resolve this problem!!
    Thanks in Advance!

    Hi,
    When application hangs, it needs to be restarted. Yes, this problems happens sometimes.
    With respect to the anti-virus and firewalls, I had tried turned off firewalls and anti-virus but did not help!
    This application basically acts as a network layer which is the bridge between client and server.
    Below is the code snippet from the app which shows about mutex creation, request and close. I had configured ADPlus to the application to check on which line of the code the hang occurs and from that dump file could notice that the cause for the hang is
    Closehandle() function.
    Code snippet -
    typedef unsigned long OSLMUTEXSEM;
    extern OSLMUTEXSEM gsemCrypt; 
    void PASInitialize() {
    char *            pMutexSemName;
    DWORD     NTRC;
    pMutexSemName = gsemCrypt;
    oslRc = MutexSemCreate((char*)NULL,&gsemCrypt));   //Mutex creation by calling CreateMutex() function
    oslRc = MutexSemRequest( gsemCrypt, SEM_WAIT_FOREEVER); //Request the semaphore by calling WaitForSingleObject() function -infinite //timeout
    // some operation
    oslRC = MutexSemRelease( gsemCrypt ));  // release the mutex by calling ReleaseMutex function
    void PASTerminate(){
    oslRC = MutexSemClose(gsemCrypt); //calling Closehandle()function to close the mutex
    WSACleanup();
    From the dump files, it was noticed that the hang happens at the call MutexSemClose(..) function which in turn calls windows function Closehandle().

  • Java application hangs on I/O

    Hello,
    Could use some help as I've been racking my brain and going crazy. I have a Java application who's sole purpose in life is to monitor a QFS file system for when it goes bad. This main process kicks off a thread(we'll call it thread A) which lives indefinitely. This thread wakes up every so often and kicks off a thread to write a file, and then a thread to read that file back in, and then a thread to delete that file. Thread A has no interaction back to the main process but does monitor each of it's subthreads. This process works great for all testing that you can do, like unmounting the file system and pulling network cables etc. The problem lies when the QFS servers start doing their server not responding routine(basically a real failure and not a purposely inflicted one. What happens is that the whole Java application hangs. The main process, and the parent thread(thread A) all grind to a hault. From the command line anything you try to do in that file system also hangs but you can ctrl-c out of it(like a ls or cd to it. I have been experimenting with all the ways I can think of to fix this, like thread.interupt(), using Runtime.exec instead of I/O objects and trying to control the Process object, and I've tried exposing the FileInputStream and FileOutputStream objects in order to call close() on them. I've been reading that the interupt() method doesn't work for all intense purposes and that the latter method I tried is the way to do it, although, these postings say that that doesn't necessarily always work on Linux. Unfortunately, I am running this application on a Solaris 10 X86 platform which has a lot of similarities to Linux and am experiencing this not working. Has anybody had to do anything like this or handle cases like this that could maybe point me in the direction that they were successful in?
    Thanks

    Just to verify you are not, in any way, using external apps via something like exec() right?
    So the blocking processes are read, write and delete?
    And you are sure that you are in fact calling interrupt on all of the relevant threads?
    Presuming yes than given that you have already demonstrated that you can't interrupt them it doesn't matter much what you do in java it isn't going to work. So look for a different solution.
    One possibility, spin up a seperate java app that does the actual work. Create a socket server, obviously seperate from other threads to manage. It verifies that the app is still working and allows the caller to shut it down - via system.exit().
    Then you have a management app that starts that app and when needed you tell it to shut down and then restart it.

  • Application hangs on filterFunction

    Hello all,
    I'll try to describe the problem before posting the code, which is a little bit long.
    I have a search popup with a dataGrid, who's dataProvider is connected to an ArrayCollection object, which is fed by a HTTPService that is reloaded every 5 minutes.
    When I launch the application for the first time and the popup is called, the application hangs. If I refresh the browser and repeat the exact same steps, the application works perfectly.
    The size of the data loaded into the ArrayCollection does not influence the results; I have tried with one record and the full size, 3Mb, and the problem keeps going on.
    Has someone gone through this issue before ? Any suggestions ?
    Thanks in advance.
    André

    First question is - did you get a thread dump?
    On Solaris, if you run the app in a terminal window, then type C-\ (control-backslash) you get a thread dump. What you'll be looking for is multiple threads "waiting for monitor" on the same object.
    - David

  • Application hang. Skype stops interacting with wi...

    Skype has suddenly stopped working and I cannot access anything in the skype window.  Nothing in the menu is accessible  and have to close it out using task manager... Event log shows the following error.
    Log Name:      Application
    Source:        Application Hang
    Date:          3/1/2015 12:10:08 AM
    Event ID:      1002
    Task Category: (101)
    Level:         Error
    Keywords:      Classic
    User:          N/A
    Computer:      Petie-PC
    Description:
    The program Skype.exe version 7.1.0.105 stopped interacting with Windows and was closed. To see if more information about the problem is available, check the problem history in the Action Center control panel.
     Process ID: 4d4
     Start Time: 01d053e94bb9dd10
     Termination Time: 13
     Application Path: C:\Program Files (x86)\Skype\Phone\Skype.exe
     Report Id:
    Event Xml:
    <Event xmlns="http://schemas.microsoft.com/win/2004/08/events/ev​ent">
      <System>
        <Provider Name="Application Hang" />
        <EventID Qualifiers="0">1002</EventID>
        <Level>2</Level>
        <Task>101</Task>
        <Keywords>0x80000000000000</Keywords>
        <TimeCreated SystemTime="2015-03-01T07:10:08.000000000Z" />
        <EventRecordID>44618</EventRecordID>
        <Channel>Application</Channel>
        <Computer>Petie-PC</Computer>
        <Security />
      </System>
      <EventData>
        <Data>Skype.exe</Data>
        <Data>7.1.0.105</Data>
        <Data>4d4</Data>
        <Data>01d053e94bb9dd10</Data>
        <Data>13</Data>
        <Data>C:\Program Files (x86)\Skype\Phone\Skype.exe</Data>
        <Data>
        </Data>
        <Binary>54006F00700020006C006500760065006C00200077​0069006E0064006F0077002000690073002000690064006C00​650000000000</Binary>
      </EventData>
    </Event>

    Try to reset all Skype settings.
    Quit Skype or use Windows Task Manager to kill any Skype.exe process. Go to Windows Start and in the Search/Run box type %appdata% and then press Enter or click the OK button. The Windows File Explorer will pop up. There locate a folder named “Skype”. Rename this folder to something different, e.g. Skype_old.
    Next go to Windows Start and in the Search/Run box type %temp%\skype and then press Enter or click the OK button. Delete the DbTemp folder.
    Restart Skype.
    N.B. If needed, you will still be able to re-establish your call and chat history. All data is still saved in the Skype_old folder.

  • Concurrent Data Store (CDB) application hangs when it shouldn't

    My application hangs when trying to open a concurrent data store (CDB) database for reading:
    #0 0x0000003ad860b309 in pthread_cond_wait@@GLIBC_2.3.2 ()
    from /lib64/libpthread.so.0
    #1 0x00007ffff7ce67de in __db_pthread_mutex_lock (env=0x610960, mutex=100)
    at /home/steve/ldm/package/src/Berkeley-DB/dist/../mutex/mut_pthread.c:318
    #2 0x00007ffff7ce5ea5 in __db_tas_mutex_lock_int (env=0x610960, mutex=100,
    nowait=0)
    at /home/steve/ldm/package/src/Berkeley-DB/dist/../mutex/mut_tas.c:218
    #3 0x00007ffff7ce5c43 in __db_tas_mutex_lock (env=0x610960, mutex=100)
    at /home/steve/ldm/package/src/Berkeley-DB/dist/../mutex/mut_tas.c:248
    #4 0x00007ffff7d3715b in __lock_id (env=0x610960, idp=0x0, lkp=0x610e88)
    at /home/steve/ldm/package/src/Berkeley-DB/dist/../lock/lock_id.c:68
    #5 0x00007ffff7da1b4d in __fop_file_setup (dbp=0x610df0, ip=0x0, txn=0x0,
    name=0x40b050 "registry.db", mode=0, flags=1024, retidp=0x7fffffffdd94)
    at /home/steve/ldm/package/src/Berkeley-DB/dist/../fileops/fop_util.c:243
    #6 0x00007ffff7d70c8e in __db_open (dbp=0x610df0, ip=0x0, txn=0x0,
    fname=0x40b050 "registry.db", dname=0x0, type=DB_BTREE, flags=1024,
    mode=0, meta_pgno=0)
    at /home/steve/ldm/package/src/Berkeley-DB/dist/../db/db_open.c:176
    #7 0x00007ffff7d673b2 in __db_open_pp (dbp=0x610df0, txn=0x0,
    fname=0x40b050 "registry.db", dname=0x0, type=DB_BTREE, flags=1024, mode=0)
    at /home/steve/ldm/package/src/Berkeley-DB/dist/../db/db_iface.c:1146
    I suspect that the database environment believes that another process has the database open for writing. This cannot be the case, however, as all applications that access the database do so via an interface library I wrote that registers a termination function via the atexit() system-call to ensure that both the DB and DB_ENV handles are properly closed -- and all previously-executed applications terminated normally.
    The interface library opens the database like this (apparently, this forum doesn't support indentation, sorry):
    int status;
    Backend* backend = (Backend*)malloc(sizeof(Backend));
    if (NULL == backend) {
    else {
    DB_ENV* env;
    if (status = db_env_create(&env, 0)) {
    else {
    if (status = env->open(env, path,
    DB_CREATE | DB_INIT_CDB | DB_INIT_MPOOL, 0)) {
    else {
    DB* db;
    if (status = db_create(&db, env, 0)) {
    else {
    if (status = db->open(db, NULL, DB_FILENAME, NULL,
    DB_BTREE, forWriting ? DB_CREATE : DB_RDONLY, 0)) {
    else {
    backend->db = db;
    } /* "db" opened */
    if (status)
    db->close(db, 0);
    } /* "db" allocated */
    if (status) {
    env->close(env, 0);
    env = NULL;
    } /* "env" opened */
    if (status && NULL != env)
    env->close(env, 0);
    } /* "env" allocated */
    if (status)
    free(backend);
    } /* "backend" allocated */
    This code encounters no errors.
    The interface library also registers the following code to be executed when any process that uses the interface library exits:
    if (NULL != backend) {
    DB* db = backend->db;
    DB_ENV* env = db->get_env(db);
    if (db->close(db, 0)) {
    else {
    if (env->close(env, 0)) {
    else {
    /* database properly closed */
    As I indicated, all previously-executed processes that use the interface library terminated normally.
    I'm using version 4.8.24.NC of Berkeley DB on the following platform:
    $ uname -a
    Linux gilda.unidata.ucar.edu 2.6.27.41-170.2.117.fc10.x86_64 #1 SMP Thu Dec 10 10:36:29 EST 2009 x86_64 x86_64 x86_64 GNU/Linux
    Any ideas?

    Bogdan,
    That can't be it. I'm using a structured programming style in which the successful initialization of a cursor is ultimately followed by a closing of the cursor. There's only one place where the code does this and it's obvious that the cursor gets released.
    I've also read the CDB section.
    --Steve Emmerson                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Drag and Drop Problem in JTree - Application hangs

    Dear Friends,
    My application hangs when I try to pop a JOptionPane, asking user to select a option. I can't do anything as whole CPU memory is consumed by this. If I don't pop option then there is no problem at all. Everything works fine.
    Dialog is poped when user makes a drop on a node.
    OS : WIN NT 4.0 SP 6
    WEB SERVER : TOMCAT 3.2.2
    Thanx in advance

    Not sure if this will work inside classes, but in working with AS3, this would issue the command to object you just clicked, and the object you just dropped:
    // This function is called when the mouse button is pressed.
       function startDragging(event:MouseEvent):void
            event.currentTarget.startDrag();
        // This function is called when the mouse button is released.
        function stopDragging(event:MouseEvent):void
           event.currentTarget.stopDrag();

  • JavaMail application hanged with no error throwed at Transport.send

    JavaMail application hanged with no error throwed at Transport.send,even though I set the timeout property
    import java.util.Date;
    import java.util.Properties;
    import javax.mail.Authenticator;
    import javax.mail.Message;
    import javax.mail.PasswordAuthentication;
    import javax.mail.Session;
    import javax.mail.Transport;
    import javax.mail.internet.InternetAddress;
    import javax.mail.internet.MimeBodyPart;
    import javax.mail.internet.MimeMessage;
    import javax.mail.internet.MimeMultipart;
    import javax.mail.internet.MimeUtility;
    public class tt {
         static Properties props=null;
         static boolean needAuth=true;
         static MailAuthenticator authenticator = null;
         static String host="host";
         static String account="account";
         static String password="pwd";
         static String sender="sender";
          * @param args
          * @throws Exception
         public static void main(String[] args) throws Exception{
               if (props == null) {
                     props = new Properties();
                     props.put("mail.smtp.host", host);
                     props.put("mail.smtp.timeout      ", "1000");
                     props.put("mail.smtp.connectiontimeout      ", "1000");
    //                 props.put("mail.debug", "true");
                     props.put("mail.smtp.auth", String.valueOf(needAuth));
                     authenticator = new MailAuthenticator(account, password);
                 MailData mailData = new MailData();
                 mailData.setSubject("altireport mail configuration");
                 mailData.setContent("mail server has been configured successfully.");
                 mailData.setRecipients(new String[]{"[email protected]"});
                 final Session session = Session.getInstance(props, authenticator);
                 final MimeMessage msg = new MimeMessage(session);
                 InternetAddress from = new InternetAddress(sender);
                 msg.setFrom(from);
                 //        msg.setSender(from);
                final InternetAddress[] addressTo = new InternetAddress[mailData.getRecipients().length];
                 for (int i = 0; i < mailData.getRecipients().length; i++) {
                     addressTo[i] = new InternetAddress(mailData.getRecipients());
         msg.addRecipients(Message.RecipientType.TO, addressTo);
         //msg.setSubject(mailData.getSubject());
         msg.setSubject(MimeUtility.encodeText(mailData.getSubject(), "UTF-8", "B"));
         MimeBodyPart bodyPart1 = new MimeBodyPart();
         bodyPart1.setContent(mailData.getContent(), "text/plain; charset=UTF-8");
         MimeMultipart multipart = new MimeMultipart();
         multipart.addBodyPart(bodyPart1);
         msg.setContent(multipart);
         msg.setSentDate(new Date());
    //     msg.saveChanges();
         for(int i=0;i<10;i++){
              new Thread(new Runnable(){
                             public void run() {
                             try {
                                  System.out.println("send...");                                   
                                  Transport.send(msg);
                                  } catch (Exception e) {
                                       e.printStackTrace(System.out);
                        System.out.println("end!");
              }).start();
    class MailData {
    private String[] recipients = null;
    private String subject = null;
    private String content = null;
    private String attachment = null;
    private String attachmentName = null;
    * @return the attachment
    public String getAttachment() {
    return attachment;
    * @param attachment the attachment to set
    public void setAttachment(String attachment) {
    this.attachment = attachment;
    * @return the content
    public String getContent() {
    return content;
    * @param content the content to set
    public void setContent(String content) {
    this.content = content;
    * @return the recipients
    public String[] getRecipients() {
    return recipients;
    * @param recipients the recipients to set
    public void setRecipients(String[] recipients) {
    this.recipients = recipients;
    * @return the subject
    public String getSubject() {
    return subject;
    * @param subject the subject to set
    public void setSubject(String subject) {
    this.subject = subject;
    * @return the attachmentName
    public String getAttachmentName()
    return attachmentName;
    * @param attachmentName the attachmentName to set
    public void setAttachmentName(String attachmentName)
    this.attachmentName = attachmentName;
    class MailAuthenticator extends Authenticator {
    private PasswordAuthentication authentication;
    public MailAuthenticator(String account, String password) {
    authentication = new PasswordAuthentication(account, password);
    protected PasswordAuthentication getPasswordAuthentication() {
    return authentication;
    I have tried use session to get a SMTPTransport instance to use sendMessage ,but still have the same problem.No exception ,No error.
    This problem doesn't appear always. It appears sometimes.
    I hope get help for someone who has the solution for this problem.
    Thanks in advanced.                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

    Ok, I think I see the problem:
         props.put("mail.smtp.timeout      ", "1000");
         props.put("mail.smtp.connectiontimeout      ", "1000");
    Why do you have spaces at the end of the property names?
    Those spaces are not being ignored, which means you've
    set the wrong properties.

  • Application hangs while trying to create a socket

    Hello,
    We have a third party application that makes HTTP connections using a old version of HTTPClient. Recently we have run into problems where the application hangs as one thread seems to hang while trying to create a socket (thread dumps show the hang occurs in native code) and other threads end up waiting for this thread as they need to obtain a lock on HTTPClient.HTTPConnection. We found out that HTTPClient was not setting a timeout on the underlying socket (SO_TIMEOUT) and the relevant patch has been implemented in the hope that if the condition arises again the offending thread will be timed out and allow other threads to try and continue.
    We will not be able to see if the patch works until Monday and I would like to understand the problem a little better if it fails. My question at what point will the socket timeout starting ticking? As our offending thread is waiting in native code is there a chance that the timeout will not be "active".
    Also can anyone provide reasons for an application hanging while trying to create a socket and any suggestions for monitoring or mitigating this problem?
    Thanks a lot.
    Sun Solaris 5.8
    JDK 1.4.1 b02

    It looks like our version of the JDK offer a connect method with a timeout value, I think this will do the trick.

  • Application hangs while running a report from Forms

    Hi all,
    I am getting a problem regarding running reports from Oracle forms application for printing in a shared printer at client system. There is no problem when I set the DESTYPE to HTMLCSS or FILE. But when I set it to PRINTER then the application hangs and report server gets busy. Once this problem occurs other reports from other client systems are not generating even if this is a HTMLCSS or FILE type.
    The thing is the application has ran successfully for two months. Suddenly from last few days the problem is arising.
    Few things that I have noticed:
    1) When the application hangs I cheked the Task manager, where the process rwlpr.exe is running. If I manually ends the process there the application comes back with a message 'unable to run report'.
    2) I have checked few log files, where I have found few log files whose names end with a job number. The file generates from a succesfully running report shows few steps tht end s with closing the printer. But the file that is generated from an unsuccessfull job stops at the step 'Opening Printer //<machine name>/<printer share name>'.
    3) Then finally I have changed the DESTYPE to file and using the HOST command printing the text file to shared printer in dos mode. Its working fine. But often the first problem arises again.
    What are the possible resons that may cause this problem.
    Looking for your positive response.
    Thanks and regards
    Sandy

    From dos prompt I have used the type commad.
    From server machine in dos prompt I have used,
    type d:\rep.txt > \\<client machine name>\<printer shared name that is connected to client printer>
    from Server machine I have opened a Notepad doc, File >Print >Selected the printer that is in client machine.
    This works fine.
    Now my code to print a report directly to printer,
    V_PRINTERNAME := '\\mmondal\mmondalprn'; -- shared Printer name at Client machine
    repid := find_report_object('REP_BANK_MST');
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_EXECUTION_MODE,BATCH);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_COMM_MODE,SYNCHRONOUS);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESTYPE,PRINTER);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESFORMAT,'dflt');
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_DESNAME,V_PRINTERNAME);
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_SERVER,'kt30');
    SET_REPORT_OBJECT_PROPERTY(repid,REPORT_OTHER,'paramform=no P_ISPOSTED='||:CHK_ISPOSTED);
    v_rep := RUN_REPORT_OBJECT(repid);
    rep_status := REPORT_OBJECT_STATUS(v_rep);
    WHILE rep_status in ('RUNNING','OPENING_REPORT','ENQUEUED')
    LOOP
    rep_status := report_object_status(v_rep);
    END LOOP;
    IF rep_status = 'FINISHED' THEN
    WEB.SHOW_DOCUMENT('/reports/rwservlet/getjobid'||
    substr(v_rep,instr(v_rep,'_',-1)+1)||'?'||'server=kt30','_blank');
    ELSE
    message('Error when running report');
    END IF;
    exception when others then
         message(to_char(sqlcode));
    This hngs the application. And other requests enqued in job queue does not process. If I cancel the stucked job then other reports complete sucessfully.
    Log - rwserver.trc shows the following:
    [2011/6/14 4:48:28:437] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 1051
    [2011/6/14 4:48:28:484] Debug 50103 (RWCacheItem:addFile): add file 'mmondalprn65558177.txt' for job 1051
    [2011/6/14 4:48:28:484] Debug 50103 (RWCache:updateCurrentCapacity): Current cache capacity is 32948731
    [2011/6/14 4:48:30:671] Exception 50157 (): Error while sending file to printer \\mmondal\mmondalprn. Exit with error code 1848
    oracle.reports.RWException: IDL:oracle/reports/RWException:1.0
         at oracle.reports.utility.Utility.newRWException(Utility.java:756)
         at oracle.reports.utility.SOSD.sendPrinter(SOSD.java:128)
         at oracle.reports.server.DesPrint.sendFile(DesPrint.java:102)
         at oracle.reports.server.Destination.send(Destination.java:484)
         at oracle.reports.server.JobObject.distribute(JobObject.java:1582)
         at oracle.reports.server.JobManager.updateJobStatus(JobManager.java:2231)
         at oracle.reports.server.EngineCommImpl.updateEngineJobStatus(EngineCommImpl.java:134)
         at oracle.reports.server._EngineCommImplBase._invoke(_EngineCommImplBase.java:94)
         at com.sun.corba.se.internal.corba.ServerDelegate.dispatch(ServerDelegate.java:353)
         at com.sun.corba.se.internal.iiop.ORB.process(ORB.java:280)
         at com.sun.corba.se.internal.iiop.RequestProcessor.process(RequestProcessor.java:81)
         at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run(ThreadPool.java:106)
    [2011/6/14 4:48:30:671] State 56016 (JobManager:updateJobStatus): Job 1051 status is: Executed successfully but there were some errors when distribute the output
    REP-50159: Executed successfully but there were some errors when distribute the output
    [2011/6/14 4:48:30:671] Debug 50103 (JobManager:notifyWaitingJobs): Master job 1051 notify its duplicated jobs.
    [2011/6/14 4:48:30:671] Debug 50103 (JobManager:updateJobStatus): Finished updating job: 1051
    [2011/6/14 4:48:30:671] Debug 50103 (EngineManager:updateEngineState): Engine rwEng-0 status is 1
    [2011/6/14 4:48:30:671] State 56004 (EngineInfo:setState): Engine rwEng-0 state is: Ready
    [2011/6/14 4:48:30:671] Exception 50159 (): Executed successfully but there were some errors when distribute the output
    oracle.reports.RWException: IDL:oracle/reports/RWException:1.0
         at oracle.reports.server.JobManager.runJobInEngine(JobManager.java:1009)
         at oracle.reports.server.JobManager.runJobLocal(JobManager.java:1779)
         at oracle.reports.server.JobManager.dispatch(JobManager.java:1045)
         at oracle.reports.server.ConnectionImpl.runJob(ConnectionImpl.java:1280)
         at oracle.reports.server._ConnectionImplBase._invoke(_ConnectionImplBase.java:401)
         at com.sun.corba.se.internal.corba.ServerDelegate.dispatch(ServerDelegate.java:353)
         at com.sun.corba.se.internal.iiop.ORB.process(ORB.java:280)
         at com.sun.corba.se.internal.iiop.RequestProcessor.process(RequestProcessor.java:81)
         at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run(ThreadPool.java:106)
    [2011/6/14 4:48:30:671] Debug 50103 (JobManager:runJobInEngine): Encounted exception in job 1051
    [2011/6/14 4:48:30:671] Debug 50103 (ConnectionImpl:runJob): jobid = 1051 Failed with exceptionoracle.reports.RWException: IDL:oracle/reports/RWException:1.0
    [2011/6/14 4:48:30:671] Exception 50159 (): Executed successfully but there were some errors when distribute the output
    oracle.reports.RWException: IDL:oracle/reports/RWException:1.0
         at oracle.reports.server.JobManager.runJobInEngine(JobManager.java:1009)
         at oracle.reports.server.JobManager.runJobLocal(JobManager.java:1779)
         at oracle.reports.server.JobManager.dispatch(JobManager.java:1045)
         at oracle.reports.server.ConnectionImpl.runJob(ConnectionImpl.java:1280)
         at oracle.reports.server._ConnectionImplBase._invoke(_ConnectionImplBase.java:401)
         at com.sun.corba.se.internal.corba.ServerDelegate.dispatch(ServerDelegate.java:353)
         at com.sun.corba.se.internal.iiop.ORB.process(ORB.java:280)
         at com.sun.corba.se.internal.iiop.RequestProcessor.process(RequestProcessor.java:81)
         at com.sun.corba.se.internal.orbutil.ThreadPool$PooledThread.run(ThreadPool.java:106)
    [2011/6/14 4:48:30:703] Info 56013 (ConnectionManager:release): Connection 196 is released
    [2011/6/14 4:48:30:703] Info 56013 (ConnectionManager:release): Connection 197 is released
    [2011/6/14 4:48:31:31] Debug 50103 (JobManager:removeJob): will remove job 51
    [2011/6/14 4:48:31:31] Debug 50103 (RWCache:deleteItem): delete item for job 51
    [2011/6/14 4:48:31:31] Debug 50103 (RWCacheItem:clear): job 51 become invalid
    [2011/6/14 4:48:31:31] Debug 50103 (RWCache:updateCurrentCapacity): Current cache capacity is 32942484
    [2011/6/14 4:48:31:46] Debug 50103 (JobManager:removeJob): removed job 51
    [2011/6/14 4:48:47:906] Info 56013 (ConnectionManager:release): Connection 198 is released
    [2011/6/14 4:48:51:890] Info 56013 (ConnectionManager:release): Connection 199 is released
    [2011/6/14 4:50:48:437] Info 56013 (ConnectionManager:release): Connection 200 is released
    Most of the time when all the instances are restarted then for the first time it runs successfully.
    The above code worked fine for Last two months.

  • How to find out the position in which an application hangs

    Hi,
    is there any possibility to find out the position in a source, in which a deployed application hangs?
    For example, there is an endless loop in an application, which is already deployed. In runtime the application hangs in this loop. How can I findout in which line the application hangs?
    In other words, how can I see the stack of a certain process,for example, http_workerx?
    Regards,
    Ali
    Message was edited by:
            Ali Maraschi-Schouschtari

    Hi Ali,
    With <b>SAP NetWeaver Composition Environment (CE) 7.1 SP3</b> it is very easy.
    <i>1.) Open the SAP Management Console
    2.) Go to AS Java Threads tree node - you will see all the threads that are currently started on the system
    3.) Check for threads that are colored in red - it takes about 30 sec the system to detect that an HTTP thread (http_workerx), as it is in your case, is hanging/executing endless loop.
    4.) Right click on the hanging thread (colored in red) and pick 'Callstack' from the pop-up menu
    5.) In the new window you will see the stack-trace showing what exactly this hanging thread is doing at the moment.</i>
    With the <b>previous versions (or SPs)</b> you need to apply a little bit more technical skills for the same result. <i>(1) you need to do produce thread dump of the server that is suspected to have hanging thread</i> and (<i>2) to analyze this thread dump (check what the threads in Running state are doing).</i> As it is in your case with the HTTP worker threads, their names are also printed in the thread dump, so you can focus only on them.

  • Application hangs when using ProcessStartInfo and Process.WaitForExit.

    I've looked on different threads about this, but all of them uses the Process.RedirectStandardOutput = True, which I don't.
    I'm trying to open a process (console application, not made by me) to make it compile a special .acs file to a .o file. The structure is simple, the only argument is the file you want to compile.
    But on certain files my application hangs when trying to open the process. Here's my code:
    Dim p As New Process
    Dim ps As New ProcessStartInfo
    ps.Arguments = SavePath 'Path example: "C:\Program Files (x86)\Zandronum\File.acs"
    ps.FileName = Path.Combine(System.AppDomain.CurrentDomain.BaseDirectory(), "Script Compilers\Zandronum\acc.exe")
    ps.CreateNoWindow = False
    ps.ErrorDialog = False
    ps.UseShellExecute = True
    ps.WindowStyle = ProcessWindowStyle.Hidden
    ps.WorkingDirectory = Path.GetDirectoryName(SavePath)
    Dim ErrorCaptured As Boolean = False
    Try
    p = Process.Start(ps)
    Catch ex As Exception
    ErrorCaptured = True
    End Try
    If ErrorCaptured = False Then
    p.WaitForExit()
    End If
    If ErrorCaptured = True Then
    Exit Sub
    End If
    Thanks!
    //Visual Vincent
    EDIT:
    For starting the process I use pretty much the same code that another guy made in C#. And his code is working perfectly...
    // Setup process info
    processinfo = new ProcessStartInfo();
    processinfo.Arguments = args;
    processinfo.FileName = Path.Combine(this.tempdir.FullName, info.ProgramFile);
    processinfo.CreateNoWindow = false;
    processinfo.ErrorDialog = false;
    processinfo.UseShellExecute = true;
    processinfo.WindowStyle = ProcessWindowStyle.Hidden;
    processinfo.WorkingDirectory = this.workingdir;
    try
    process = Process.Start(processinfo);
    catch(Exception e)
    // Unable to start the compiler
    General.ShowErrorMessage("Unable to start the compiler (" + info.Name + "). " + e.GetType().Name + ": " + e.Message, MessageBoxButtons.OK);
    return false;
    // Wait for compiler to complete
    process.WaitForExit();
    I hope your day has been better than yesterday, but that it's worse than tomorrow...
    Please mark as answer if I solved your problem. :)

    Hi,
     Have you compared the FileNames and Arguments of ones that work and ones that don`t? Is there any difference in them such as the ones that work do not contain blank spaces in the FileName or arguments and the ones that do work don`t contain blank spaces
    in them? If you find that to be the problem then you need to add Quotes to the beginning and end of the FileName or Arguments.
     My first guess is the Arguments needs the Quotes like this because, i see blank spaces in your example of the Arguments.
    ps.Arguments = Chr(34) & SavePath & Chr(34)
    If you say it can`t be done then i`ll try it
    This actually made it. I had forgotten that blank spaces makes it a new argument, silly me. I don't use process arguments that often. ;)
    Thanks alot!
    I hope your day has been better than yesterday, but that it's worse than tomorrow...
    Please mark as answer if I solved your problem. :)

Maybe you are looking for

  • Replacement glass

    replacement glass

  • For Movement type Enhancement

    Hi All, My requirment in Transaction code: MIGO Transfer posting, Movement type is 313 when we enter material code and plant in the supplying side in MIGO transaction it comes automatically in destination side. In case somebody changes the Material c

  • EXPORT statement in ABAP-Ecc version

    I used EXPORT FLAG TO MEMORY ID 'MB51_FLAG'. in Ecc version. when i do EPC check, i am getting error in Obsolete statments like.. EXPORT var_1 ... var_n TO MEMORY ... is not supported in the OO context. Use EXPORT name_1 from var_1 ... name_n from va

  • Accounts on Macbook

    I have a Macbook and have two accounts on it. When I power up the Macbook it loads up to the screens where you choose which account you want to logon too but next too my account there is a number in brackets next to it. Can anyone explain what this i

  • "preview" app for viewing photos

    hello, i use the preview program instead of iPhoto to view & sort my photos- but when i select and open a large amount of photos, they never open in order. i want a convenient way of doing slideshows/viewing photos in order. any thoughts?