java - StaxEventItemWriter - File not writable issue -


i have item writer configured below generates xml:

<beans:bean id="delegateitemwriter" class="org.springframework.batch.item.xml.staxeventitemwriter" scope="step">     <beans:property name="resource" value="file:#{jobparameters['outputdirpath']}${myfilename}" />      <beans:property name="overwriteoutput" value="true"/>     <beans:property name="roottagname" value="disclosure-feed" />     <beans:property name="rootelementattributes" >         <beans:map>             <beans:entry key="xmlns:xsi" value="http://www.w3.org/2001/xmlschema-instance" />                            <beans:entry key="xsi:nonamespaceschemalocation" value="xyz.xsd"/>         </beans:map>     </beans:property>     <beans:property name="marshaller" ref="xmlmarshaller" />   </beans:bean> 

even though every thing seems correct, on restarting job after fixing failure of previous run, below error:

2013-07-19 02:14:34,921 [main] error org.springframework.batch.core.step.abstractstep  - encountered error executing step org.springframework.batch.item.itemstreamexception: file not writable: [/myoutputdir/myoutput.xml] 

when manually remove job entries batch_ tables job starts afresh start instead of failed during last run, file gets generated expected.

what reason issue? how resolve ? there configuration stuff missing ?

thanks reading!

looks bug in org.springframework.batch.item.utilfileutils.java, spring batch expecting file created in first run.

   if (!restarted) {                 if (file.exists()) {                    ...                 }                 if (file.getparent() != null) {                     new file(file.getparent()).mkdirs();                 }                 file.createnewfile();    }     if (!file.canwrite()) {             throw new itemstreamexception("file not writable...");    } 

if restart, no file created, hence getting exception.


Comments