Page 1 of 2

Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 11:42 am
by briese-it
I updated the Java Runtime on a client to version 1.8.0.241 (Windows 10 x64) and now I can not start the SmartClient. The solution begins to start and after logging in to my solution I get the error "Cannot load solution" and have to close the window.

I have the following error in the Java console log:
Code: Select all
SCHWERWIEGEND: Method is not Remote: interface com.servoy.j2db.persistence.IRepository::public abstract java.util.List com.servoy.j2db.persistence.IRepository.getActiveSolutionModuleMetaDatas(int) throws java.rmi.RemoteException,com.servoy.j2db.persistence.RepositoryException
java.rmi.RemoteException: Method is not Remote: interface com.servoy.j2db.persistence.IRepository::public abstract java.util.List com.servoy.j2db.persistence.IRepository.getActiveSolutionModuleMetaDatas(int) throws java.rmi.RemoteException,com.servoy.j2db.persistence.RepositoryException
   at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(Unknown Source)
   at java.rmi.server.RemoteObjectInvocationHandler.invoke(Unknown Source)
   at com.sun.proxy.$Proxy15.getActiveSolutionModuleMetaDatas(Unknown Source)
   at com.servoy.j2db.ClientRepository.getActiveSolutionModuleMetaDatas(ClientRepository.java:165)
   at com.servoy.j2db.FlattenedSolution.setSolution(FlattenedSolution.java:650)
   at com.servoy.j2db.ClientState.loadSolutionsAndModules(ClientState.java:1456)
   at com.servoy.j2db.smart.J2DBClient.loadSolutionsAndModules(J2DBClient.java:2030)
   at com.servoy.j2db.smart.J2DBClient$16.run(J2DBClient.java:1978)
   at java.awt.event.InvocationEvent.dispatch(Unknown Source)
   at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
   at java.awt.EventQueue.access$500(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.awt.EventQueue$3.run(Unknown Source)
   at java.security.AccessController.doPrivileged(Native Method)
   at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
   at java.awt.EventQueue.dispatchEvent(Unknown Source)
   at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
   at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
   at java.awt.EventDispatchThread.run(Unknown Source)


Any ideas?

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 11:46 am
by jcompagner
this is a known problem already: https://support.servoy.com/browse/SVY-14561

i am looking in to it, but they broke something in Java that somehow that method is not seen as a remote method (which it really is)

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 11:53 am
by briese-it
Thanks for your quick reply Johan. Hope this can be fixed soon :-)

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 12:22 pm
by Bernd.N
Same problem for our customer who runs Servoy 7.4 smart client.

I just found a weblink that explains how to start a different Java version for a specific app:
https://gatkforums.broadinstitute.org/gatk/discussion/6841/i-need-to-run-programs-that-require-different-versions-of-java

Would that be possible to do also for a Servoy 7.4 smart client, to tell him to use an older Java version?
That way, users could update Java to the latest version and run Java 8u231 (issued Oct. 2019) still for the Servoy app.

Sure, it should be a fix that can be done easily without rocket science, as all users would have to do it.

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 12:46 pm
by jcompagner
the above link is really specific to a linux system thing.
We use webstart so jnlp with that you can set a fix java version:

https://docs.oracle.com/javase/7/docs/t ... #resources

This can't be controlled by the default jnlp we generate because we only have the option to select a full major java version with:

servoy.smartclient.min_java_version:
servoy.smartclient.max_java_version:

but if you use the bootstrapper: https://wiki.servoy.com/pages/viewpage. ... d=23856169

you can do this. so add a j2se tag like:

<j2se version="1.8.0_162" initial-heap-size="30m" java-vm-args="-XX:SoftRefLRUPolicyMSPerMB=3600000" />

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 1:28 pm
by Bernd.N
Thank you, that is an interesting solution.

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 1:35 pm
by LXS
Same issue with Servoy 7.4 here...
Sounds like a customer mailing with a warning to not install Java 8 Update 241.

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 1:41 pm
by jcompagner
i have it reproduced in a small example (and i know what todo to fix it)
but this is not a really small change and i need to look if we do that same structure on more places..

i will also create a bug report for oracle, because it seems to me they broke something that should just work.

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 3:15 pm
by briese-it
Well noted, thank you

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Wed Jan 15, 2020 4:55 pm
by Harjo
we have the same problem with Servoy 7.4.x smartclient solutions.
It shows the login solution, but after login we get the error: Solution kan niet geladen worden: DirectManager

