1

Strange event is happening in a Mule project. I have the application xml which is JPC.xml. This normally appears in the mule-deploy.properties as follows
redeployment.enabled=true encoding=UTF-8 config.resources=JPC.xml domain=default

When I choose Run As, Mule Application Which kicks off the build in the background prior to the deploy and run. During that time the mule-deploy.properties becomes:

redeployment.enabled=true
encoding=UTF-8
config.resources=
domain=default

And when the application runs it says it is missing the mule-config.xml

What is erasing it?

  • I am running into a similar issue. In my case, I tried importing an existing Mule 3.4.0 CE app from MuleStudio into the newest Anypoint Studio 3.5.0. After initial import of the exiting project in Anypoint I am able to run as Maven without incident. As soon as I edit any of my .properties files in the project, the next mvn build wipes out mule-deploy.properties. Worse still, it then causes studio to do this on other projects in studio, including those that were never existed in the old MuleStudio. – mmeyer Nov 19 '14 at 21:39

1 Answers1

1

I think I may have found the root of this issue.

It seems to be a bug related to jdk_1.7.0_45 having to do with xml parsing. see: What's causing these ParseError exceptions when reading off an AWS SQS queue in my Storm cluster

I noticed several errors logged in eclipse/anypoint as:

!ENTRY org.mule.tooling.core 4 0 2014-11-19 14:16:41.081
!MESSAGE Error opening resource measurement_scheduler.xml
!STACK 0
javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1]
Message: JAXP00010001: The parser has encountered more than "64000" entity expansions in this document; this is the limit imposed by the JDK.

I also noticed that after restarting Anypoint, I would be able to build with maven successfully and my mule-deploy.properties file would again have content. Until...at some point after several edits to things in Anypoint, I would again get mvn build that wiped out the contents of mule-deploy.properties.

I further noticed that once this problem started to happen in one project in Anypoint, it would ALSO start happening in ANY project I built in Anypoint...until restart of Anypoint.

It seems this bug in jdk 1.7.0_45 mistakenly applies this limit in the xml parser to all opened files cumulatively, instead of per file. I suspect this causes Anypoint to not finish parsing all of the xml docs that make up my app and therefore couldnt re-create the mule-deploy.properties...leaving it blank.

Upgrading to newer jdk would fix this.

Another way to work around it is to override this limit for xml parser by adding the following to ${JAVA_HOME}/jre/lib/jaxp.properties:

jdk.xml.entityExpansionLimit=0
jdk.xml.maxGeneralEntitySizeLimit=0

I am not certain that both limits need set to work-around this. Possibly only entityExpansionLimit is needed.

After making this change I am now happily able to use Anypoint again. Beware that using this work-around possibly opens you up to a denial-of-service attack through the xml parser if your same jre is used for other not-so-trusted processes.

Community
  • 1
  • 1
mmeyer
  • 3,598
  • 1
  • 19
  • 22