IncQuery: NPE indításkor, no match futtatáskor

+1 vote
asked Apr 19, 2014 in MDSD by molnargab (42 points)  
retagged Apr 20, 2014 by molnargab

Sziasztok!

IncQuery telepítés után (Marketplace-ről) nem sikerül a labor végi példát futtatni.
A QueryExplorer nem mutat találatot (pedig például a goodEntities-re kéne lennie).

A logban ezek látszanak, az első szerintem nagyjából az Eclipse indítása után, a második pedig a QueryExplorer betöltésekor:

!ENTRY org.eclipse.incquery.patternlanguage.emf.ui 4 0 2014-04-19 22:00:15.623
!MESSAGE Exception when executing clean for 'hu.bme.mit.mdsd.queries.sameNamedEntities' in fragment 'org.eclipse.incquery.validation.tooling.ValidationGenerator'

!STACK 0
java.lang.NullPointerException
    at org.eclipse.incquery.tooling.core.generator.genmodel.GenModelMetamodelProviderService$3.apply(GenModelMetamodelProviderService.java:263)
    at org.eclipse.incquery.tooling.core.generator.genmodel.GenModelMetamodelProviderService$3.apply(GenModelMetamodelProviderService.java:1)
    at com.google.common.collect.Iterators$7.computeNext(Iterators.java:649)
    at com.google.common.collect.AbstractIterator.tryToComputeNext(AbstractIterator.java:143)
    at com.google.common.collect.AbstractIterator.hasNext(AbstractIterator.java:138)
    at org.eclipse.incquery.tooling.core.generator.genmodel.GenModelMetamodelProviderService.findGenPackage(GenModelMetamodelProviderService.java:267)
    at org.eclipse.incquery.tooling.core.generator.genmodel.GenModelMetamodelProviderService.findGenPackage(GenModelMetamodelProviderService.java:229)
    at org.eclipse.incquery.tooling.core.generator.genmodel.GenModelMetamodelProviderService.findGenPackage(GenModelMetamodelProviderService.java:223)
    at org.eclipse.incquery.validation.tooling.ValidationGenerator.removeExtension(ValidationGenerator.java:112)
    at org.eclipse.incquery.tooling.core.generator.builder.CleanSupport.executeCleanUpOnFragments(CleanSupport.java:353)
    at org.eclipse.incquery.tooling.core.generator.builder.CleanSupport.cleanUpDelta(CleanSupport.java:279)
    at org.eclipse.incquery.tooling.core.generator.builder.CleanSupport.internalNormalClean(CleanSupport.java:251)
    at org.eclipse.incquery.tooling.core.generator.builder.CleanSupport.normalClean(CleanSupport.java:234)
    at org.eclipse.incquery.tooling.core.generator.builder.EMFPatternLanguageBuilderParticipant.build(EMFPatternLanguageBuilderParticipant.java:139)
    at org.eclipse.xtext.builder.impl.RegistryBuilderParticipant.build(RegistryBuilderParticipant.java:60)
    ...

!ENTRY org.eclipse.incquery.patternlanguage.emf.ui 4 0 2014-04-19 22:01:13.035
!MESSAGE EMF-IncQuery encountered an error in processing the EMF model. This happened while trying to process new metamodel elements.

!STACK 0
org.eclipse.incquery.runtime.base.exception.IncQueryBaseException: NsURI (hu.bme.mit.mdsd.erdiagram) collision detected between different instances of EPackages. If this is normal, try using dynamic EMF mode.
    at org.eclipse.incquery.runtime.base.core.NavigationHelperContentAdapter.checkEPackage(NavigationHelperContentAdapter.java:595)
    at org.eclipse.incquery.runtime.base.core.NavigationHelperContentAdapter.maintainMetamodel(NavigationHelperContentAdapter.java:565)
    at org.eclipse.incquery.runtime.base.core.NavigationHelperContentAdapter.maintainMetamodel(NavigationHelperContentAdapter.java:554)
    at org.eclipse.incquery.runtime.base.core.NavigationHelperContentAdapter.toKey(NavigationHelperContentAdapter.java:192)
    at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl.toKey(NavigationHelperImpl.java:395)
    at org.eclipse.incquery.runtime.base.core.NavigationHelperImpl.addFeatureListener(NavigationHelperImpl.java:489)
    at org.eclipse.incquery.runtime.internal.BaseIndexListener.ensure(BaseIndexListener.java:89)
    at org.eclipse.incquery.runtime.internal.EMFPatternMatcherRuntimeContext.enumerateDirectBinaryEdgeInstances(EMFPatternMatcherRuntimeContext.java:301)
    at org.eclipse.incquery.runtime.internal.EMFPatternMatcherRuntimeContext.enumerateAllBinaryEdgeInstances(EMFPatternMatcherRuntimeContext.java:328)
    at org.eclipse.incquery.runtime.rete.boundary.ReferenceFeeder.feed(ReferenceFeeder.java:43)
    ...

Oprendszer: Windows 8.1, Java: 1.7.0_51
Eclipse: szerintem az első MDSD laborról hoztuk el (4.3.0.I20130605-2000), ahogy nézem 32 bites.
IncQuery: 0.7.2.201403071538

Más is tapasztalt ilyesmi problémát? Hogyan tudnám mégis működésre bírni az IncQuery-t?

1 Answer

0 votes
answered Apr 20, 2014 by benedekh (677 points)  
selected Apr 20, 2014 by molnargab
 
Best answer

Próbáld meg, hátha segít a következő beállítás: Window -> Preferences -> EMF-IncQuery -> Query Explorer -> Dynamic EMF Mode melletti négyzet ki legyen pipálva.

commented Apr 20, 2014 by molnargab (42 points)  
köszi, ezt nem találtam meg valamiért
commented Apr 24, 2014 by molnargab (42 points)  
egyébként az NPE megmaradt
commented Apr 26, 2014 by benedekh (677 points)  
Próbáld ki, hogy felteszed a 0.8.x-es legújabb változatot. Ehhez lehet, hogy célszerű egy új EMF Eclipse-et feltenni, és az update site-okhoz hozzáadni az IncQuery integration site-ját (http://download.eclipse.org/incquery/updates/integration), és onnan telepíteni az IncQuery-t.

Ugyanúgy az IncQuery SDK-t kell leszedni + ami kell hozzá még Xtext és Xtend változatok, de erről a honlapjukon is olvashatsz (Xtext SDK 2.3, Xtend SDK 2.3).

Hogyha ez sem oldja meg, akkor írj egy e-mailt Ujhelyi Zoltánnak (az IncQuery egyik fejlesztőjének) az ujhelyiz (kukac) mit.bme.hu -ra, vagy egy Bug Reportot a Bugzillára (https://bugs.eclipse.org/bugs/buglist.cgi?product=Incquery&component=Runtime&resolution=---). A levélben írd le mindenképp a körülményeket, és a pontos hibaüzenetet (Stack Trace) is. A bugzillára lehetőleg angolul küldd a reportot, mert azt mások is olvassák.

Ennyit tudok segíteni, több ötletem sajnos nekem sincs.
...