About OpenJMS selector error.
<rainting-uB8bxKUEBrdWk0Htik3J/[email protected]>
| Newsgroups | gmane.comp.java.openjms.devel |
|---|---|
| Message-ID | <[email protected]> |
>Hi,
> i get an error with 0.7.3 and selector if I use SimpleConsumer.
> javax.jms.JMSException: Failed to createSubscriber java.rmi.ServerError:
> Error occurred in server thread; nested exception is:
> java.lang.ClassFormatError:
> org/exolab/jms/selector/parser/SelectorLexer (Code of a method longer than
> 65535 bytes)
> What the reason?
>
It is due to java limition, which doesn't allow a class longer than 64k.
You could modify the source code file : org/exolab/jms/selector/parser/SelectorLexer.java after ANTLR task.
1) seperate large static memebers to new classes, such as
1.1) add a new non-public class named "TokenSet0", which contains the members "_tokenSet_0_data_[]" , "_tokenSet_0"
1.2) ..............................................."TokenSet1"............."_tokenSet_1_data_[]" , "_tokenSet_1"
........
1.6) ................................................"TokenSet6".............."_tokenSet_6_data_[]" , "_tokenSet_6"
2) replace these variables references with the new prefix ""TokenSet0."( or ....) .
After then, you could compile and war all codes.
--------------
Best Regards,
Wang Ting
______________________________________
===================================================================