[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Newsgroup Home]
|
[news.eclipse.technology.buckminster] Re: Issues with headless metadata refresh
|
Hi Vaidas,
thoughs and ideas inline.
Vaidas NargÄlas wrote:
Hi Thomas,
I was doing this to switch workspace to a different target environment
(os/ws/arch):
1) I would delete buckminster metadata:
------------------------------
<delete>
<fileset dir="${workspace.dir}/.metadata/.plugins">
<include name="org.eclipse.buckminster.core/**/*"/>
<exclude name="org.eclipse.buckminster.core/**/.*"/>
<include name="org.eclipse.pde.core"/>
</fileset>
</delete>
------------------------------
Not sure why you would need to do this. Switching target platform should not require surgical
operations on the Buckminster meta-data. I guess you've had some problems in the past that you
worked around this way?
2) Next I would invoke this buckminster script:
------------------------------
setpref targetWS=${target.ws} targetOS=${target.os} targetArch=${target.arch} targetPlatformPath=${target.platform.dir}
build
perform xxx.yyy.zzz#create.product
------------------------------
I worked okay before buckminster 0.3.0. When I switched to
buckminster-0.3.0-r07733 this approach does not work in a stable way.
Sometimes it passes but sometimes it fails with the message on the
console:
------------------------------
INFO: perform 'xxx.yyy.zzz#create.product'
No component named xxx.yyy.zzz is known to Buckminster
------------------------------
After failure I can invoke buckminster command
perform xxx.yyy.zzz#create.product
and it passes then successfully. However sometimes it fails with the same
error message. But if I repeat the same command it succeeds eventually.
That should not happen randomly. Please answer the following:
- What kind of component is it that is failing (feature or plug-in)?
- Is it a workspace project or a component in your target platform?
- Can you see any special characteristics for this component such as platform filters etc.?
Then I added changed the script and added resolve command:
------------------------------
setpref targetWS=${target.ws} targetOS=${target.os} targetArch=${target.arch} targetPlatformPath=${target.platform.dir}
resolve -N xxx.yyy.zzz.cquery
build
perform xxx.yyy.zzz#create.product
------------------------------
Now I get again the situation that it passes sometimes but sometimes it
fails. It looks that I get different exceptions. Here are excerpts from
log file:
------------------------------
!ENTRY org.eclipse.buckminster.runtime 1 293 2008-01-17 17:09:03.981
!MESSAGE resolve '-N' '/path/to/xxx.yyy.zzz.cquery'
!ENTRY org.eclipse.core.resources 2 567 2008-01-17 17:09:06.323
!MESSAGE Failure occurred reading .project file.
!SUBENTRY 1 org.eclipse.core.resources 2 567 2008-01-17 17:09:06.323
!MESSAGE FWK005 parse may not be called while parsing.
!STACK 0
org.xml.sax.SAXException: FWK005 parse may not be called while parsing.
at com.sun.org.apache.xerces.internal.parsers.AbstractSAXParser.parse(AbstractSAXParser.java:1245)
at com.sun.org.apache.xerces.internal.jaxp.SAXParserImpl$JAXPSAXParser.parse(SAXParserImpl.java:522)
at javax.xml.parsers.SAXParser.parse(SAXParser.java:395)
at org.eclipse.core.internal.resources.ProjectDescriptionReader.read(ProjectDescriptionReader.java:552)
at org.eclipse.core.internal.resources.Workspace.loadProjectDescription(Workspace.java:1458)
at org.eclipse.buckminster.core.reader.ProjectDescReader.consumeStream(ProjectDescReader.java:59)
...
It looks that here could be something with missing interthread
synchronization. On the other hand maybe my way of switching to a different
target environment isn't the correct one.
Indeed. I think the ProjectDescriptionReader is reusing the same parser instance. I'll add a
synchronization. Thanks for reporting this.
Regards,
Thomas Hallgren