We have happily been deploying our cross-platform SWT app with Web Start for years. On the mac we had to switch from using -XStartOnFirst to using the com.apple.concurrent.Dispatch class to get SWT to run in the first thread.
Java 7 update 55 breaks our app again, and again it seems to be Web Start related.
The app starts and displays all windows, but all interface interactions don't have an effect until you click some other widget. For example, if I click a tab to bring it to foreground, I have to then click another widget to finally get the first action to fire. This is probably threading related, like most SWT/Web Start problems but I have no workaround for this problem other than stay away from 7u55. Has anybody experienced this problem and found a workaround?
EDIT: It seems the problem stems from our use of JNA, which we use to get the idle time from the OS using CGSSecondsSinceLastInputEvent. I get a NullPointerException in JNLPClassloader in the logs. If I comment out the code that uses JNA, the problem goes away. Since Oracle seems to be paranoid with security these last months, I'm guessing there is a problem with the jna jar. I sign all jars with the same cert, but maybe there is a new manifest attribute that I should be looking at. Anybody have any ideas?
Related
I installed Eclipse IDE for Enterprise Java Developers 2020-09 with WindowBuilder 1.9.4. Then I tried to create a test application: SWT/JFace Java Project with a JFace ApplicationWindow.
My problem is that I cannot drop anything on the window directly in design mode. It is possible to add widgets to the main container in the components tree. But they seem to be hidden behind the parent shell (I could see this from setting a background color for it and when I add them I can see their bounds, but then no longer). It is not possible to resize the application window in design mode either.
However, when I do "Test/Preview...", the widgets are there. And also when I run the program, as they should as they are in the code. In the latter case also the resizing works (not with "Test/Preview..."). The resizing seems to work at first, but then it snaps back to a minimal size where only the menu and toolbar fit in the window,
This is so with any such project. I first tried to import a program I had written in an older version of Eclipse. There I have tabs in a composite in the container. They seem to be hidden, too (and misplaced, also behind the toolbar). But when I run the program, everything is fine. I first thought I might have messed something up in the program, so parsing gets sidetracked. But that cannot be it as the problem already arises in the simple test program where I have just one widget and the default code.
I have tried quite a few things to get around this, eg. reinstalled the IDE, installed an older version, installed an older version of WindowsBuilder in case this is a bug in either. But to no avail. Has anyone experienced the same problem? Seems like there is a simple mistake on my part. Something I would have to change in the settings or maybe the program?
But I have no idea where to look. Could it have to do with the JRE (OpenJDK15U-jdk_x64_windows_hotspot_15_36)? Had to take that as the download from Oracle does not work for some reason. There is a warning that it is not exactly compatible. But then the program works fine, so it cannot be at such a basic level? Any ideas very much appreciated as I am totally stuck at this point.
There is no problem with designing eg. a JFace dialog. Everything works as expected, I can drop widgets, resize, etc.
Here is how it looks:
Brute force "workaround": I go back to Oxygen where things are working fine. But somewhat of a defeat because I am stuck with an old version, which is a deadend. IIRC already going to Photon posed insurmountable problems for me (certainly my fault as I am not that good at the nitty-gritty). Would still be very interested in an answer to my question. Urgency is now lower as I can at least keep working on my program and let my frustration die down after two days of futile attempts.
[Edit: I only tried the resizing in Oxygen 32-bit, that worked, but did not check whether the problem with dropping a widget on the application window was also there. Then I tried to get the 64-bit version to run, which I could not do. There is apparently a problem with Java > 8. Installation of Photon worked finally. However, while resizing is okay there, I get the same problem with dropping widgets and that they appear to be misplaced (upper left corner of the area seems to be behind the toolbar. The "workaround" unfortunately went nowhere. So I am again more interested in an answer than I thought.]
[Edit 2 as per Oct 12: Since I could not solve this problem, I decided to redo the GUI with a SWT Application window. That lacks some of the functionality of a JFace Application window (I especially miss the ease of Actions). So it seems like a step backwards, and it caused some extra effort. But then the upside is that I had to rethink a few things about the structure anyway, which means I was forced to do that sooner than later. But still would like to get also JFace Application windows to run. Pressure is no longer there, but out of interest what went wrong.]
This is a strange problem and I could use some help figuring out what to do. I have a Java swing application that contains hyperlinks. I have dozens of users for which these links work just fine. However, I have a new user that cannot get the links to be recognized. That is when he hovers the mouse over one it does not change to a finger nor does clicking it do anything. Since this is the only user that has this problem I have to believe there is a setting somewhere that prevents links from working. He is using Windows 7 and Java 8. I cannot seem to find anything in the JRE settings that addresses this nor can I see anything in his AV software or OS settings either. Does anyone have any idea what setting and where might cause this behavior? TIA.
Short history of problem:
After upgrading to Ubuntu 15.10 I had some problems with any Qt-apps after durable work with IntellijIDEA. In apps like tortoisehg I saw painting problems, like not filled areas or shifted text. It was fixed after reading post in archlinux forum. Just set up property for Qt and changed my openjdk to oracle's.
The next story, that possibly is relative to first, consists in my work in IntellijIDEA and other Java swing applications (like Netbeans RCP): after long term working some dialogs became transparent, were inaccessible or just clicked through it to something under. Reopen of the dialog or window helps, but my colleagues have same problems on other OS, like Fedora (with KDE).
This bug is annoying, because our product is written on Netbeans and works under *nix distributive. Sometimes we stuck with problem of click-through problem: dialog or window just clicked into window after it.
I think the problem in wrong settings of x-server and in Qt- and Java- toolkit clash. This leads to artifacts on both application groups.
Does anybody stuck with this problem and do you have some ideas to resolve it?
The possible reason is described in Russian here (https://toster.ru/q/267833?e=3090918#clarification_329784).
Some bugs of it are found in:
https://bugs.kde.org/show_bug.cgi?id=350976
https://bugs.launchpad.net/ubuntu/+source/openjdk-7/+bug/1512760
Summary: the Java and Qt applications use shmem that is never cleaned by Java, after some time Qt cannot use this memory to work right. Google it with words «Java Qt shmem».
I have a legacy Java application that uses Java 1.3
It works fine on windows Xp but now I need to make it run on windows 7.
I have installed the 1.3 jdk however when it first loads, the app won't render properly. Bits of the screen just show grey background, selecting buttons won't load a new screen etc.
I do know watching the output from the app it just purely graphics not rendering properly.
However if I press "Ctrl-alt-delete" and then just press "cancel" the software runs perfectly.
If I have a second monitor plugged in, it runs perfectly.
Has anyone got any suggestions how to make app run perfectly first time.
Thanks
Firstly, update your java, no excuses not to.
You can try the hack of resizing your component to a different size and then back again. I find this is the best way to make sure that swing doesn't do this sort of mischief with black squares here and there.
These things happen from time to time with non native tools for desktop development as opposed to those specifically designed for the targeted platform.
So I am learning Google App Engine with Java. When modifying files i realized I dont always see my changes. I try clicking the red button to stop the web application in eclipse and then restarting the application however I dont see the changes. This even happens if i run chrome in incognito mode. I also have the same problem with IE and Firefox (By default i use firefox when developing due to my preference of firebug).
Also at times I will get annoyed with one project and start a new google app engine project. However the GAE will still be running the first one not the second one even though i close the project. Even worse was when i deleted the root project folder I still saw the index.html page though the links were broken for the project i deleted.
I am thinking there are two issues one is that my browser is storing these files in a cache. And the other is that I am not actually restarting the google app engine. Is the right procedure just to click the red square in the console in eclipse or is there something to run on the command line (in windows)?
To be brief , if i want to stop the GAE from in eclipse and restart it to see any changes i made whats the easiest way to do this on windows?
Thanks
edit:
Rumor has it that adding Google Web Toolkit to the project made my App Engine launch show up in the Development Mode pane, where it could be easily be killed or restarted. Is handling this issue this way a wise idea?
Trying out this touch command idea, i was hoping there was a command line way to restart the server similar to ruby on rails
the answer by dragon in this question would be helpful if it had more detail
The red button will stop it. You shouldn't need to run anything from the command line.
What you should do though is look at "Developement Mode" view and confirm nothing is running. It's under Window-->show view -->Other--> Google. Clicking on the gray arrows will show you what is open (running or not). Also, you can press the grey Xs to clear all stopped instances. This should confirm if something is running.
Also, look under run --> run configurations -->server. You have an option to set the port, or have it automatically set. If you are trying to run more than one project, your second one may not start if the first one has already taken the port. Keep that in mind.
As far as your browser storing Dev Mode page in cache, I don't think it can. In fact, if you close the running dev mode in instance your browser page should immediately update reflecting the fact that it has lost a connection. If it doesn't, surely you didn't manage to shut it down.
Ok, so I said the red button will stop it and it will, but you have to get the right red button. If you have more than one instance running, again look at the "Developement Mode" view, there is only one red button and you have to use the grey arrows I mention to get focus on the dev mode instance you want.
It's not really that complicated and you'll have it down by tommorrow!
Here is the Dev. Mode view. You can see I have three instances. The first is actually running, but shows red as there was an error. Clicking the grey grey Xs will get rid of the second two non-running instances and clicking the document icon with one grey x (it's not greyed out), will clear the log from the current running instance and remove the red x as there would then be no errors in the log.
Got it?