[udig-devel] AssertionError from LayerImpl - solution

Jesse Eichar jeichar at refractions.net
Tue Aug 29 15:18:56 PDT 2006


Are you serious!  that's nuts!  ok I'll make a jira and fix that for  
the next version.  That must have been some mad detective work you  
had to do.  Thanks a ton!

Jesse

On 29-Aug-06, at 3:15 PM, Nils Liebelt wrote:

> Hi,
>
> I finally figured out what's happening. Udig does not really stick  
> to the contract. In order to not get those ugly Exceptions. The  
> service needed not only to be identified with a java.net.URL but  
> rather with a java.net.URL ending on a slash or slashsomething:
>
> dbUrl = new URL("http://" + host); //exceptions from LayerImpl
> dbUrl = new URL("http://" + host + "/"); //all good
>
> Don't ask how long it takes to get so desperate when the original  
> error looks like a concurrency issue. ;-)
> There was nothing wrong with the GeoResource, ServiceExtension and  
> ConnectionFactory as suggested?!
> However thanks for your support. Hope I can help you this time.
>
>
> Regards,
>
> Nils
>
>
>
>
>> -----Ursprüngliche Nachricht-----
>> Von: User-friendly Desktop Internet GIS <udig- 
>> devel at lists.refractions.net>
>> Gesendet: 29.08.06 22:32:04
>> An: User-friendly Desktop Internet GIS <udig- 
>> devel at lists.refractions.net>
>> Betreff: Re: [udig-devel] AssertionError from LayerImpl
>
>
>> I am using the SDK.
>>
>>
>>> -----Ursprüngliche Nachricht-----
>>> Von: User-friendly Desktop Internet GIS <udig- 
>>> devel at lists.refractions.net>
>>> Gesendet: 29.08.06 22:29:27
>>> An: User-friendly Desktop Internet GIS <udig- 
>>> devel at lists.refractions.net>
>>> Betreff: Re: [udig-devel] AssertionError from LayerImpl
>>
>>
>>> Are you using an sdk or are you working against trunk?
>>>
>>> Jesse
>>>
>>> On 29-Aug-06, at 1:20 PM, Nils Liebelt wrote:
>>>
>>>> Hi,
>>>>
>>>> I implemented a custom IService. The service seems to work fine. I
>>>> can add it and browse its GeoResource. But when adding a resource
>>>> by drag'n'drop or programmatically I get following AssertionError
>>>> from the LayerImpl. The AssertionErrors is followed by unlimited
>>>> NPEs thrown by releaseLock() Method of the same class. In RC2 this
>>>> ended in a StackoverflowError. I am really stuck on this one.
>>>>
>>>> Regards,
>>>>
>>>> Nils
>>>>
>>>>
>>>> ENTRY net.refractions.udig.project 1 0 2006-08-29 21:47:56.265
>>>> !MESSAGE Error getting layer resources
>>>> !STACK 0
>>>> org.eclipse.swt.SWTException: Failed to execute runnable
>>>> (java.lang.AssertionError: Infinate loop detected, thread that is
>>>> loading GeoResources is attempting to call getGeoResources())
>>>> 	at org.eclipse.swt.SWT.error(SWT.java:2942)
>>>> 	at org.eclipse.swt.SWT.error(SWT.java:2865)
>>>> 	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages
>>>> (Synchronizer.java:126)
>>>> 	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:
>>>> 3102)
>>>> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java: 
>>>> 2761)
>>>> 	at net.refractions.udig.ui.PlatformGIS.runBlockingOperation
>>>> (Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.impl.LayerImpl.getGeoResource 
>>>> s
>>>> (Unknown Source)
>>>> 	at net.refractions.udig.project.internal.impl.LayerImpl.isType
>>>> (Unknown Source)
>>>> 	at
>>>> net.refractions.udig.render.internal.wms.basic.BasicWMSMetricsFacto 
>>>> ry2
>>>> .canRender(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.RendererCreatorIm 
>>>> pl$
>>>> InternalRenderMetricsFactory.canRender(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.RendererCreatorIm 
>>>> pl$
>>>> Processor.process(Unknown Source)
>>>> 	at net.refractions.udig.core.internal.ExtensionPointUtil.process
>>>> (Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.RendererCreatorIm 
>>>> pl.
>>>> initFactories(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.RendererCreatorIm 
>>>> pl.
>>>> initRenderMetrics(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.RendererCreatorIm 
>>>> pl.
>>>> createConfiguration(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.RendererCreatorIm 
>>>> pl.
>>>> changed(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.ui.internal.RenderManagerDynamic.initR 
>>>> end
>>>> erCreator(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.ui.internal.RenderManagerDynamic.initR 
>>>> end
>>>> erExecutor(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.ui.internal.RenderManagerDynamic.valid 
>>>> ate
>>>> RendererConfiguration(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.ui.internal.RenderManagerDynamic.refre 
>>>> sh(
>>>> Unknown Source)
>>>> 	at net.refractions.udig.project.ui.internal.RenderManagerAdapters
>>>> $1.refreshDirtyArea(Unknown Source)
>>>> 	at net.refractions.udig.project.ui.internal.RenderManagerAdapters
>>>> $1.notifyChanged(Unknown Source)
>>>> 	at org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify
>>>> (BasicNotifierImpl.java:229)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.ViewportModelImpl 
>>>> .fi
>>>> reNotification(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.ViewportModelImpl 
>>>> .se
>>>> tBounds(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.ViewportModelImpl 
>>>> .zo
>>>> omToBox(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.render.impl.ViewportModelImpl 
>>>> .si
>>>> zeChanged(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.ui.internal.render.displayAdapter.impl 
>>>> .Ev
>>>> entJob.sendResized(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.ui.internal.render.displayAdapter.impl 
>>>> .Ev
>>>> entJob.runEvent(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.ui.internal.render.displayAdapter.impl 
>>>> .Ev
>>>> entJob.fire(Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.ui.internal.render.displayAdapter.impl 
>>>> .Ev
>>>> entHandler$1.run(Unknown Source)
>>>> 	at org.eclipse.swt.widgets.Display.runTimer(Display.java:3167)
>>>> 	at org.eclipse.swt.widgets.Display.messageProc(Display.java:2503)
>>>> 	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native  
>>>> Method)
>>>> 	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:1656)
>>>> 	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java: 
>>>> 2756)
>>>> 	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:
>>>> 1699)
>>>> 	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:1663)
>>>> 	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench
>>>> (Workbench.java:367)
>>>> 	at org.eclipse.ui.PlatformUI.createAndRunWorkbench 
>>>> (PlatformUI.java:
>>>> 143)
>>>> 	at net.refractions.udig.internal.ui.UDIGApplication.run(Unknown
>>>> Source)
>>>> 	at org.eclipse.core.internal.runtime.PlatformActivator$1.run
>>>> (PlatformActivator.java:226)
>>>> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run
>>>> (EclipseStarter.java:376)
>>>> 	at org.eclipse.core.runtime.adaptor.EclipseStarter.run
>>>> (EclipseStarter.java:163)
>>>> 	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>>> 	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
>>>> 	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
>>>> 	at java.lang.reflect.Method.invoke(Unknown Source)
>>>> 	at org.eclipse.core.launcher.Main.invokeFramework(Main.java:334)
>>>> 	at org.eclipse.core.launcher.Main.basicRun(Main.java:278)
>>>> 	at org.eclipse.core.launcher.Main.run(Main.java:973)
>>>> 	at org.eclipse.core.launcher.Main.main(Main.java:948)
>>>> Caused by: java.lang.AssertionError: Infinate loop detected, thread
>>>> that is loading GeoResources is attempting to call  
>>>> getGeoResources()
>>>> 	at net.refractions.udig.project.internal.impl.LayerImpl.getLock
>>>> (Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.impl.LayerImpl.getGeoResource 
>>>> s
>>>> (Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.impl.LayerImpl.getGeoResource
>>>> (Unknown Source)
>>>> 	at
>>>> net.refractions.udig.project.internal.provider.LayerItemProvider.ge 
>>>> tTe
>>>> xt(Unknown Source)
>>>> 	at
>>>> org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider.getTex 
>>>> t
>>>> (AdapterFactoryLabelProvider.java:200)
>>>> 	at org.eclipse.jface.viewers.DecoratingLabelProvider.getText
>>>> (DecoratingLabelProvider.java:118)
>>>> 	at
>>>> net.refractions.udig.project.ui.AdapterFactoryLabelProviderDecorato 
>>>> r.g
>>>> etText(Unknown Source)
>>>> 	at org.eclipse.jface.viewers.DecoratingLabelProvider.updateLabel
>>>> (DecoratingLabelProvider.java:208)
>>>> 	at org.eclipse.jface.viewers.StructuredViewer.buildLabel
>>>> (StructuredViewer.java:1855)
>>>> 	at org.eclipse.jface.viewers.TreeViewer.doUpdateItem
>>>> (TreeViewer.java:228)
>>>> 	at org.eclipse.jface.viewers.AbstractTreeViewer
>>>> $UpdateItemSafeRunnable.run(AbstractTreeViewer.java:85)
>>>> 	at org.eclipse.core.internal.runtime.InternalPlatform.run
>>>> (InternalPlatform.java:1044)
>>>> 	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
>>>> 	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
>>>> 	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
>>>> 	at org.eclipse.jface.viewers.AbstractTreeViewer.doUpdateItem
>>>> (AbstractTreeViewer.java:621)
>>>> 	at org.eclipse.jface.viewers.StructuredViewer
>>>> $UpdateItemSafeRunnable.run(StructuredViewer.java:434)
>>>> 	at org.eclipse.core.internal.runtime.InternalPlatform.run
>>>> (InternalPlatform.java:1044)
>>>> 	at org.eclipse.core.runtime.Platform.run(Platform.java:783)
>>>> 	at org.eclipse.ui.internal.JFaceUtil$1.run(JFaceUtil.java:44)
>>>> 	at org.eclipse.jface.util.SafeRunnable.run(SafeRunnable.java:148)
>>>> 	at org.eclipse.jface.viewers.StructuredViewer.updateItem
>>>> (StructuredViewer.java:1763)
>>>> 	at org.eclipse.jface.viewers.AbstractTreeViewer.updateChildren
>>>> (AbstractTreeViewer.java:1782)
>>>> 	at
>>>> org.eclipse.jface.viewers.AbstractTreeViewer.internalRefreshStruct
>>>> (AbstractTreeViewer.java:1268)
>>>> 	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh
>>>> (AbstractTreeViewer.java:1245)
>>>> 	at org.eclipse.jface.viewers.AbstractTreeViewer.internalRefresh
>>>> (AbstractTreeViewer.java:1201)
>>>> 	at org.eclipse.jface.viewers.StructuredViewer$8.run
>>>> (StructuredViewer.java:1291)
>>>> 	at org.eclipse.jface.viewers.StructuredViewer.preservingSelection
>>>> (StructuredViewer.java:1201)
>>>> 	at  
>>>> org.eclipse.jface.viewers.CheckboxTreeViewer.preservingSelection
>>>> (CheckboxTreeViewer.java:364)
>>>> 	at org.eclipse.jface.viewers.StructuredViewer.refresh
>>>> (StructuredViewer.java:1289)
>>>> 	at org.eclipse.emf.edit.ui.provider.AdapterFactoryContentProvider
>>>> $ViewerRefresh.run(AdapterFactoryContentProvider.java:305)
>>>> 	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
>>>> 	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages
>>>> (Synchronizer.java:123)
>>>> 	... 49 more
>>>>
>>>> _______________________________________________
>>>> User-friendly Desktop Internet GIS (uDig)
>>>> http://udig.refractions.net
>>>> http://lists.refractions.net/mailman/listinfo/udig-devel
>>>
>>> _______________________________________________
>>> User-friendly Desktop Internet GIS (uDig)
>>> http://udig.refractions.net
>>> http://lists.refractions.net/mailman/listinfo/udig-devel
>>
>>
>> _______________________________________________
>> User-friendly Desktop Internet GIS (uDig)
>> http://udig.refractions.net
>> http://lists.refractions.net/mailman/listinfo/udig-devel
>
>
> _______________________________________________
> User-friendly Desktop Internet GIS (uDig)
> http://udig.refractions.net
> http://lists.refractions.net/mailman/listinfo/udig-devel



More information about the udig-devel mailing list