We are writing a GIS application in C# and using Vivid Solutions’ Java
Topology Suite converted to J# for our Computational Geometry library. I am
receiving a null reference exception on the following line of code…
object [] list = spatialIndex.query(new Envelope( minX + (ix * tileWidth),
minX + ((ix + 1) * tileWidth), maxY - (iy * tileHeight), maxY - ((iy + 1) *
tileHeight))).toArray();
This is the method being called…
protected List query(Object searchBounds) {
if (!built) { build(); }
ArrayList matches = new ArrayList();
if (itemBoundables.isEmpty()) {
Assert.isTrue(root.getBounds() == null);
return matches;
}
if (getIntersectsOp().intersects(root.getBounds(), searchBounds)) {
query(searchBounds, root, matches);
}
return matches;
}
I’ve stepped through the code and get all the way to the second "return
matches" statement. The matches object is indeed instantiated and has objects
(in this case they are ints) in it so it is definitely not null. This method
is used throughout the rest of the application and works fine. It just seems
to be the toArray method that is giving us a problem. I’m wondering if this
is a known bug in the J# runtime. We are using the J# redistributable package
1.1 along with the J# supplemental UI library.
One more bit of information, if I step through this code more than twice,
the exception then becomes a System.EngineException and I have to reboot my
computer.
Thank you in advance for any information you can provide regarding this issue.
Amit Bhagwat [MSFT] - 22 Feb 2005 09:42 GMT
Hi Keith,
Thanks for reporting this issue.
However is it possible for you to narrow it down to a small sample so that
I can compile and reproduce the problem?
This will help us in investigating the problem and get back to you sooner.
Thanks,
Amit
--------------------
>Thread-Topic: Bug in ArrayList.toArray() method?
>thread-index: AcUV0abSJ5nTNayHT9mGp1q7fvXziQ==
[quoted text clipped - 46 lines]
>is used throughout the rest of the application and works fine. It just seems
>to be the toArray method that is giving us a problem. I???m wondering if
this
>is a known bug in the J# runtime. We are using the J# redistributable package
>1.1 along with the J# supplemental UI library.
[quoted text clipped - 4 lines]
>
>Thank you in advance for any information you can provide regarding this issue.
Lars-Inge T?nnessen [VJ# MVP] - 27 Feb 2005 17:13 GMT
Do you have any code we can copy & paste into Visual Studio and run ?
I would like to see the System.EngineException. I have never seen that one
before.
Regards,
Lars-Inge
Steve Hickman - 08 Mar 2005 16:53 GMT
The problem may not be with toArray(). I've noticed that ArrayList will
occasionally be improperly constructed, with nextItem being null when in fact
I'm not at the end of the list. In these situations, the length of the
ArrayList as shown in the .NET debugger shows more items than I can navigate
to by opening nextItem. However, if I open prevItem and then the nextItem of
the prevItem, I can always (so far at least) get to all the items on the
list. This construction problem, when I've seen it, has always happened
between the first and second items in the ArrayList.
I haven't yet figured out the exact cause of this. The problem is showing up
consistently for me right now, but the code where it shows up works the first
4 times it executes, then consistently fails the 5th time with an improperly
constructed list. I'd provide a simple example if I could, but I don't have
one at this time.
> We are writing a GIS application in C# and using Vivid Solutions’ Java
> Topology Suite converted to J# for our Computational Geometry library. I am
[quoted text clipped - 31 lines]
>
> Thank you in advance for any information you can provide regarding this issue.
Steve Hickman - 08 Mar 2005 17:09 GMT
My apologies - I misposted. The bug I'm experiencing is with LinkedList, not
ArrayList.
> The problem may not be with toArray(). I've noticed that ArrayList will
> occasionally be improperly constructed, with nextItem being null when in fact
[quoted text clipped - 46 lines]
> >
> > Thank you in advance for any information you can provide regarding this issue.