Community
Participate
Working Groups
Under Open VMS 7.3+ (Platform DECAlpha, VM: HP FastVM 1.4.2-4p2, which "should" be comliant to Sun's 1.4.2_05) the system bundle crashes with an IllegalAccessError when trying to clone a String[]. Obviously the HP VM offers no public clone method for this type. Since the relevant portion of Eclipse does not wrap the clone operations in a try-catch, Eclipse is not starting (we are using OSGI+Runtime only). Of course this may be considered as a bug in the HP VM, since the Java Spec requires Arrays to be cloneable. But on the other hand it's not a great deal to make cloneValue() failsafe. Copying arrays the way cloneValue does it is imho worth a discussion. Why not use System.arraycopy? PS: Yes, I know that OpenVMS is NOT a target system. But running Eclipse on VMS would do no harm either
Can you provide us with some error logs or stacktraces when it fails? Thanks.
Created attachment 26524 [details] log of IllegalAccessError
The above log was faked on a windows machine. (exchanged the header though). We have altered the cloneValue method so that is fails on exactly the same location it fails under OpenVMS. The reason is that we fixed the issue ourselves and already deployed the fix to our VMS testing system, so we cannot reproduce the error there. PS: I have filed a bug report to HP as well.
Created attachment 26529 [details] Proposed fix The original framework code base was designed to run on a very small J2ME profile which apparently did not have java.lang.reflect package!! That is the reason we did not use the java.lang.reflect.Array class to copy arrays. Well now our minimum profile is the OSGi minimum execution environment which does have this package. Here is a patch to fix this problem. This makes the method much smaller :)
Maybe consider for 3.1.1? I'm reducing the severity because this is a VM bug and you have a fix for yourself.
I released the fix in HEAD for 3.2. Leaving defect open for consideration in 3.1.1
patch reviewed, good to go
Fixed for 3.1.1.