Code: Select all
SEVERE: Throwable
java.rmi.RemoteException: Method is not Remote: interface com.servoy.j2db.persistence.IRepository::public abstract java.util.List com.servoy.j2db.persistence.IRepository.getActiveSolutionModuleMetaDatas(int) throws java.rmi.RemoteException,com.servoy.j2db.persistence.RepositoryException
         at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:232)
         at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:180)
         at com.sun.proxy.$Proxy18.getActiveSolutionModuleMetaDatas(Unknown Source)
         at com.servoy.j2db.ClientRepository.getActiveSolutionModuleMetaDatas(ClientRepository.java:165)
         at com.servoy.j2db.FlattenedSolution.setSolution(FlattenedSolution.java:599)
         at com.servoy.j2db.ClientState.loadSolutionsAndModules(ClientState.java:1438)
         at com.servoy.j2db.smart.J2DBClient.loadSolutionsAndModules(J2DBClient.java:1999)
         at com.servoy.j2db.smart.J2DBClient$16.run(J2DBClient.java:1948)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
         at java.awt.EventQueue.access$500(EventQueue.java:97)
         at java.awt.EventQueue$3.run(EventQueue.java:709)
         at java.awt.EventQueue$3.run(EventQueue.java:703)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Jan 15, 2020 3:46:08 PM com.servoy.j2db.util.Debug error
SEVERE: Solution kan niet geladen worden DirectManager
java.rmi.RemoteException: Method is not Remote: interface com.servoy.j2db.persistence.IRepository::public abstract java.util.List com.servoy.j2db.persistence.IRepository.getActiveSolutionModuleMetaDatas(int) throws java.rmi.RemoteException,com.servoy.j2db.persistence.RepositoryException
         at java.rmi.server.RemoteObjectInvocationHandler.invokeRemoteMethod(RemoteObjectInvocationHandler.java:232)
         at java.rmi.server.RemoteObjectInvocationHandler.invoke(RemoteObjectInvocationHandler.java:180)
         at com.sun.proxy.$Proxy18.getActiveSolutionModuleMetaDatas(Unknown Source)
         at com.servoy.j2db.ClientRepository.getActiveSolutionModuleMetaDatas(ClientRepository.java:165)
         at com.servoy.j2db.FlattenedSolution.setSolution(FlattenedSolution.java:599)
         at com.servoy.j2db.ClientState.loadSolutionsAndModules(ClientState.java:1438)
         at com.servoy.j2db.smart.J2DBClient.loadSolutionsAndModules(J2DBClient.java:1999)
         at com.servoy.j2db.smart.J2DBClient$16.run(J2DBClient.java:1948)
         at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
         at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:758)
         at java.awt.EventQueue.access$500(EventQueue.java:97)
         at java.awt.EventQueue$3.run(EventQueue.java:709)
         at java.awt.EventQueue$3.run(EventQueue.java:703)
         at java.security.AccessController.doPrivileged(Native Method)
         at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:74)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:728)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:205)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Thu Jan 16, 2020 12:53 pm
by Harjo
I understand there is a fix for the latest Servoy version 2019.12, but is it also clear, if this can be (or will be :? ) fixed for Servoy 7.4.11?

Yes we are in the process of upgrading to the latest version, but we cannot go live in short notice.

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Thu Jan 16, 2020 2:07 pm
by chaitanyas
Hi Everyone,


We are also facing the same issue with Java 8u241 and we are not sure what's next step to fix this issue ?, do you think, using Open Webstart (https://openwebstart.com/ ) is the alternative solution for this ? and if so, is there any other implications of using OpenWebstart to run the smart client ?

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Thu Jan 16, 2020 2:36 pm
by jcompagner
this has nothing todo this time with webstart.
But it has something todo with RMI (so how smart client talks/communicates to the server)

besides that i don't think stuff like openwebstart of icedteaweb will work just like that.. That will only work if they expose the same classes to the system as java webstart does (seems unlikely, not 100% sure) if they don't then that just means that servoy needs to be adjusted for that to be able to load and run the smartclient. So this could potentially only work for a coming release of servoy but there are no plans to look into this.

We have the bootstrapper to work around most webstart problems, and that can even run in a full stand alone mode (without webstart) but you need Servoy 8.3.3 or higher for that.

i am trying currently to make a 74 patch but can't promise anything, because of all the old stuff that we need to support this that is already cleaned up. Our build server doesn't built 7.4 anymore (for almost a year)
People really need to move forward.

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Sat Jan 18, 2020 2:02 pm
by lwjwillemsen
Hi Johan,

i will also create a bug report for oracle, because it seems to me they broke something that should just work.


Do you have a Oracle case id so I can follow the developments on Oracle side?

Thanks and regards,

Re: Smart Client Startup with Java 1.8.0.241

PostPosted: Mon Jan 20, 2020 10:27 am
by jcompagner
no that is just internal id, its not public, i can't even see that one anymore.
But don't have your hopes up, this will very likely not be fixed by them, at least i am not going to assume that.
_
We will be making releases of 2019.12.1 and 2019.03.2_LTS for this.