Java 8 support

Post any questions regarding Installing or Upgrading Ebase, including problems starting up the Ebase Xi Server or Designer

Moderators: Jon, Steve, Ian, Dave

User avatar
dvanhussel
Ebase User
Posts: 161
Joined: Fri Oct 19, 2007 12:45 pm
Location: Haarlem, the Netherlands

Java 8 support

#1

Postby dvanhussel » Sat Jun 21, 2014 11:12 am

Hi,

Is Java 8 SE supported as jre for Ebase?

I have tried to use it with Java 1.8.0_05 (Oracle Corporation) and Apache Tomcat/7.0.27 on Windows 8.1 64bit.

I replaced the jre folder that is supplied by the Ebase installer with the jre folder of Java 8 SE.

The server starts up without errors and the client seems to work as expected.
But when I try to run a simple form the browser displays:

Code: Select all

 Unexpected error occurred - see server log
On the server this is logged:

Code: Select all

za jun 21 14:01:13: ERROR Unexpected exception initialising form
com.ebasetech.xi.exceptions.FormRuntimeException: java.lang.RuntimeException: java.io.IOException: invalid constant type: 15
	at com.ebasetech.ufs.runtime.external.api.impl.ApiClassBuilder.makePagesApiImpl(ApiClassBuilder.java:303)
	at com.ebasetech.ufs.runtime.RuntimeForm.makePagesApiImpl(RuntimeForm.java:1426)
	at com.ebasetech.ufs.runtime.RuntimeForm.generateFormAPIClasses(RuntimeForm.java:390)
	at com.ebasetech.ufs.runtime.RuntimeHeadless.generateAPIClasses(RuntimeHeadless.java:858)
	at com.ebasetech.ufs.runtime.RuntimeForm.initialise(RuntimeForm.java:119)
	at com.ebasetech.ufs.runtime.FormEngine.makeRuntimeHeadless(FormEngine.java:653)
	at com.ebasetech.ufs.runtime.FormEngine.getRuntimeHeadless(FormEngine.java:513)
	at com.ebasetech.ufs.runtime.FormEngine.getRuntimeForm(FormEngine.java:446)
	at com.ebasetech.ufs.runtime.FormUserState.lookupRuntimeFormInFormEngine(FormUserState.java:152)
	at com.ebasetech.ufs.runtime.FormUserState.resetRuntimeForm(FormUserState.java:132)
	at com.ebasetech.ufs.runtime.HeadlessUserState.hookupRuntime(HeadlessUserState.java:396)
	at com.ebasetech.ufs.runtime.FormEngineSession.registerRuntimeUsed(FormEngineSession.java:15)
	at com.ebasetech.ufs.runtime.UserState.setUserForm(UserState.java:183)
	at com.ebasetech.ufs.runtime.UserState.setUserForm(UserState.java:154)
	at formservlets.FormProcessingUtil.initialiseForm(FormProcessingUtil.java:399)
	at formservlets.FormProcessor.initialiseForm(FormProcessor.java:112)
	at formservlets.FormProcessor.prepareForm(FormProcessor.java:97)
	at formservlets.FormProcessor.runForm(FormProcessor.java:44)
	at formservlets.FormClient.process(FormClient.java:112)
	at formservlets.FormClient.doGet(FormClient.java:46)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
	at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at formservlets.EbaseFilter.processHtmlRequest(EbaseFilter.java:291)
	at formservlets.EbaseFilter.processRequest(EbaseFilter.java:197)
	at formservlets.EbaseFilter.performFilter(EbaseFilter.java:141)
	at formservlets.EbaseFilter.doFilter(EbaseFilter.java:94)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:225)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:169)
	at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:98)
	at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:927)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:999)
	at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:565)
	at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:1812)
	at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
	at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.RuntimeException: java.io.IOException: invalid constant type: 15
	at javassist.CtClassType.getClassFile2(CtClassType.java:203)
	at javassist.CtClassType.subtypeOf(CtClassType.java:303)
	at javassist.CtClassType.subtypeOf(CtClassType.java:318)
	at javassist.compiler.MemberResolver.compareSignature(MemberResolver.java:247)
	at javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:119)
	at javassist.compiler.MemberResolver.lookupMethod(MemberResolver.java:96)
	at javassist.compiler.TypeChecker.atMethodCallCore(TypeChecker.java:704)
	at javassist.compiler.TypeChecker.atCallExpr(TypeChecker.java:681)
	at javassist.compiler.JvstTypeChecker.atCallExpr(JvstTypeChecker.java:156)
	at javassist.compiler.ast.CallExpr.accept(CallExpr.java:45)
	at javassist.compiler.TypeChecker.atFieldAssign(TypeChecker.java:275)
	at javassist.compiler.JvstTypeChecker.atFieldAssign(JvstTypeChecker.java:83)
	at javassist.compiler.TypeChecker.atAssignExpr(TypeChecker.java:229)
	at javassist.compiler.ast.AssignExpr.accept(AssignExpr.java:38)
	at javassist.compiler.CodeGen.doTypeCheck(CodeGen.java:241)
	at javassist.compiler.CodeGen.atStmnt(CodeGen.java:329)
	at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
	at javassist.compiler.CodeGen.atStmnt(CodeGen.java:350)
	at javassist.compiler.ast.Stmnt.accept(Stmnt.java:49)
	at javassist.compiler.CodeGen.atMethodBody(CodeGen.java:291)
	at javassist.compiler.Javac.compileBody(Javac.java:222)
	at javassist.CtBehavior.setBody(CtBehavior.java:401)
	at javassist.CtBehavior.setBody(CtBehavior.java:375)
	at com.ebasetech.ufs.runtime.external.api.impl.ApiClassBuilder.buildPagesApiClass(ApiClassBuilder.java:335)
	at com.ebasetech.ufs.runtime.external.api.impl.ApiClassBuilder.makePagesApiImpl(ApiClassBuilder.java:296)
	... 43 more
