Bug 781036 (TEIIDDES-1118)

Summary: Add/Remove operations on a VDB should block other operations on the VDB
Product: [JBoss] JBoss Enterprise SOA Platform 5 Reporter: Marc Shirley <mshirley>
Component: EDSAssignee: Van Halbert <vhalbert>
Status: CLOSED CURRENTRELEASE QA Contact: Mike Harvey <mharvey>
Severity: high Docs Contact:
Priority: high    
Version: 5.2.0 GACC: belong, dlesage, fnguyen, jolee, jpechane, vhalbert
Target Milestone: ---   
Target Release: 5.3.0 GA   
Hardware: Unspecified   
OS: Unspecified   
URL: http://jira.jboss.org/jira/browse/SOA-3521
Whiteboard:
Fixed In Version: Doc Type: Bug Fix
Doc Text:
According to http://wiki.eclipse.org/Eclipse/UNC_Paths, the java.net.* libraries do not handle UNC paths as well as org.eclipse.core.runtime.URIUtil does. As a result, when UNC paths were being used, VDB dependencies were not being resolved correctly and an ArrayIndexOutOfBoundsException was being thrown. The VdbModelEntry.synchronizeModelEntry method has been modified to use URIUtil to get the URI and no exception is encountered.
Story Points: ---
Clone Of: SOA-3521 Environment:
Windows
Last Closed: 2013-07-09 13:42:14 UTC Type: Support Patch
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: --- Target Upstream Version:
Bug Depends On:    
Bug Blocks: 835921    

Description Marc Shirley 2011-10-24 19:24:54 UTC
++ This bug is a clone of bug 781035 ++

Help Desk Ticket Reference: https://c.na7.visual.force.com/apex/Case_View?id=500A0000008SP5t
Steps to Reproduce: In workspace stored on network filesystem, perform below steps with any existing VDB.
1) Remove model from VDB
2) Immediately add same model back into VDB
Workaround Description: The network filesystem is mapped to a drive letter in a Windows environment.  Instead of using the UNC Path for the model, use the mapped drive, to import the model.
project_key: SOA

As adding/removing objects from a VDB results in filesystem operations of adding/removing indexes, this should result in a blocking of additional operations against the VDB.  If latency with the filesystem is large enough (for example, on a network filesystem) and no blocking is performed, multiple operations can be performed on the VDB resulting in the below exception:
!MESSAGE Unhandled event loop exception
!STACK 0
java.lang.ArrayIndexOutOfBoundsException: 0
	at org.teiid.designer.vdb.VdbModelEntry.synchronizeModelEntry(VdbModelEntry.java:435)
	at org.teiid.designer.vdb.Vdb.addModelEntry(Vdb.java:244)
	at com.metamatrix.modeler.internal.vdb.ui.editor.VdbEditor$25.selected(VdbEditor.java:1709)
	at com.metamatrix.ui.table.TableAndToolBar$2.run(TableAndToolBar.java:79)
	at org.eclipse.jface.action.Action.runWithEvent(Action.java:498)
	at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:584)
	at org.eclipse.jface.action.ActionContributionItem.access$2(ActionContributionItem.java:501)
	at org.eclipse.jface.action.ActionContributionItem$6.handleEvent(ActionContributionItem.java:452)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4066)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3657)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2640)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2604)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2438)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:671)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:664)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:369)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:620)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:575)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1408)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1384)

Comment 1 Van Halbert 2011-10-24 19:24:54 UTC
Link: Added: This issue Cloned from TEIIDDES-1118


Comment 2 Van Halbert 2011-10-24 19:25:59 UTC
Security: Added: JBoss Internal


Comment 3 Van Halbert 2011-11-02 19:19:26 UTC
Workaround Description: Added: The network filesystem is mapped to a drive letter in a Windows environment.  Instead of using the UNC Path for the model, use the mapped drive, to import the model.


Comment 6 Van Halbert 2012-02-06 15:16:48 UTC
Designer committed the fix to its 7.7 branch and should be in the SOA 5.3 release.

Comment 7 JBoss JIRA Server 2012-04-10 18:19:22 UTC
Barry LaFond <blafond> updated the status of jira TEIIDDES-1118 to Reopened

Comment 8 JBoss JIRA Server 2012-04-10 18:19:22 UTC
Barry LaFond <blafond> made a comment on jira TEIIDDES-1118

The fix broke on linux and we double-encoding the URI causing same ArrayIndexOutOfBoundsException.

Re-opening

Comment 11 JBoss JIRA Server 2012-09-17 16:09:46 UTC
Mark Drilling <mdrilling> updated the status of jira TEIIDDES-1118 to Resolved

Comment 12 JBoss JIRA Server 2012-09-17 16:09:46 UTC
Mark Drilling <mdrilling> made a comment on jira TEIIDDES-1118

commit additional fix for handling windows UNC path issue.  avoids conversion of EMF and java.net URI altogether due to UNC path issues.

Comment 13 Paul Nittel 2012-10-26 17:25:04 UTC
Tested and it worked fine.

Comment 14 JBoss JIRA Server 2012-12-14 19:45:17 UTC
Barry LaFond <blafond> updated the status of jira TEIIDDES-1118 to Closed

Comment 15 JBoss JIRA Server 2012-12-14 19:45:17 UTC
Barry LaFond <blafond> made a comment on jira TEIIDDES-1118

Version 8.0 Final is released

Comment 17 JBoss JIRA Server 2014-02-05 11:48:56 UTC
Lucie Fabrikova <lfabriko> updated the status of jira TEIIDDES-1118 to Reopened

Comment 18 JBoss JIRA Server 2014-08-26 15:24:56 UTC
Barry LaFond <blafond> updated the status of jira TEIIDDES-1118 to Resolved

Comment 19 JBoss JIRA Server 2014-11-17 16:22:07 UTC
Barry LaFond <blafond> updated the status of jira TEIIDDES-1118 to Closed