pf » Null Java References in CF 6 vs 7

Null Java References in CF 6 vs 7

coldfusionjava

ColdFusion 7 appears to be much better at passing null values to a java object. ColdFusion 6 however likes to block you from doing it, even when you want to.

I am tring to work with a java API that requires me to pass a null value to a method. Since CFMX 6 has no way of creating a null value I though I would use the Java API to concoct one. So I did something like this:

vector = CreateObject("java", "java.util.Vector");
vector.setSize(1);
someAPI.methodThatRequiresANull(vector.get(0));

This works on ColdFusion 7, but on ColdFusion 6 it throws an exception:

The system has attempted to use an undefined value, which usually indicates a programming error, either in your code or some system code.

Null Pointers are another name for undefined values.

This trick isn't really useful because in ColdFusion 7 you can create a null value by calling JavaCast and using "null" as the type.

For example:

someAPI.methodThatRequiresANull( JavaCast("null", "") );

Does anyone know of a way to pass nulls that works in CF 6? I know I could just write some java, but I want the solution to be pure CFML in this case.



Related Entries
10 people found this page useful, what do you think?

WAF for CF
Trackback Address: 524/0D32109B49E9B7EE1E0E921CDA33C122
On 01/10/2006 at 4:04:27 PM MST Doug Hughes wrote:
1
Pete - I've done quite a bit of work with Java and CF 6.1 (and 7). From everything I've seen, there is absolutely no way to pass a null value into a java method or constructor using ColdFusion 6.1. Sorry. Does this need to be in one CFC? If not, you could create a java class which acts as a facade for your functionality.

On 04/24/2006 at 4:40:11 PM MDT Michael Traher wrote:
2
Hi Pete, Did you ever find a work-around for this? I have just run into the same issue. Works fine in 7, but someone has downloaded my cfc and is running it on 6.1 and the javacast to null is failing.

On 04/24/2006 at 4:57:09 PM MDT Pete Freitag wrote:
3
Hi Michael, no I never did find a workaround. You could perhaps use this technique: http://www.petefreitag.com/item/447.cfm but its not really a workaround.

On 05/18/2006 at 8:20:49 PM MDT Johnny wrote:
4
When I worked on my image manipulation component, I had to pass in a null value of an ImageObserver object type. So I created a dummy object of a button (implemented ImageObserver interface) and passed it in like this: <cfset variables.imageObserver = createObject("java", "java.awt.Button").init()/>

I haven't tested yet, but I would think a generic one like this would work for all object types CreateObject('java', 'java.lang.Object').




  



Spell Checker by Foundeo





Subscribe to my RSS Feed: solosub RSS
Tags