Palm OS: Invalid constant pool entry - What's that?
Hello,
I'm a newbie in developing application 4 my palm. (midp4palm 1.0 installed)
I started with a "hello world"... everything went fine on my tungsten t3 emulator. Label + TextField.
Then I wrote a little calculator... and now I get the following message: "Invalid constant pool entry".
I used switch(), some static final doubles and that's it.
Do you know what the problem could be... I didn't find a solution.
Thank you
mastix mc
A quick google search yielded this - hope it helps.
http://archives.java.sun.com/cgi-bin/wa?A2=ind9911&L=kvm-interest&F=&S=&P=8868
Summary:
* "This is usually caused by a null reference not caught by the KVM, or sometimes an instanceof sometime before."
* "I was having exactly this problem on a Palm V.
I re-downloaded the KVM from Sun's site. I am using a Mac, and I noticed
this time, after running ZipIt to unzip the files, that the types of the
files have now been correctly set. I re-installed the files, and now
everything is working fine.
My guess is that something is corrupted in your KVMClassDB.pdb file. I've
done a couple of upgrades to my Mac software and the OS upgrade, so I'd
recommend doing every possible software upgrade, then download the KVM again
and re-install it."
Similar Messages
-
Alert: Invalid constant pool entry
Hi, When I install midlet application in mobile phone I got this error "Alert: Invalid constant pool entry" and says "Application Error". When I create a object of a class at that time this error occurred. In that class I have used a constant which value is 1.5. After googling so many people are saying this because of floating point value. That May be the problem. Because when I change that 1.5 value to 1 then application get installed and run. But earlier also I used to create the object of that class. At that time mobile phone did not throw any error. But why this time throw error. I did not understand what could be the problem. Please any one help me.
gnat wrote:
hmm let's see if I understand you correctly.
Before, you were using jar "as-is", ie without compiling it, right? - so you basically don't know if the class in it was using floating point or not?
Now, you compile a piece of code that was supposedly used in that jar (but you don't know for sure if it was because you didn't build that jar) and you obtain the problem - correct?hmm let's see if I understand you correctly.
Before, you were using jar "as-is", ie without compiling it, right? - so you basically don't know if the class in it was using floating point or not?
Now, you compile a piece of code that was supposedly used in that jar (but you don't know for sure if it was because you didn't build that jar) and you obtain the problem - correct?
No. No. Both Jars are compiled and built by myself. I find out the problem. problem is costructing the object of that class (which have float value) from startApp(). I got my old Jar which was working earlier. There I costruct the object of that class. So now old jar also giving the "Invalid constant Pool entry" Error. Any that float value I am going to change. Still unclear is What the difference construct object inside startApp() block and ouside startApp() block. Anyway Thank you Guys. -
Class format error: Invalid constant pool tag found
I am simply attempting to create an instance of an object and I get Class format error: Invalid constant pool tag found. Does anyone know what this means and how to fix it?
Thanks.If you're compiling with J2SDK 1.4 or higher, you need to use "-target 1.1" on the javac command line.
Also make sure you're not using any float constants such as 1.0 in your code. -
Incorrect constant pool entry count
Hi ,
I found with this simple class , the class file has incorrect constant pool count,
public class Smpl
public final long j = 0;
class file dumped is :
0xCA 0xFE 0xBA 0xBE
0x00 0x00 0x00 0x32
0x00 {color:#ff0000}0x14 <- pool count is 0x14 -1 = 0x13 , but I can just read 0x12 !{color}
0x0A 0x00 0x04 0x00 0x10
0x09 0x00 0x03 0x00 0x11
0x07 0x00 0x12
0x07 0x00 0x13
0x01 0x00 0x01 0x6A
0x01 0x00 0x01 0x4A
0x01 0x00 0x0D 0x43 0x6F 0x6E 0x73 0x74 0x61 0x6E 0x74 0x56 0x61 0x6C 0x75 0x65
0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x01 0x00 0x06 0x3C 0x69 0x6E 0x69 0x74 0x3E
0x01 0x00 0x03 0x28 0x29 0x56
0x01 0x00 0x04 0x43 0x6F 0x64 0x65
0x01 0x00 0x0F 0x4C 0x69 0x6E 0x65 0x4E 0x75 0x6D 0x62 0x65 0x72 0x54 0x61 0x62 0x6C 0x65
0x01 0x00 0x0A 0x53 0x6F 0x75 0x72 0x63 0x65 0x46 0x69 0x6C 0x65
0x01 0x00 0x09 0x73 0x6D 0x70 0x6C 0x2E 0x6A 0x61 0x76 0x61
0x0C 0x00 0x0A 0x00 0x0B
0x0C 0x00 0x05 0x00 0x06
0x01 0x00 0x04 0x53 0x6D 0x70 0x6C
0x01 0x00 0x10 0x6A 0x61 0x76 0x61 0x2F 0x6C 0x61 0x6E 0x67 0x2F 0x4F 0x62 0x6A 0x65 0x63 0x74
0x00 0x21 acc flag
0x00 0x03 this class
0x00 0x04 super class
0x00 0x00 interfaces count
0x00 0x01 fields count
0x00 0x11 acc flag
0x00 0x05 name idx
0x00 0x06 desc idx
0x00 0x01 attrs count
0x00 0x07 name idx
0x00 0x00 0x00 0x02 attr len
0x00 0x08 info
0x00 0x01 methods count
0x00 0x01 acc flag
0x00 0x0A name idx
0x00 0x0B desc idx
0x00 0x01 attrs count
0x00 0x0C name idx
0x00 0x00 0x00 0x26 attr len
0x00 0x03 max stack
0x00 0x01 max loacls
0x00 0x00 0x00 0x0A code len
0x2A 0xB7 0x00 0x01 0x2A 0x09 0xB5 0x00 0x02 0xB1 code
0x00 0x00 exception table len
0x00 0x01 attr count
0x00 0x0D name idx
0x00 0x00 0x00 0x0A attr len
0x00 0x02 0x00 0x00 0x00 0x01 0x00 0x04 0x00 0x03 info
0x00 0x01 attrs count
0x00 0x0E name idx
0x00 0x00 0x00 0x02 attr len
0x00 0x0F
Could anyone help me? thank you
I'm using jdk6sunnyyu wrote:
Hi ,
I found with this simple class , the class file has incorrect constant pool count,
public class Smpl
public final long j = 0;
0x0A 0x00 0x04 0x00 0x10
0x09 0x00 0x03 0x00 0x11
0x07 0x00 0x12
0x07 0x00 0x13
0x01 0x00 0x01 0x6A
0x01 0x00 0x01 0x4A
0x01 0x00 0x0D 0x43 0x6F 0x6E 0x73 0x74 0x61 0x6E 0x74 0x56 0x61 0x6C 0x75 0x65
0x05 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00
0x01 0x00 0x06 0x3C 0x69 0x6E 0x69 0x74 0x3E
0x01 0x00 0x03 0x28 0x29 0x56
0x01 0x00 0x04 0x43 0x6F 0x64 0x65
0x01 0x00 0x0F 0x4C 0x69 0x6E 0x65 0x4E 0x75 0x6D 0x62 0x65 0x72 0x54 0x61 0x62 0x6C 0x65
0x01 0x00 0x0A 0x53 0x6F 0x75 0x72 0x63 0x65 0x46 0x69 0x6C 0x65
0x01 0x00 0x09 0x73 0x6D 0x70 0x6C 0x2E 0x6A 0x61 0x76 0x61
0x0C 0x00 0x0A 0x00 0x0B
0x0C 0x00 0x05 0x00 0x06
0x01 0x00 0x04 0x53 0x6D 0x70 0x6C
0x01 0x00 0x10 0x6A 0x61 0x76 0x61 0x2F 0x6C 0x61 0x6E 0x67 0x2F 0x4F 0x62 0x6A 0x65 0x63 0x74 I make that 0x13 entries (minus the unusable entry at 0x9)
0x000b 0x01: 0xa 0x4,0x10
0x0010 0x02: 0x9 0x3,0x11
0x0015 0x03: 0x7 0x12
0x0018 0x04: 0x7 0x13
0x001b 0x05: 0x1 "j"
0x001f 0x06: 0x1 "J"
0x0023 0x07: 0x1 "ConstantValue"
0x0033 0x08: 0x5 0x0000000000000000
0x003c 0x0a: 0x1 "<init>"
0x0045 0x0b: 0x1 "()V"
0x004b 0x0c: 0x1 "Code"
0x0052 0x0d: 0x1 "LineNumberTable"
0x0064 0x0e: 0x1 "SourceFile"
0x0071 0x0f: 0x1 "Smpl.java"
0x007d 0x10: 0xc 0xa,0xb
0x0082 0x11: 0xc 0x5,0x6
0x0087 0x12: 0x1 "Smpl"
0x008e 0x13: 0x1 "java.lang.Object"Remember that longs and doubles take two slots. -
Remote ID address is invalid???WHAT DOES THAT MEAN??
AND HOW DO I FIX IT??
Hi applediva,
Maybe the diva part explains the shouting (using Capital letters).
Error 4
See this Response http://discussions.apple.com/messageview.jspa?messageID=9864961
I see that you started that thread as well.
8:09 PM Wednesday; July 22, 2009
Please, if posting Logs, do not post any Log info after the line "Binary Images for iChat" -
Is there any change in the constant pool entires with JDK1.4?
Hi,
Here is my simple java class,
class Base
String manuf = "MRF";
class Derived extends Base
Derived() {
manuf = "ABC";
After compiling this class with JDK 1.3 and JDK1.4, i could see the difference in constant pool entries
so please let me know more about these cahnges.
P.S. : written a java program TClass.java to browse the constant pool entries.
i.e if compiled with JDK1.3 , constant pool entries looks as follows,
E:\bugs\jdk1.4\pramila>java TClass E:\bugs\jdk1.4\pramila\Derived.class
There are 21 + 1 entries in the Constant Pool:
Index Tag Reference(s)/Value(s)
1 10 5 15
2 8 16
3 9 5 17
4 7 18
5 7 19
6 1 <init>
7 1 ()V
8 1 Code
9 1 LineNumberTable
10 1 LocalVariableTable
11 1 this
12 1 LDerived;
13 1 SourceFile
14 1 Test.java
15 12 6 7
16 1 ABC
17 12 20 21
18 1 Derived
19 1 Base
20 1 manuf
21 1 Ljava/lang/String;
There are 1 methods:
Code array in method <init> of length 11 starting at byte 231.
If compiled with JDK1.4 constant pool entries looks as follows,
E:\bugs\jdk1.4\pramila>java TClass E:\bugs\jdk1.4\pramila\Derived.class
There are 21 + 1 entries in the Constant Pool:
Index Tag Reference(s)/Value(s)
1 10 5 15
2 8 16
3 9 4 17
4 7 18
5 7 19
6 1 <init>
7 1 ()V
8 1 Code
9 1 LineNumberTable
10 1 LocalVariableTable
11 1 this
12 1 LDerived;
13 1 SourceFile
14 1 Test.java
15 12 6 7
16 1 ABC
17 12 20 21
18 1 Derived
19 1 Base
20 1 manuf
21 1 Ljava/lang/String;
There are 1 methods:
Code array in method <init> of length 11 starting at byte 231.
There is a change in the index 3 can be noticed.
i.e
with JDK1.3 it is "3 9 5 17"
with JDK1.4 it is "3 9 4 17"
Thanks in advance.
Pramilajavac v1.4 emits by default Java 1.2 compatible .class files while all javac implementations since between 1.1.0 and 1.3.1 emit byte default Java 1.1 .class files.
Check to see what effect using the -target option in javac to get the two versions to produce Java 1.1, 1.2, or 1.3 .class files.
Chuck -
Lifetime and behavior of the String Constant Pool
If you 'inline' a String constant in Java, I'm aware in the VM spec that it says this String is put in the constant pool.
What is the lifetime of the constant pool and what is it tied to? Is there one constant pool per Class, per Class instance, or per VM?
If an instance is GC'd, do it's constants previously moved to the constant pool get destroyed, or do they live on until I create another instance of that Class?
Thanks, KevinIs the constant pool created at compile time and written into the Class file?Yes.
Each class has it's own constant pool which contains constant values and references to other classes and fields.
It is created a compile time.
A class (definition) is loaded by a classloader at runtime.
In theory you could have the same class loaded twice by different classloaders and each would have a copy of the class definition.
As far as I know, a class definition can only be removed from memory by nulling/garbage collecting the classloader that loaded it.
regards,
Owen -
Why constant pool with 0 entries?
I'm writing a tool that parses SWF files. Recently I see some
SWF file that has constant pool of 0 entries, yet a lot of bytes
followed. The spec does not describe what this means. For example,
using swfdump there is something like:
[00c] 141 DOACTION
( 0 bytes) action: Not
( 2 bytes) action: If 5
( 131 bytes) action: Constantpool(0 entries)
String:"ˆB" (remainder of 126
bytes:"\5\0wf_toolbar.swf\0toolbar_mc\0loadMovie\0toobar\0createEmptyMovieClip\0›\16\0Loa dToolbar\0\0\0\20\0–\9\0\8\0\7\1\0\0\0\8\1\28–\2\0\8\2R\23–\16\0\8\1\7\2\0\0\0\8\3\7\2\0\0 \0\8\4=<")
( 0 bytes) action: End
The constant pool contains 0 entries. Yet the total byte size
of this action is 131 bytes. Clearly there is meaningful
information contained in these bytes. But I just cannot find in the
spec how to parse these bytes.
Anyone can help? Thanks.I'm writing a tool that parses SWF files. Recently I see some
SWF file that has constant pool of 0 entries, yet a lot of bytes
followed. The spec does not describe what this means. For example,
using swfdump there is something like:
[00c] 141 DOACTION
( 0 bytes) action: Not
( 2 bytes) action: If 5
( 131 bytes) action: Constantpool(0 entries)
String:"ˆB" (remainder of 126
bytes:"\5\0wf_toolbar.swf\0toolbar_mc\0loadMovie\0toobar\0createEmptyMovieClip\0›\16\0Loa dToolbar\0\0\0\20\0–\9\0\8\0\7\1\0\0\0\8\1\28–\2\0\8\2R\23–\16\0\8\1\7\2\0\0\0\8\3\7\2\0\0 \0\8\4=<")
( 0 bytes) action: End
The constant pool contains 0 entries. Yet the total byte size
of this action is 131 bytes. Clearly there is meaningful
information contained in these bytes. But I just cannot find in the
spec how to parse these bytes.
Anyone can help? Thanks. -
Whats a String constant pool?
I was reading an article about weak references and came across a peice of code
Map<String,String> map = new WeakHashMap<String, String>();
map.put(new String("Scott"), "McNealey");They also said
if you don't call new String(), the reference for the map key will be to the system's string constant pool. This never goes away, so the weak reference will never be released. To get around this, new String("Scott") creates a reference to the reference in the string constant pool. The string contents are never duplicated. They stay in the constant pool. This simply creates a separate pointer to the string constant in the pool.
I never heard of String constant pool could any one enlighten me. I didnt get the point of what above paragraph says also.
JubsNo it won't: it will only be removed when the garbage collector rears
its ugly head. Until then the reference will be present in the map.Okay it was unprecise. The item MAY be removed immediately after it
has been inserted because the key object is only referenced from the
Map itself.Yes, that is true, but mind though: any object that still has a strong
reference to it will not be removed from that map. I use such weak maps
for localization reasons a lot. When a localization changes (while the
application is running), a whole lot of visual components must have
their text part changed. They are all stored in such a weak reference map.
Of course quite some visual components can be garbage collected
at some time (think of labels etc. in JDialogs after the dialog has been
disposed).
These maps are ideal for those purposes.
kind regards,
Jos -
What does "Illegal Constant Pool Type" error signify ?
Hello,
I have developed an application on a windows system that connects to a database, places values onto an object, and displays on a screen. When I run on a windows environment everything works fine. When I export to my external server, which is linux system, I get an "Illegal Constant Pool Type" error.
What does this mean and how can I rectify?
The error message can be found at:
http://www.blazingvibes.com/blazinvibes/indexhome.jsp
Thank you all for your help.No idea since I can't see the error or code.
And I don't know about anyone else but I don't click on links unless I know the source, so its current location isn't going to help in that matter.
Presumably you are doing printStackTrace() so the location of the error is obvious. -
How to construct the constant pool?
Greetings,
I seems to have a little bit of a problem.
I have a text file, generated by the javap -c <class_name> command,
i.e.:
javap -c myClass > myClass.txt
This myClass.txt is the input I've got. I do not have the myClass.class, from which it was generated.
What I wish to do, is to generate, from this text file, a leagal, runnable, class file (i.e., myClass.class).
But, I have problems understanding how to construct the constant pool array.
I have read the VM spec (java.sun.com/docs/books/vmspec/2nd-edition/html/ClassFile.doc.html).
The thing is, that it does not explain how to extract the needed information from the text file.
Can someone assist?
Would appreciate,
Ohad.Compiled from Hello.java
public class Hello extends java.lang.Object {
public Hello();
public static void main(java.lang.String[]);
Method Hello()
0 aload_0
1 invokespecial #6 <Method java.lang.Object()>
4 return
Method void main(java.lang.String[])
0 new #4 <Class java.util.Timer>
3 dup
4 invokespecial #7 <Method java.util.Timer()>
7 new #2 <Class Hello$1>
10 dup
11 invokespecial #5 <Method Hello$1()>
14 lconst_0
15 lconst_1
16 invokevirtual #8 <Method void schedule(java.util.TimerTask, long, long)>
19 returnWell in this example, you have opcodes with arguments which are expressed as (for example) "#7 <Method java.util.Timer()>". This describes a constant pool element. I assume #7 refers to the location within the constant pool, and the text description tells you that it's an item of type method, and gives you the method name. So for all arguments expressed in this form, you'll need to reconstruct a constant pool item. -
Exception with newFixedThreadPool - Illegal constant pool index
Hi,
I got the following exception :
Exception in thread "main" java.lang.ClassFormatError: Illegal constant pool index 1536 for method signature in class file java/util/concurrent/LinkedBlockingQueue
at java.util.concurrent.Executors.newFixedThreadPool(Unknown Source)
When executing the following line:
ExecutorService es = Executors.newFixedThreadPool(10);
What this error mean ?
ThanksFrom the javadoc for java.lang.ClassFormatError:
'Thrown when the Java Virtual Machine attempts to read a class file and determines that the file is malformed or otherwise cannot be interpreted as a class file.'
Reinstall. -
"Illegal UTF8 string in constant pool"
I'm running a jsp application on JRun 3.1 with an Appache web server. Every once in while I get this error when trying to access a jsp. "Illegal UTF8 string in constant pool". If I hit refresh or reload the page loads fine. It appears to be random and not very often. Does anybody know what is causing this or what I might do to eliminate this problem? Thanks
Thanks for your reply. However the answer to that question does not appear to apply here. I'm not using the URLConnection.getInputStream().read() method. on my jsp page. The entire error is below:
javax.servlet.ServletException: jrun__sub_topic2ejspe (Illegal UTF8 string in constant pool)
java.lang.ClassFormatError: jrun__sub_topic2ejspe (Illegal UTF8 string in constant pool)
at java.lang.ClassLoader.defineClass0(Native Method)
at java.lang.ClassLoader.defineClass(ClassLoader.java:509)
at java.lang.ClassLoader.defineClass(ClassLoader.java:438)
at allaire.jrun.servlet.JSPClassLoader.loadClass(JSPClassLoader.java:82)
at java.lang.ClassLoader.loadClass(ClassLoader.java:262)
at allaire.jrun.servlet.JRunServletLoader.loadServletInstance(JRunServletLoader.java:221)
at allaire.jrun.servlet.JRunServletLoader.loadServletInstance(JRunServletLoader.java:190)
at allaire.jrun.servlet.JRunServletLoader.loadServlet(JRunServletLoader.java:177)
at allaire.jrun.servlet.JRunServletLoader.reloadServlet(JRunServletLoader.java:161)
at allaire.jrun.servlet.JRunSE.reloadServlet(JRunSE.java:1377)
at allaire.jrun.jsp.JSPServlet.loadPage(JSPServlet.java:205)
at allaire.jrun.jsp.JSPServlet.service(JSPServlet.java:169)
at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1013)
at allaire.jrun.servlet.JRunSE.runServlet(JRunSE.java:925)
at allaire.jrun.servlet.JRunRequestDispatcher.forward(JRunRequestDispatcher.java:88)
at allaire.jrun.servlet.JRunSE.service(JRunSE.java:1131)
at allaire.jrun.servlet.JvmContext.dispatch(JvmContext.java:330)
at allaire.jrun.jrpp.ProxyEndpoint.run(ProxyEndpoint.java:382)
at allaire.jrun.ThreadPool.run(ThreadPool.java:272)
at allaire.jrun.WorkerThread.run(WorkerThread.java:75)
As mentioned before the error occurs infrequently,and randomly. If you refresh or reload the page everything works fine. Does anybody know what might cause this error and/or what I can do to prevent it. Thanks -
Question about String constant pool
Is there is any function available to find how many Sring literal in String Constant pool
Well, there's stuff like BCEL.
But it may not do what you want.
Why do you want to find out what's in the constant pool? -
Illegal constant pool index ????
Hi
I wrote a hello world program using J2ME with a view to writing a game for a mobile phone. I'm a C++ programmer and have never looked a java befor so I have no idea what is going on under the sheets.
The hello world program is called Welcome (straight out of Sun's J2ME book). It seemed to compile ok and left me with a file called Welcome.class
Following the instructions in the book and working from the Command Line on WindowsXP I typed
d:\preverify ....etc
I got the following
Error preverifying class Welcome
Class loading error: Illegal constant pool index
I've double checked everything and can't find a problem - any ideas?
Cheers
SteveStupid - hadn't downloaded the runtime
Maybe you are looking for
-
So basically I need to confirm my identity but I can't because I can't remember the answers to my security questions. I scheduled a meeting with Apple, to see if they can fix it. Nod I would just reset them from my rescue email, but I don't know wha
-
Hide a box that shows the url of a link when mouse move on it
when i move my mouse to a link a box opened that contains url of the link. i want to disable this box which is shown in the image. http://postimg.org/image/xdqelqeil/ how can i disable this feature? i use windows xp sp3 and firefox 33.1
-
Powerpoint application stopped working on mac pro
one week ago my microsoft powerpoint application stopped working. is it possible to resolve this problem on my own?
-
Hi There, I have a new 6300. I have a fully formatted 2GB card in it. I have used Nokia Music manager to transfer and convert the file to M4A files. I was filling the card up reather well and still have about 1Gb free. I when I update the libaray it
-
Problems with aligning footer (was: alignment)
it seems as though i messed up my page trying to align my footer now my entire page is shifted to the left of the browser window and i'd like it to be int he center. al the research i have looked through is not helping me. a hint would be nice - tha