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® 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® 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® 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® 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® 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® 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® 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® 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® 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