[ 
https://issues.apache.org/jira/browse/IVYDE-385?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15608274#comment-15608274
 ] 

Andree Wormuth commented on IVYDE-385:
--------------------------------------

*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)

Reply via email to