Servoy 8.3.1

Servoy announcements

Servoy 8.3.1

Postby jcompagner » Thu Jul 26, 2018 12:59 pm

We are pleased to announce the availability of Servoy 8.3.1 (releasenumber 3205)

This version is available through our download site

The update site is: http://download.servoy.com/developer/8xx_updates/

There are, compared to the 8.3.1rc a few developer fixes for debugging and some NGClient fixes:

fixes


see for the changes in 8.3:

Whats new

fixes done in 8.3.1rc:
8.3.1RC fixes and feature

Also check the new feature out for parsing/validating javascript code, we like to have that tested and looked at so we can enable that by default for 8.4
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 8.3.1

Postby briese-it » Tue Aug 07, 2018 10:58 am

Since updating to 8.3.1 I have problems with formatting dates on the Application server (developer is running fine).

Code:
Code: Select all
var fsQuery_Exname = databaseManager.createSelect("db:/boss_sql/exnamen");
      fsQuery_Exname.result.addPk();
      fsQuery_Exname.sort.add(fsQuery_Exname.columns.taufdat.asc);
      fsQuery_Exname.where.add(fsQuery_Exname.columns.vessel_nr.eq(vesselNo));
      fsQuery_Exname.where.add(fsQuery_Exname.columns.taufdat.between(utils.dateFormat(searchDate, "yyyy-MM-dd"),utils.dateFormat(new Date(), "yyyy-MM-dd")));
      /** @type {JSFoundSet<db:/boss_sql/exnamen>} */
      var fs = databaseManager.getFoundSet(fsQuery_Exname);