Caused by: java.io.IOException: invalid constant type: 15
	at javassist.bytecode.ConstPool.readOne(ConstPool.java:1090)
	at javassist.bytecode.ConstPool.read(ConstPool.java:1033)
	at javassist.bytecode.ConstPool.<init>&#40;ConstPool.java&#58;149&#41;
	at javassist.bytecode.ClassFile.read&#40;ClassFile.java&#58;764&#41;
	at javassist.bytecode.ClassFile.<init>&#40;ClassFile.java&#58;108&#41;
	at javassist.CtClassType.getClassFile2&#40;CtClassType.java&#58;190&#41;
	... 67 more
I have tried using both 32bit and 64bit versions of the Java 8 SE jre.

Is there a way to make this work because I would like to use some of the new language features (i.e. Lambdas) introduced with Java 8 SE?

Thanks,

David
0 x

User avatar
dvanhussel
Ebase User
Posts: 161
Joined: Fri Oct 19, 2007 12:45 pm
Location: Haarlem, the Netherlands

Fixed

#2

Postby dvanhussel » Sat Jun 21, 2014 11:23 am

With a bit more Googling I found a solution:

http://www.symphonious.net/2014/03/21/j ... t-type-15/

This is a bug in javassist, which is used by Ebase. I replaced javassist-3.14.jar in /tomcat/webapps/ufs/WEB-INF/lib with the most recent one from:

https://github.com/jboss-javassist/javassist/releases

Now this form works as expected. I will do some more testing.

But my question still remains, is Java 8 officially supported by Ebase?

If so, this jar file should be replaced in the Ebase distribution package.
0 x

Jon
Moderator
Moderator
Posts: 1342
Joined: Wed Sep 12, 2007 12:49 pm

#3

Postby Jon » Mon Jun 23, 2014 7:37 am

David,

We haven't yet formally tested Java 8, so the the answer to your question is it supported by Ebase would have to be "no" for the time being.

Having said that, we generally expect new versions of Java to have very little impact - perhaps there are a couple of areas that need small changes - like the problem with javaassist that you have found. We will include the latest version of javaassist in the next service pack.

If you want to continue testing with Java 8, we will try and help you with any problems.

Regards
Jon
0 x

User avatar
dvanhussel
Ebase User
Posts: 161
Joined: Fri Oct 19, 2007 12:45 pm
Location: Haarlem, the Netherlands

#4

Postby dvanhussel » Wed Jun 25, 2014 7:26 am

Hi Jon,

Thank you for your reply. If run in to any problems using Java 8 i will post them here.

Regards,

David
0 x


Who is online

Users browsing this forum: No registered users and 6 guests