what error is this?

Post any questions you have about using the Verj.io Studio, including client and server-side programming with Javascript or FPL, and integration with databases, web services etc.

Moderators: Jon, Steve, Ian, Dave

t4nu
Ebase User
Posts: 305
Joined: Thu Jul 02, 2015 8:32 am
Location: Indonesia

what error is this?

#1

Postby t4nu » Sun Jul 03, 2016 5:22 pm

Hi,
One of the my ebase application suddenly gave this error when run:

javassist.CannotCompileException: by java.lang.ClassFormatError: Invalid method Code length 74999 in class file TEXTS_mainPPForm_2eeba1f1

What should I do to fix it? I see nothing in the log.
0 x

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

#2

Postby Jon » Mon Jul 04, 2016 8:43 am

It looks like there is a limit on the number of texts in a form and that you've reached the limit. How many texts do you have? - you can find this out by looking in the texts directory for the form in the repository. There is no solution for this problem at the moment other than reducing the number of texts or splitting the form in two. For info, each form field and table column reserves multiple texts even though these may not be used.

I'll raise a bug for this as it's something that can be fixed by Ebase. But it won't be available until the next release.
0 x

t4nu
Ebase User
Posts: 305
Joined: Thu Jul 02, 2015 8:32 am
Location: Indonesia

#3

Postby t4nu » Mon Jul 04, 2016 8:59 am

Do you mean the number of files in the texts folder? If so there are only 5 files.
If you mean number of text in the (for e.g.) EN.properties file then it's 1399.

Concerning splitting the form, is there any easy method to do it? I notice there is copy option but still most of the time I still have to do a retype.

Another question, if I add the text or field to the form, I know that the text reference can be change to the existing one, the question, is the new added text reference will be deleted if I change it to the existing one or I have to delete it manually?
Jon wrote:It looks like there is a limit on the number of texts in a form and that you've reached the limit. How many texts do you have? - you can find this out by looking in the texts directory for the form in the repository. There is no solution for this problem at the moment other than reducing the number of texts or splitting the form in two. For info, each form field and table column reserves multiple texts even though these may not be used.

I'll raise a bug for this as it's something that can be fixed by Ebase. But it won't be available until the next release.
0 x

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

#4

Postby Jon » Mon Jul 04, 2016 9:54 am

It's the number of texts, not files. And 1399 is nowhere near 74999 so I'm not sure what is happening. Could you please export the form and send it to support@ebasetech.com and we'll check it out.

If you change a text reference, the old one should be deleted.
0 x

t4nu
Ebase User
Posts: 305
Joined: Thu Jul 02, 2015 8:32 am
Location: Indonesia

#5

Postby t4nu » Wed Jul 06, 2016 9:37 am

Hi,
I have tried to split the form, but still the same error show up.
OK. I will send the form support then.
Thank you.
Jon wrote:It's the number of texts, not files. And 1399 is nowhere near 74999 so I'm not sure what is happening. Could you please export the form and send it to support@ebasetech.com and we'll check it out.

If you change a text reference, the old one should be deleted.
0 x

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

#6

Postby Jon » Wed Jul 06, 2016 3:16 pm

I can reproduce your problem. It's caused by a Java limitation on the size of a generated method of 64K. Ebase dynamically builds Java classes to represent the scripting API and this is where the error is occurring. I'm afraid there is no solution for this other than reducing the total number of texts - you could do this by removing unused texts (if you have any) or by splitting the form. For example, deleting just one page from the form gets it working. If you have been only adding texts slowly, then the likelihood is that you are only just over the Java 64K limit and even making small changes might get it working again.

We will fix this in the next Ebase version which will be V5.2. We are hoping to release this at the end of July.
0 x

t4nu
Ebase User
Posts: 305
Joined: Thu Jul 02, 2015 8:32 am
Location: Indonesia

#7

Postby t4nu » Thu Jul 07, 2016 1:53 am

I have split the form, I moved several pages to other form and delete them from the original form.
But still the error come up. It seems that I have to create a new form to replace the previous one that give error message.
Jon wrote:I can reproduce your problem. It's caused by a Java limitation on the size of a generated method of 64K. Ebase dynamically builds Java classes to represent the scripting API and this is where the error is occurring. I'm afraid there is no solution for this other than reducing the total number of texts - you could do this by removing unused texts (if you have any) or by splitting the form. For example, deleting just one page from the form gets it working. If you have been only adding texts slowly, then the likelihood is that you are only just over the Java 64K limit and even making small changes might get it working again.

We will fix this in the next Ebase version which will be V5.2. We are hoping to release this at the end of July.
0 x

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