Error:
Exception in thread "AWT-EventQueue-2" java.lang.NoClassDefFoundError: org/joda/time/format/ISODateTimeFormat
at com.servoy.j2db.persistence.Column.getAsRightType(Column.java:434)
at com.servoy.j2db.querybuilder.impl.QBSelect.getAsRightType(QBSelect.java:549)
at com.servoy.j2db.querybuilder.impl.QBSelect.createOperand(QBSelect.java:536)
at com.servoy.j2db.querybuilder.impl.QBColumn.createOperand(QBColumn.java:93)
at com.servoy.j2db.querybuilder.impl.QBColumn.between(QBColumn.java:155)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
at java.lang.reflect.Method.invoke(Unknown Source)
at org.mozilla.javascript.MemberBox.invoke(MemberBox.java:138)
at org.mozilla.javascript.NativeJavaMethod.call(NativeJavaMethod.java:292)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
at org.mozilla.javascript.gen.br_boss_globals_scopes_bossGlobals_search_getVesselExname_1046._c_getVesselExname_0(Unknown Source)
at org.mozilla.javascript.gen.br_boss_globals_scopes_bossGlobals_search_getVesselExname_1046.call(Unknown Source)
at com.servoy.j2db.scripting.RecordingFunction.call(RecordingFunction.java:40)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
at org.mozilla.javascript.gen.br_boss_globals_calculations_boss_sql_research_contracts_vesselNameBeginOfContract_1045._c_vesselNameBeginOfContract__0(Unknown Source)
at org.mozilla.javascript.gen.br_boss_globals_calculations_boss_sql_research_contracts_vesselNameBeginOfContract_1045.call(Unknown Source)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:665)
at com.servoy.j2db.scripting.TableScope.getCalculationValue(TableScope.java:187)
at com.servoy.j2db.scripting.TableScope.getCalculationValue(TableScope.java:215)
at com.servoy.j2db.dataprocessing.FoundSet.getCalculationValue(FoundSet.java:3761)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:222)
at com.servoy.j2db.dataprocessing.Record.getValue(Record.java:185)
at com.servoy.j2db.dataprocessing.DataAdapterList.getValueObject(DataAdapterList.java:900)
at com.servoy.j2db.dataprocessing.DataAdapterList.getValueObject(DataAdapterList.java:877)
at com.servoy.j2db.smart.dataui.CellAdapter.valueChanged(CellAdapter.java:1736)
at com.servoy.j2db.dataprocessing.DataAdapterList.valueChanged(DataAdapterList.java:474)
at com.servoy.j2db.dataprocessing.ModificationSubject.fireModificationEvent(ModificationSubject.java:78)
at com.servoy.j2db.scripting.ScriptVariableScope.fireModificationEvent(ScriptVariableScope.java:483)
at com.servoy.j2db.scripting.ScriptVariableScope.put(ScriptVariableScope.java:445)
at com.servoy.j2db.scripting.ScriptVariableScope.put(ScriptVariableScope.java:310)
at com.servoy.j2db.scripting.FormScope.put(FormScope.java:465)
at org.mozilla.javascript.ScriptableObject.putProperty(ScriptableObject.java:2544)
at org.mozilla.javascript.ScriptRuntime.setName(ScriptRuntime.java:2084)
at org.mozilla.javascript.gen.br_boss_globals_forms_boss_svy_framework_extensions_onRecordSelection_964._c_onRecordSelection_0(Unknown Source)
at org.mozilla.javascript.gen.br_boss_globals_forms_boss_svy_framework_extensions_onRecordSelection_964.call(Unknown Source)
at org.mozilla.javascript.optimizer.OptRuntime.call2(OptRuntime.java:42)
at org.mozilla.javascript.gen.br_boss_research_personnel_forms_br_boss_research_contracts_contract_tbl_onRecordSelection_963._c_onRecordSelection_0(Unknown Source)
at org.mozilla.javascript.gen.br_boss_research_personnel_forms_br_boss_research_contracts_contract_tbl_onRecordSelection_963.call(Unknown Source)
at org.mozilla.javascript.ContextFactory.doTopCall(ContextFactory.java:399)
at org.mozilla.javascript.ScriptRuntime.doTopCall(ScriptRuntime.java:3534)
at org.mozilla.javascript.gen.br_boss_research_personnel_forms_br_boss_research_contracts_contract_tbl_onRecordSelection_963.call(Unknown Source)
at com.servoy.j2db.scripting.ScriptEngine.executeFunction(ScriptEngine.java:665)
at com.servoy.j2db.BasicFormController.executeFunction(BasicFormController.java:1067)
at com.servoy.j2db.BasicFormController.executeFormMethod(BasicFormController.java:786)
at com.servoy.j2db.BasicFormController.executeOnRecordSelect(BasicFormController.java:684)
at com.servoy.j2db.FormController.refreshAllPartRenderers(FormController.java:723)
at com.servoy.j2db.BasicFormController.valueChanged(BasicFormController.java:507)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.fireValueChanged(AlwaysRowSelectedSelectionModel.java:260)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.fireValueChanged(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.changeSelection(Unknown Source)
at javax.swing.DefaultListSelectionModel.setSelectionInterval(Unknown Source)
at com.servoy.j2db.util.model.AlwaysRowSelectedSelectionModel.setSelectionInterval(AlwaysRowSelectedSelectionModel.java:333)
at com.servoy.j2db.gui.FixedJTable.processMouseEvent(FixedJTable.java:136)
at java.awt.Component.processEvent(Unknown Source)
at java.awt.Container.processEvent(Unknown Source)
at java.awt.Component.dispatchEventImpl(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(Unknown Source)
at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
at java.awt.Container.dispatchEventImpl(Unknown Source)
at java.awt.Window.dispatchEventImpl(Unknown Source)
at java.awt.Component.dispatchEvent(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.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(Unknown Source)
at java.awt.EventQueue$4.run(Unknown Source)
at java.awt.EventQueue$4.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)

After that I went back to 8.3.0 and now I have the same error on the old version, too.

Changing
fsQuery_Exname.where.add(fsQuery_Exname.columns.taufdat.between(utils.dateFormat(searchDate, "yyyy-MM-dd"),utils.dateFormat(new Date(), "yyyy-MM-dd")));
to
fsQuery_Exname.where.add(fsQuery_Exname.columns.taufdat.between(searchDate,new Date()));

is running fine.

What happend and how to solve it?
Michael Harms
Briese Schiffahrts GmbH & Co.KG, Germany
- Servoy 2020.3.3.3565_LTS Running on Windows 2019 DataCenter - MSSQL2017 & PostGreSQL
User avatar
briese-it
 
Posts: 171
Joined: Mon Jun 20, 2011 1:50 pm
Location: Leer, Germany

Re: Servoy 8.3.1

Postby jcompagner » Tue Aug 07, 2018 3:35 pm

thats weird this can mean 2 things
or you don't have joda-time.jar in your classpath (so the servoy_server.bat doesn't have it as an entry in the classpath)

or that file is somehow completely gone, no idea how that can happen, our update package should not do that.
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 8.3.1

Postby jcompagner » Tue Aug 07, 2018 3:53 pm

i see that this is really a stacktrace of a smart client
Such a client doesn't get the joda-time.jar (that was until now really a server side jar, only used for ngclient and webclient)
but now you also seem to need this in the smart client so we need to send this lib to the the client also through jnlp

A workaround for now would be to use the bootstrap.jar and reference that joda-time.jar in the bootstrap.jnlp

what you also can do is for example take the http.jar,jnlp file in the plugins dir
and add this line: <jar href="/lib/joda-time.jar" download="eager" version="%%version%%"/>

just below the last <jar>
Then that plugin should take care of the joda time download
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 8.3.1

Postby briese-it » Tue Aug 07, 2018 4:38 pm

Hi Johan,
adding the line <jar href="/lib/joda-time.jar" download="eager" version="%%version%%"/> was the trick, perfect.

Iam using the bootstrap, too. What syntax do I have to use to reference the jar? <jar href="/lib/joda-time.jar" download="eager" version="%%version%%"/> is not working. Think because of the file path?
Michael Harms
Briese Schiffahrts GmbH & Co.KG, Germany
- Servoy 2020.3.3.3565_LTS Running on Windows 2019 DataCenter - MSSQL2017 & PostGreSQL
User avatar
briese-it
 
Posts: 171
Joined: Mon Jun 20, 2011 1:50 pm
Location: Leer, Germany

Re: Servoy 8.3.1

Postby jcompagner » Tue Aug 07, 2018 5:00 pm

and %%version%% should have a fixed version like "1"
but if you add it in the http.jar.jnlp

then also boostrap will pick it up just fine (bootstrapper uses the same jnlps for download)

and you have to make sure that the path is correctly relative to the bootstrap.jnlp/jar
(you could even copy the joda.jar besides bootstrap.jar and just add it without a path)
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet

Re: Servoy 8.3.1

Postby jcompagner » Tue Aug 07, 2018 5:00 pm

i created case to fix it for the main.jnlp
Johan Compagner
Servoy
User avatar
jcompagner
 
Posts: 8829
Joined: Tue May 27, 2003 7:26 pm
Location: The Internet


Return to Announcements

Who is online

Users browsing this forum: No registered users and 19 guests