Good point, Stefan.   I have to admit, Jon wrote all of that code, so 
I'm probably no more able to decide whether the modification is safe.

Here's an idea - while you're waiting for JTS 1.11.1 or JTS 1.12 with 
the fix, why not encapsulate the validity check in a

GeometryUtil.isValidOrNull(Geometry g)

as I suggested earlier.  Then the logic can easily be added to check for empty 
POINTs and return valid for them.


Stefan Steiniger wrote:
> thanks for fixing and discussing,
>
> now, I would prefer to leave the OJ code as is, and wait for JTS NB (or 
> something alike). Because I don't see an elegant way to avoid isValid 
> checks for EditTransactions.commit(), without telling what type of 
> transaction is done.
>
> I.e. we need to do EditTransactions.commit() right?
> as performed in DeleteSelectedItemsPlugIn.java:99
>
> if not, I would rather change code here, before touching/changing 
> something in EditTransaction that allows the delivery of the transaction 
> type.
>
> mhm.. I am honestly a bit scared to do changes here, because I can not 
> assess what a change in the EditTransaction code can have for side 
> effects - especially with respect to writing something back to real 
> databases. So if a skilled person like Larry or Martin (as the JUMP 
> designer) or Michael or Andreas would propose and do changes - I am 
> totally happy with it.
> Though.. preferring still no code changes at all and rather a change of JTS.
>
> puzzled
> stefan
>
> Martin Davis wrote:
>   
>> But not a *good* reason!  8^)    For obvious reasons...  !
>>
>> Larry Becker wrote:
>>     
>>> Hi Martin,
>>>
>>>   Thanks for the fix.  Assuming you meant "why OJ is testing for validity on
>>> a delete", the answer may be because it makes the code simpler.  Not the
>>> best reason, but it is a reason.  :-)
>>>
>>> regards,
>>> Larry
>>>
>>> On Tue, Mar 23, 2010 at 10:52 AM, Martin Davis 
>>> <mbda...@refractions.net>wrote:
>>>
>>>   
>>>       
>>>> Yes, POINT EMPTY is valid.  This is a bug in JTS.  I'll fix this today.
>>>> Thanks, Michael!
>>>>
>>>> One thing that doesn't make sense to me is why JTS is testing for
>>>> validity on a delete?  Surely it's safe to NOT do this, even for Undo?
>>>>
>>>>
>>>> Michaël Michaud wrote:
>>>>     
>>>>         
>>>>> Hi Martin, all,
>>>>>
>>>>> Finally, I think the problem could be a consistency problem in JTS.
>>>>> JTS accepts empty Points, empty LineStrings and empty Polygons created
>>>>>       
>>>>>           
>>>> with
>>>>     
>>>>         
>>>>> factory.createPoint(null) -> POINT EMPTY
>>>>> factory.createLineString(null) -> LINESTRING EMPTY
>>>>> factory.createPolygon(null,null) -> POLYGON EMPTY
>>>>>
>>>>> empty LineString and empty Polygon, which hold an empty
>>>>> CoordinateSequence are seen as valid Geometries
>>>>>
>>>>> on the other hand, empty Point, which also holds an empty
>>>>> CoordinateSequence throws an exception while tested for its validity
>>>>> The reason is Point.isValid() does not test its CoordinateSequence but
>>>>> tests the validity of Point.getCoordinate(), which returns a null in
>>>>> this case.
>>>>>
>>>>> Could you confirm POINT EMPTY should be considered as a valid Geometry ?
>>>>>
>>>>> Michaël
>>>>>
>>>>> Stefan Steiniger a écrit :
>>>>>
>>>>>       
>>>>>           
>>>>>> Hei,
>>>>>>
>>>>>> so by looking on the JUMP code,
>>>>>>
>>>>>> deleting always creates a null geometry:
>>>>>> com.vividsolutions.jump.workbench.ui.GeometryEditor.remove(Geometry g,
>>>>>> Geometry itemToRemove)
>>>>>>
>>>>>> calls
>>>>>>
>>>>>>
>>>>>>         
>>>>>>             
>>>> com.vividsolutions.jump.workbench.ui.GeometryEditor.createNullGeometry(Class
>>>>     
>>>>         
>>>>>> geometryClass)
>>>>>>
>>>>>> so, we could do the change in createNullGeometry() [though I don't
>>>>>> really like the idea here to create an empty GeometryCollection is
>>>>>> Michael did for the other positions] or in
>>>>>>
>>>>>>
>>>>>>         
>>>>>>             
>>>> com.vividsolutions.jump.workbench.ui.EditTransaction.proposedGeometriesValid()
>>>>     
>>>>         
>>>>>> by catching null geometries here and not checking them.
>>>>>>
>>>>>> or.. of course... both.
>>>>>>
>>>>>> any suggestions by you Larry, Michael, Martin?
>>>>>> Probably the second solution is best?
>>>>>>
>>>>>>
>>>>>> ohh.. @Martin, actually, if that only happens for point geometries
>>>>>> now... what is with the other geometry.isValid operations... why don't
>>>>>> they return an error if null geomtries are created?
>>>>>>
>>>>>> stefan
>>>>>>
>>>>>> Martin Davis wrote:
>>>>>>
>>>>>>
>>>>>>         
>>>>>>             
>>>>>>> Ah, yes, right.  This was a bug fix introduced in JTS 1.11, to ensure
>>>>>>> that Point.isValid checked for invalid (eg NaN) coordinates.
>>>>>>>
>>>>>>> In general, the contract for IsValid does not support "null" being
>>>>>>> passed as in input argument.  OJ should not be trying to determine the
>>>>>>> validity of a null geometry - it needs to detect this situation and
>>>>>>>           
>>>>>>>               
>>>> make
>>>>     
>>>>         
>>>>>>> its own decision about whether null is valid or not.
>>>>>>>
>>>>>>> So I think the way you'd sum this up is that a bug in JTS 1.10 masked a
>>>>>>> bug in OJ.
>>>>>>>
>>>>>>> Larry, I think your fix should take care of this in OJ.  If it were me
>>>>>>>           
>>>>>>>               
>>>> I
>>>>     
>>>>         
>>>>>>> would encapsulate that logic in a general-purpose utility method called
>>>>>>> something like GeometryUtil.isValidOrNull(Geometry g).  That gives a
>>>>>>> single functionality point for the design decision to allow nulls as
>>>>>>> valid geometry, in case it needs to be changed in the future.
>>>>>>>
>>>>>>> Larry Becker wrote:
>>>>>>>
>>>>>>>
>>>>>>>           
>>>>>>>               
>>>>>>>> I see that prior versions of JTS Point.isValid() didn't call
>>>>>>>> IsValidOP.isValid().  It just returned trure.
>>>>>>>>
>>>>>>>> Stepping though the debugger, isValid is throwing an NPE when it does
>>>>>>>>             
>>>>>>>>                 
>>>> the
>>>>     
>>>>         
>>>>>>>> getCoordinate().
>>>>>>>>
>>>>>>>>   public boolean isValid() {
>>>>>>>>       if (! IsValidOp.isValid(getCoordinate()))
>>>>>>>>           return false;
>>>>>>>>     return true;
>>>>>>>>   }
>>>>>>>>
>>>>>>>> Larry
>>>>>>>>
>>>>>>>> On Mon, Mar 22, 2010 at 3:58 PM, Larry Becker <becker.la...@gmail.com
>>>>>>>>             
>>>>>>>>                 
>>>>> wrote:
>>>>>       
>>>>>           
>>>>>>>>             
>>>>>>>>                 
>>>>>>>>> There are no changes in the SVN history for several months before 24
>>>>>>>>> February that seem relevant.  I made a bunch of changes to rendering
>>>>>>>>>               
>>>>>>>>>                   
>>>> and
>>>>     
>>>>         
>>>>>>>>> such, but nothing related to EditTransactions.
>>>>>>>>>
>>>>>>>>> I happened to have a copy of OJ dated 22 February and it does not
>>>>>>>>>               
>>>>>>>>>                   
>>>> have the
>>>>     
>>>>         
>>>>>>>>> delete point problem.  Can't say for sure when it started though.
>>>>>>>>>
>>>>>>>>> Larry
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Mar 22, 2010 at 3:48 PM, Larry Becker <
>>>>>>>>>               
>>>>>>>>>                   
>>>> becker.la...@gmail.com>wrote:
>>>>     
>>>>         
>>>>>>>>>               
>>>>>>>>>                   
>>>>>>>>>> Hi Michaël,
>>>>>>>>>>
>>>>>>>>>>   Yes, I am using the latest SVN version.  You can do the test
>>>>>>>>>>                 
>>>>>>>>>>                     
>>>> yourself in
>>>>     
>>>>         
>>>>>>>>>> a few minutes.
>>>>>>>>>>
>>>>>>>>>>   I just checked and SkyJUMP and OJ both have identical code to
>>>>>>>>>>                 
>>>>>>>>>>                     
>>>> handle
>>>>     
>>>>         
>>>>>>>>>> deleting selected items, except for the changes Michaël made to
>>>>>>>>>> EditTransaction and the JTS version. Those changes were made in
>>>>>>>>>>                 
>>>>>>>>>>                     
>>>> March.
>>>>     
>>>>         
>>>>>>>>>> SkyJUMP does not have the problem yet.
>>>>>>>>>>
>>>>>>>>>> @Stefan,  what are the changes for null geometries that you spoke
>>>>>>>>>>                 
>>>>>>>>>>                     
>>>> of?
>>>>     
>>>>         
>>>>>>>>>> Larry
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> 2010/3/22 Michaël Michaud <michael.mich...@free.fr>
>>>>>>>>>>
>>>>>>>>>> Hi Stefan and others,
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>                 
>>>>>>>>>>                     
>>>>>>>>>>> Did you check OJ with the svn code.
>>>>>>>>>>> I have fixed EditTransaction a few days ago.
>>>>>>>>>>> Fo a reason, in the EditTrasaction process, two methods created a
>>>>>>>>>>> Point(null,null,0) geometry.
>>>>>>>>>>> This geometry did not throw NPE... until JTS 1.11
>>>>>>>>>>> I replaced Point(null,null,0) by an empty GeometryCollection.
>>>>>>>>>>> Hope it does the trick.
>>>>>>>>>>>
>>>>>>>>>>> Miichaël
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>> Hei,
>>>>>>>>>>>>
>>>>>>>>>>>> I haven't found the time to look into it, but I got this error
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> report
>>>>     
>>>>         
>>>>>>>>>>>> from Bernd:
>>>>>>>>>>>>
>>>>>>>>>>>> the issue is that he can not delete point features in existing
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> projects
>>>>     
>>>>         
>>>>>>>>>>>> or even just created tets layers. (must have been introduced to
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> the NB
>>>>     
>>>>         
>>>>>>>>>>>> after Feb 24th)
>>>>>>>>>>>>
>>>>>>>>>>>> ava.lang.NullPointerException
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jts.operation.valid.IsValidOp.isValid(IsValidOp.java:62)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jts.geom.Point.isValid(Point.java:117)
>>>>     
>>>>         
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jump.workbench.ui.EditTransaction.proposedGeometriesValid(EditTransaction.java:315)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jump.workbench.ui.EditTransaction.commit(EditTransaction.java:256)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jump.workbench.ui.EditTransaction.commit(EditTransaction.java:235)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jump.workbench.ui.plugin.DeleteSelectedItemsPlugIn.execute(DeleteSelectedItemsPlugIn.java:99)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jump.workbench.plugin.AbstractPlugIn$1.actionPerformed(AbstractPlugIn.java:130)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jump.workbench.ui.WorkbenchFrame$24.keyPressed(WorkbenchFrame.java:1142)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> com.vividsolutions.jump.workbench.ui.WorkbenchFrame$9.keyPressed(WorkbenchFrame.java:353)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.AWTEventMulticaster.keyPressed(AWTEventMulticaster.java:233)
>>>>     
>>>>         
>>>>>>>>>>>>          at
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.Component.processKeyEvent(Component.java:6221)
>>>>     
>>>>         
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>>>>>>>>> javax.swing.JComponent.processKeyEvent(JComponent.java:2801)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at java.awt.Component.processEvent(Component.java:6040)
>>>>>>>>>>>>          at java.awt.Container.processEvent(Container.java:2041)
>>>>>>>>>>>>          at
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.Component.dispatchEventImpl(Component.java:4630)
>>>>     
>>>>         
>>>>>>>>>>>>          at
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.Container.dispatchEventImpl(Container.java:2099)
>>>>     
>>>>         
>>>>>>>>>>>>          at java.awt.Component.dispatchEvent(Component.java:4460)
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.KeyboardFocusManager.redispatchEvent(KeyboardFocusManager.java:1848)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.DefaultKeyboardFocusManager.dispatchKeyEvent(DefaultKeyboardFocusManager.java:704)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.DefaultKeyboardFocusManager.preDispatchKeyEvent(DefaultKeyboardFocusManager.java:969)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.DefaultKeyboardFocusManager.typeAheadAssertions(DefaultKeyboardFocusManager.java:841)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.DefaultKeyboardFocusManager.dispatchEvent(DefaultKeyboardFocusManager.java:668)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.Component.dispatchEventImpl(Component.java:4502)
>>>>     
>>>>         
>>>>>>>>>>>>          at
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.Container.dispatchEventImpl(Container.java:2099)
>>>>     
>>>>         
>>>>>>>>>>>>          at java.awt.Window.dispatchEventImpl(Window.java:2475)
>>>>>>>>>>>>          at java.awt.Component.dispatchEvent(Component.java:4460)
>>>>>>>>>>>>          at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
>>>>     
>>>>         
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
>>>>     
>>>>         
>>>>>>>>>>>>          at
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>>>>>>>>> java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> ------------------------------------------------------------------------------
>>>>     
>>>>         
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>>> Download Intel&#174; Parallel Studio Eval
>>>>>>>>>>>> Try the new software tools for yourself. Speed compiling, find
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> bugs
>>>>     
>>>>         
>>>>>>>>>>>> proactively, and fine-tune applications for parallel performance.
>>>>>>>>>>>> See why Intel Parallel Studio got high marks during beta.
>>>>>>>>>>>> http://p.sf.net/sfu/intel-sw-dev
>>>>>>>>>>>> _______________________________________________
>>>>>>>>>>>> Jump-pilot-devel mailing list
>>>>>>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>
>>>>>>>>>>>>                     
>>>>>>>>>>>>                         
>>>> ------------------------------------------------------------------------------
>>>>     
>>>>         
>>>>>>>>>>> Download Intel&#174; Parallel Studio Eval
>>>>>>>>>>> Try the new software tools for yourself. Speed compiling, find bugs
>>>>>>>>>>> proactively, and fine-tune applications for parallel performance.
>>>>>>>>>>> See why Intel Parallel Studio got high marks during beta.
>>>>>>>>>>> http://p.sf.net/sfu/intel-sw-dev
>>>>>>>>>>> _______________________________________________
>>>>>>>>>>> Jump-pilot-devel mailing list
>>>>>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>                   
>>>>>>>>>>>                       
>>>>>>>>>>                 
>>>>>>>>>>                     
>>>>>>>>             
>>>>>>>>                 
>>>> ------------------------------------------------------------------------
>>>>     
>>>>         
>>>>>>>>             
>>>>>>>>                 
>>>> ------------------------------------------------------------------------------
>>>>     
>>>>         
>>>>>>>> Download Intel&#174; Parallel Studio Eval
>>>>>>>> Try the new software tools for yourself. Speed compiling, find bugs
>>>>>>>> proactively, and fine-tune applications for parallel performance.
>>>>>>>> See why Intel Parallel Studio got high marks during beta.
>>>>>>>> http://p.sf.net/sfu/intel-sw-dev
>>>>>>>>
>>>>>>>>             
>>>>>>>>                 
>>>> ------------------------------------------------------------------------
>>>>     
>>>>         
>>>>>>>> _______________________________________________
>>>>>>>> Jump-pilot-devel mailing list
>>>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>>>
>>>>>>>>
>>>>>>>>
>>>>>>>>             
>>>>>>>>                 
>>>> ------------------------------------------------------------------------------
>>>>     
>>>>         
>>>>>> Download Intel&#174; Parallel Studio Eval
>>>>>> Try the new software tools for yourself. Speed compiling, find bugs
>>>>>> proactively, and fine-tune applications for parallel performance.
>>>>>> See why Intel Parallel Studio got high marks during beta.
>>>>>> http://p.sf.net/sfu/intel-sw-dev
>>>>>> _______________________________________________
>>>>>> Jump-pilot-devel mailing list
>>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>         
>>>>>>             
>>>>>       
>>>>>           
>>>> ------------------------------------------------------------------------------
>>>>     
>>>>         
>>>>> Download Intel&#174; Parallel Studio Eval
>>>>> Try the new software tools for yourself. Speed compiling, find bugs
>>>>> proactively, and fine-tune applications for parallel performance.
>>>>> See why Intel Parallel Studio got high marks during beta.
>>>>> http://p.sf.net/sfu/intel-sw-dev
>>>>> _______________________________________________
>>>>> Jump-pilot-devel mailing list
>>>>> Jump-pilot-devel@lists.sourceforge.net
>>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>>
>>>>>
>>>>>       
>>>>>           
>>>> --
>>>> Martin Davis
>>>> Senior Technical Architect
>>>> Refractions Research, Inc.
>>>> (250) 383-3022
>>>>
>>>>
>>>>
>>>> ------------------------------------------------------------------------------
>>>> Download Intel&#174; Parallel Studio Eval
>>>> Try the new software tools for yourself. Speed compiling, find bugs
>>>> proactively, and fine-tune applications for parallel performance.
>>>> See why Intel Parallel Studio got high marks during beta.
>>>> http://p.sf.net/sfu/intel-sw-dev
>>>> _______________________________________________
>>>> Jump-pilot-devel mailing list
>>>> Jump-pilot-devel@lists.sourceforge.net
>>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>>
>>>>     
>>>>         
>>>   
>>> ------------------------------------------------------------------------
>>>
>>> ------------------------------------------------------------------------------
>>> Download Intel&#174; Parallel Studio Eval
>>> Try the new software tools for yourself. Speed compiling, find bugs
>>> proactively, and fine-tune applications for parallel performance.
>>> See why Intel Parallel Studio got high marks during beta.
>>> http://p.sf.net/sfu/intel-sw-dev
>>> ------------------------------------------------------------------------
>>>
>>> _______________________________________________
>>> Jump-pilot-devel mailing list
>>> Jump-pilot-devel@lists.sourceforge.net
>>> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>>>   
>>>       
>
> ------------------------------------------------------------------------------
> Download Intel&#174; Parallel Studio Eval
> Try the new software tools for yourself. Speed compiling, find bugs
> proactively, and fine-tune applications for parallel performance.
> See why Intel Parallel Studio got high marks during beta.
> http://p.sf.net/sfu/intel-sw-dev
> _______________________________________________
> Jump-pilot-devel mailing list
> Jump-pilot-devel@lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel
>
>   

-- 
Martin Davis
Senior Technical Architect
Refractions Research, Inc.
(250) 383-3022


------------------------------------------------------------------------------
Download Intel&#174; Parallel Studio Eval
Try the new software tools for yourself. Speed compiling, find bugs
proactively, and fine-tune applications for parallel performance.
See why Intel Parallel Studio got high marks during beta.
http://p.sf.net/sfu/intel-sw-dev
_______________________________________________
Jump-pilot-devel mailing list
Jump-pilot-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/jump-pilot-devel

Reply via email to