#8

Postby Jon » Thu Jul 07, 2016 8:11 am

You don't need to create a new form. You just need to delete some texts. Mostly texts are associated with form fields (2 per field) but they are also associated with controls such as Text Controls, Button Controls etc. I deleted the final page from your form and the problem went away. This will have removed those texts associated with controls on that one page but it won't have deleted any fields.
0 x

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

#9

Postby Jon » Fri Jul 08, 2016 8:54 am

I have sent you a fix by email, but the attachment may be too large. Please let me know if it doesn't arrive successfully.
0 x

t4nu
Ebase User
Posts: 305
Joined: Thu Jul 02, 2015 8:32 am
Location: Indonesia

#10

Postby t4nu » Tue Jul 12, 2016 2:34 am

Thank you, but till this morning (my time) I haven't seen the reply either in my inbox or in any other folders. My inbox attachment limit is around 25 Mb, is the fix you sent bigger than that?
Jon wrote:I have sent you a fix by email, but the attachment may be too large. Please let me know if it doesn't arrive successfully.
0 x

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

#11

Postby Jon » Tue Jul 12, 2016 7:50 am

You can download the fix from our FTP site with this url http://www.ebaseftp.com/download/ebase_50/bug4013.zip

The fix should be applied to the Ebase server. Unzip the file – it contains a single file – ufs.jar. Stop the server then copy the file to the following directories depending on your installation, replacing the existing file with the same name. If you want to keep a backup of the original file, then copy it somewhere else; do not rename it in the existing directory as this will not work.

Integrated Server: UfsClient/IntegratedServer/ebasetest/WEB-INF/lib
Separate Server: UfsServer/tomcat/webapps/ebase/WEB-INF/lib

Then restart the server.

This represents an emergency fix for V5.0.1. The problem is permanently fixed in V5.2 and I advise upgrading to this when it is released in a few weeks time.

Please let me know if this resolves your problem.
0 x

t4nu
Ebase User
Posts: 305
Joined: Thu Jul 02, 2015 8:32 am
Location: Indonesia

#12

Postby t4nu » Tue Jul 12, 2016 10:09 am

Thank you for the file.

Concerning upgrading to the latest version, after seeing that long instruction to upgrade ( :D ). What if I choose to export all my project, uninstall current version of ebase, fresh install the latest version then import the previous exported projects.
What will be the drawbacks if I choose that path?

Jon wrote:You can download the fix from our FTP site with this url http://www.ebaseftp.com/download/ebase_50/bug4013.zip

The fix should be applied to the Ebase server. Unzip the file – it contains a single file – ufs.jar. Stop the server then copy the file to the following directories depending on your installation, replacing the existing file with the same name. If you want to keep a backup of the original file, then copy it somewhere else; do not rename it in the existing directory as this will not work.

Integrated Server: UfsClient/IntegratedServer/ebasetest/WEB-INF/lib
Separate Server: UfsServer/tomcat/webapps/ebase/WEB-INF/lib

Then restart the server.

This represents an emergency fix for V5.0.1. The problem is permanently fixed in V5.2 and I advise upgrading to this when it is released in a few weeks time.

Please let me know if this resolves your problem.
0 x

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

#13

Postby Jon » Tue Jul 12, 2016 12:27 pm

We're talking here about upgrading - not applying this fix which is just copying a single file.

You can upgrade like you say: install a fresh system and just point this to your existing system's workspace and repository database, you should also copy the ebaseConf folder from the web app (note that you don't need to export/import your workspace). The problem with this approach is that you also have to manually reapply any other changes you might have made to the tomcat file system e.g. adding web resource files, jar files, JDBC drivers etc. It's very easy to forget which of these have been changed. The safe approach is to follow the upgraded instructions even though this is a painful process.
0 x

t4nu
Ebase User
Posts: 305
Joined: Thu Jul 02, 2015 8:32 am
Location: Indonesia

#14

Postby t4nu » Thu Jul 14, 2016 1:33 am

OK, Jon.
Noted and thanks a lot for a great help.
Jon wrote:We're talking here about upgrading - not applying this fix which is just copying a single file.

You can upgrade like you say: install a fresh system and just point this to your existing system's workspace and repository database, you should also copy the ebaseConf folder from the web app (note that you don't need to export/import your workspace). The problem with this approach is that you also have to manually reapply any other changes you might have made to the tomcat file system e.g. adding web resource files, jar files, JDBC drivers etc. It's very easy to forget which of these have been changed. The safe approach is to follow the upgraded instructions even though this is a painful process.
0 x


Who is online

Users browsing this forum: No registered users and 23 guests