[
https://issues.apache.org/jira/browse/IVYDE-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15608274#comment-15608274
]
Andree Wormuth edited comment on IVYDE-385 at 10/26/16 12:32 PM:
-----------------------------------------------------------------
*Background:*
I have several non-java projects in my eclipse workspace which contain really
huge XML files ( some hundreds of MBs or even gt 1 GB).
Of course it would be impossible to edit these within eclipse, but I wish to
access several other configuration files from these project within eclipse, so
that's why these "General Projects" exist.
>From time to time while traversing these projects - not opening the huge
>files, mind you - Eclipse starts to take all available CPU power and hangs,
>consuming all available memory and working excessively. After about half an
>hour it's done and everything's fine again.
I connected with Java Mission Control to the java process during the latest
"hang period" and dug out the stacktrace listed above.
To me it seems that the {{IvyFileContentDescriber}} is asked to describe the
content of at least one of these huge XML files and opens it to do so - which
is nigh impossible and takes a lot of time.
I checked out the latest version from {{svn trunk}} and found that
{{IvyFileContentDescriber}} has been removed as "unnecessary file", so - just
as expected - I have not been able to reproduce the problem since I have
installed the latest nightly built from the trunk.
Unfortunately I haven't been able to build a version from branch {{2.2.final}},
always getting a "inter-plug-in dependency" issue, though I have installed the
plug-ins as described in doc:
{quote}
[java] [eclipse.buildScript] Some inter-plug-in dependencies have not been
satisfied.
Bundle org.apache.ivyde.eclipse.resolvevisualizer:
Missing required plug-in org.eclipse.zest.core_[1.2.0,2.0.0).
Missing required plug-in org.eclipse.zest.layouts_[1.1.0,2.0.0).
Bundle org.apache.ivyde.eclipse:
Another singleton version selected:
org.apache.ivyde.eclipse_2.3.0.beta1-201610261253-dev
{quote}
Because of that and because I do not know why Eclipse takes each XML file it
finds in a general project and asks the IvyDE plugin to handle it, I am not
really able to suggest a solution or improvement here, let alone a patch.
But I fancy it should be possible to avoid opening all these files to perform
the condition check, or at least to fail faster.
Perhaps it would be possible to create another bugfix release for 2.2. without
these files?
was (Author: andree.wormuth):
*Background:*
I have several non-java projects in my eclipse workspace which contain really
huge XML files ( some hundreds of MBs or even gt 1 GB).
Of course it would be impossible to edit these within eclipse, but I wish to
access several other configuration files from these project within eclipse, so
that's why these "General Projects" exist.
>From time to time while traversing these projects - not opening the huge
>files, mind you - Eclipse starts to take all available CPU power and hangs,
>consuming all available memory and working excessively. After about half an
>hour it's done and everything's fine again.
I connected with Java Mission Control to the java process during the latest
"hang period" and dug out the stacktrace listed above.
To me it seems that the {{IvyFileContentDescriber}} is asked to describe the
content of at least one of these huge XML files and opens it to do so - which
is nigh impossible and takes a lot of time.
I checked out the latest version from {{svn trunk}} and found that
{{IvyFileContentDescriber}} has been removed as "unnecessary file", so - just
as expected - I have not been able to reproduce the problem since I have
installed the latest nightly built from the trunk.
Unfortunately I haven't been able to build a version from branch {{2.2.final}},
always getting a "inter-plug-in dependency" issue, though I have installed the
plug-ins as described in doc:
{quote}
[java] [eclipse.buildScript] Some inter-plug-in dependencies have not been
satisfied.
Bundle org.apache.ivyde.eclipse.resolvevisualizer:
Missing required plug-in org.eclipse.zest.core_[1.2.0,2.0.0).
Missing required plug-in org.eclipse.zest.layouts_[1.1.0,2.0.0).
Bundle org.apache.ivyde.eclipse:
Another singleton version selected:
org.apache.ivyde.eclipse_2.3.0.beta1-201610261253-dev
{quote}
Because of that and because I do not know why Eclipse takes each XML file it
finds in a general project and asks the IvyDE plugin to handle it, I am not
really able to suggest a solution or improvement here, let alone a patch.
But I fancy it should be possible to avoid opening all these files.
Perhaps it would be possible to create another bugfix release for 2.2. without
these files?
> IvyFileContentDescriber hangs with huge XML files
> -------------------------------------------------
>
> Key: IVYDE-385
> URL: https://issues.apache.org/jira/browse/IVYDE-385
> Project: IvyDE
> Issue Type: Improvement
> Affects Versions: 2.2.0.final
> Environment: Each of the recent Eclipse versions (Helios. Mars, Neon)
> Win 10
> Java 8
> Reporter: Andree Wormuth
>
> The {{IvyFileContentDescriber}} seems to open each XML it's presented to
> check if it's an ivy file:
> {quote}java.io.FileInputStream.readBytes line: not available native method
> java.io.FileInputStream.read line: 255
> org.eclipse.core.internal.resources.ContentDescriptionManager$LazyFileInputStream.read
> line: 173
> java.io.InputStream.read line: 101
> org.eclipse.core.internal.content.LazyInputStream.loadBlock line: 101
> org.eclipse.core.internal.content.LazyInputStream.ensureAvailable line: 65
> org.eclipse.core.internal.content.LazyInputStream.read line: 139
> org.apache.xerces.impl.XMLEntityManager$RewindableInputStream.read line: not
> available
> org.apache.xerces.impl.io.UTF8Reader.read line: not available
> org.apache.xerces.impl.XMLEntityScanner.load line: not available
> org.apache.xerces.impl.XMLEntityScanner.scanContent line: not available
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanContent line: not
> available
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl$FragmentContentDispatcher.dispatch
> line: not available
> org.apache.xerces.impl.XMLDocumentFragmentScannerImpl.scanDocument line: not
> available
> org.apache.xerces.parsers.XML11Configuration.parse line: not available
> org.apache.xerces.parsers.XML11Configuration.parse line: not available
> org.apache.xerces.parsers.XMLParser.parse line: not available
> org.apache.xerces.parsers.AbstractSAXParser.parse line: not available
> org.apache.xerces.jaxp.SAXParserImpl$JAXPSAXParser.parse line: not available
> org.apache.xerces.jaxp.SAXParserImpl.parse line: not available
> org.apache.ivyde.internal.eclipse.XMLHelper.parse line: 76
> org.apache.ivyde.internal.eclipse.ui.editors.IvyFileContentDescriber.checkCriteria
> line: 70
> org.apache.ivyde.internal.eclipse.ui.editors.IvyFileContentDescriber.describe
> line: 53
> org.eclipse.core.internal.content.ContentTypeCatalog.describe line: 229
> org.eclipse.core.internal.content.ContentTypeCatalog.collectMatchingByContents
> line: 201
> org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor
> line: 414
> org.eclipse.core.internal.content.ContentTypeCatalog.internalFindContentTypesFor
> line: 461
> org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor line:
> 357
> org.eclipse.core.internal.content.ContentTypeCatalog.getDescriptionFor line:
> 371
> org.eclipse.core.internal.content.ContentTypeMatcher.getDescriptionFor line:
> 76
> org.eclipse.core.internal.resources.ContentDescriptionManager.readDescription
> line: 453
> org.eclipse.core.internal.resources.ContentDescriptionManager.getDescriptionFor
> line: 363
> org.eclipse.core.internal.resources.File.getContentDescription line: 263
> org.eclipse.ui.internal.ide.model.WorkbenchResource.testContentTypeProperty
> line: 148
> org.eclipse.ui.internal.ide.model.WorkbenchResource.testAttribute line: 115
> org.eclipse.ui.internal.ActionExpression$ObjectStateExpression.preciselyMatches
> line: 512
> org.eclipse.ui.internal.ActionExpression$ObjectStateExpression.isEnabledFor
> line: 481
> org.eclipse.ui.internal.ActionExpression$AndExpression.isEnabledFor line: 131
> org.eclipse.ui.internal.ActionExpression$SingleExpression.isEnabledFor line:
> 716
> org.eclipse.ui.internal.ActionExpression.isEnabledFor line: 1022
> org.eclipse.ui.internal.decorators.DecoratorDefinition.isEnabledFor line: 282
> org.eclipse.ui.internal.decorators.DecoratorManager.getDecoratorsFor line: 323
> org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecoratorsFor
> line: 333
> org.eclipse.ui.internal.decorators.LightweightDecoratorManager.getDecorations
> line: 358
> org.eclipse.ui.internal.decorators.DecorationScheduler$1.ensureResultCached
> line: 367
> org.eclipse.ui.internal.decorators.DecorationScheduler$1.run line: 327
> org.eclipse.core.internal.jobs.Worker.run line: 55{quote}
> This fails if a project contains huge XML files.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)