Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Locking up with 1.8.0_161 Java Update
#1
Guys,

We've encountered a situation where a large number of our customers are locking up when they switch out of the client app and back if the active control is a ULCTextField with a focus listener added. I've got a very simple stand alone program (see below) that demonstrates the issue. It's affecting about 20% of our customers, and I can reproduce this on my own development machine. 

We're running RIA Suite v2014.u4. It happens both in deployed apps and in development mode. All our customers are using Windows work stations, and it has happened across many version of the O/S including Windows 10.

To demonstrate the problem, compile and launch the program below. Type anything into the ULCTextField. Switch to another program and back again once or twice. The Canoo app will display the spinning wheel and be unusable from that point on.

Any ideas? At this point we're having those customers with issues roll back to Java 1.8.0_152 which appears to fix the problem, but long term we will need a real solution.

James



package aa.test;


import com.ulcjava.base.application.AbstractApplication;
import com.ulcjava.base.application.ULCBoxPane;
import com.ulcjava.base.application.ULCFrame;
import com.ulcjava.base.application.ULCTextField;
import com.ulcjava.base.application.datatype.ULCStringDataType;
import com.ulcjava.base.application.event.FocusEvent;
import com.ulcjava.base.application.event.IFocusListener;
import com.ulcjava.base.development.DevelopmentRunner;
import com.ulcjava.base.shared.internal.VersionInfo;

import java.io.Serializable;


public class TestULC extends AbstractApplication implements Serializable
{
    private static final long serialVersionUID = VersionInfo.sSerialVersionUID;

    private ULCFrame frame;
    private ULCBoxPane boxPane;

    public void start()
    {
        frame = new ULCFrame("Test");

        ULCTextField tf = new ULCTextField();

        tf.addFocusListener(new IFocusListener()
        {
            int counter = 1;

            @Override
            public void focusGained(FocusEvent focusEvent)
            {
                System.out.println("In focus gained " + counter++);
            }

            @Override
            public void focusLost(FocusEvent focusEvent)
            {
                System.out.println("In focus lost " + counter++);
            }
        });

        ULCStringDataType newType = new ULCStringDataType(30);
        tf.setDataType(newType);

        boxPane = new ULCBoxPane(true);
        boxPane.add(ULCBoxPane.BOX_EXPAND_EXPAND, tf);

        frame.setDefaultCloseOperation(ULCFrame.TERMINATE_ON_CLOSE);
        frame.add(boxPane);
        frame.setVisible(true);
    }

    public static void main(String[] args)
    {
        DevelopmentRunner.setApplicationClass(TestULC.class);
        DevelopmentRunner.main(args);
    }
}
Reply
#2
Hi James,

Thanks for reporting this.

Can you please tell me which company are you working for?

I ran your snippet with Java 8_162 and I am able to reproduce the issue.

However, if I run the snippet with older versions of Java 8 u92 and u131 that I have the problem does not occur.

Yesterday, someone else has also reported issue with Java 8_162.

Seem like a Java 8_162 problem. Let's wait for a fix else use an older version of Java 8.

Thanks

Janak
Reply
#3
Hi Janak,

I work for Andreoli & Associates. This problem was reported to us by customers who took the 161 update yesterday morning. Before that everything was fine.     

James
Reply
#4
Janak,

One further update. We tried temporarily working around the issue by installing our own focus listener on the underlying Swing object and using invokeULC to manage our own focus events. This seemed to work initially, but further testing showed there were still problems and it was still possible to lock up the ULC the session. Has there been any acknowledgement by Oracle that there is an issue in the latest version? Have your folks looked into the exact nature of the problem to confirm where this issue is coming from?

James
Reply
#5
Hi James,

The problem seems to be only for Windows:

On windows:
Java 9 – Ok
Java 8_152 : Ok
Java 8_161/2 : Not Ok

On Linux with Java 8 161, : Ok

On Mac with Java 8 u 121 and Java 9 : Ok

I am investigating. Also looking at changes between 161 and its prev version 152. Something changed between 152 and 161 that is causing this problem. Seems to be related to textcomponents and focus.

Btw, I did not find any developer license in the name Andreoli & Associates. Can you please give me details of your developer license and also how many licenses you have and ho many developers are developing with ULC.

Thanks

Janak
Reply
#6
Janak,

Our customers have been asking us to update them on the status of this issue. At this point, they cannot update their java client, and some of them are required to do so. Where are you at on this issue at?

James
Reply
#7
Hi James,

The issue is there on Java 8 update 161/162 on Windows only.

We are debugging it and it seems that an idle check event that we post to check if the AwtEventQueue is empty before starting a roundtrip is not getting dispatched only in the situations for FocusGained event for Text components like TextField and TextArea. So far we have not found the reason why theidle check event is not dispatched only for this event and this component while it is successfully dispatched for say focus gained on a button. And also why this particular version of Java on Windows only.

Searching on internet has not thrown up anything. We are continuing investigations.

The current work around is to use use the previous version of Java 8 i.e. Java 8 u 152 in place of Java 8 u 161/162.

Thanks

Janak
Reply
#8
Hi

https://bugs.openjdk.java.net/browse/JDK-8195830

Thanks

Janak
Reply
#9
we are currently preparing a RIA-Suite bugfix release.
It took some time for to find a appropriate workaround for this JDK issue (see the post of Janak above).  If no further problems arise, this bugfix release will be available at the end of the week. As soon the release is ready and tested we will inform you. 

Regards

Andreas
Reply
#10
Hello,

Please try ULC 8.0.5 from https://ci.canoo.com/nexus/content/repos...canoo/ulc/ and provide feedback.

Thanks

Janak
Reply


Possibly Related Threads...
Thread Author Replies Views Last Post
  ULC locking up with Java 8.171 James 5 1'734 05-16-2018, 10:57 AM
Last Post: whaid

Forum Jump: