Java Mailing List Archive

http://www.junlu.com/

Home » Home (12/2007) » Tomcat Users »

Does jscv "corrupt" Permission-settings ... ?

Christoph Meier

2004-05-03


Hello

some days ago i had some problems with mkdirs() with some services
running in Tomcat-WebApps.
(Subject was "writing to File-System; IOException on File.mkdirs()
and/or File.createNewFile()" )

Doug gave me the final hint which helped me to solve the problem.
(although i have to confess, that i do not understand all in detail why
it did not worked "before" and why it is working "now" ....)

Originally i (or "my admin") wanted to start tomcat using jsvc like it
is recommended here ->
http://jakarta.apache.org/tomcat/tomcat-5.0-doc/setup.html


ps auxfw
shows me that jsvc is running as root,
#----------------------------
root    9267 0.0 0.0   28  28 ?     S   Apr17  0:02 runsv tomcat
root   23875 0.0 0.0 1412 560 ?     S   00:00  0:00 \_
jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:SurvivorRatio=8
tomcat5 23878 82.0 1.2 686988 26008 ?    R   00:00  0:00    \_
jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:SurvivorRati
tomcat5 23879 0.0 1.2 686988 26012 ?    S   00:00  0:00      
\_ jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:Survivor
tomcat5 23880 2.0 1.2 686988 26012 ?    S   00:00  
0:00         \_ jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:Surv
tomcat5 23881 0.0 1.2 686988 26020 ?    S   00:00  
0:00         \_ jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:Surv
tomcat5 23882 0.0 1.2 686988 26020 ?    S   00:00  
0:00         \_ jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:Surv
#.....
#----------------------------
although the script which calls jsvc wants tomcat5 to run it ...

#---------- script to call jsvc -----------------------------
#!/bin/sh
JAVA_HOME=/usr/java
JAVA_OPTS="${JAVA_OPTS} -XX:NewSize=48m -XX:MaxNewSize=48m
-XX:SurvivorRatio=8 -Xms128m -Xmx512m"
CATALINA_OPTS=
CATALINA_BASE=/home/hmb/catalina_5_19
#CATALINA_BASE=/tomcat/hmb
export CATALINA_BASE
CATALINA_HOME=$CATALINA_BASE
CATALINA_TMPDIR="$CATALINA_BASE"/temp
JAVA_ENDORSED_DIRS="$CATALINA_HOME"/common/endorsed

CLASSPATH=\
$CATALINA_HOME/bin/commons-logging-api.jar:\
$JAVA_HOME/lib/tools.jar:\
$CATALINA_HOME/bin/commons-daemon.jar:\
$CATALINA_HOME/bin/bootstrap.jar


. $CATALINA_HOME/bin/custom.sh

umask 006

exec $CATALINA_HOME/bin/jsvc $JAVA_OPTS $CATALINA_OPTS \
  -user tomcat5 \
    -nodetach \
  -home $JAVA_HOME \
    -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
    -Dcatalina.base=$CATALINA_BASE \
  -Dcatalina.home=$CATALINA_HOME \
    -Djava.io.tmpdir=$CATALINA_TMPDIR \
  -outfile $CATALINA_BASE/logs/catalina.out \
  -errfile '&1' \
  $CATALINA_OPTS \
  -cp $CLASSPATH \
  org.apache.catalina.startup.Bootstrap
#---------- EOF: script to call jsvc -----------------------------

when i call catalina.sh to start tomcat, e.g. see below

#------- another script starting tomcat by using catalina.sh
----------------
#!/bin/sh
# XDEBUG="-Xnoagent -Xdebug
-Xrunjdwp:transport=dt_socket,address=8001,server=y,suspend=n"
# export XDEBUG
. ./custom.sh
JAVA_OPTS="${JAVA_OPTS} -XX:NewSize=48m -XX:MaxNewSize=48m
-XX:SurvivorRatio=8 -Xms128m -Xmx512m"
export JAVA_OPTS
./catalina.sh start
#------- EOF:  another script startin tomcat by using catalina.sh
----------------


all processes belong to tomcat5 and everything is fine
ps auxfw =>
#-----------------------------
tomcat5 25099 28.3 3.3 708200 68588 pts/1 S   00:11  0:03
/usr/java/bin/java -Dlog4j.configuration=file:////home/hmb/catalina_5
tomcat5 25100 0.0 3.3 708200 68588 pts/1 S   00:11  0:00 \_
/usr/java/bin/java -Dlog4j.configuration=file:////home/hmb/catali
tomcat5 25101 0.9 3.3 708200 68588 pts/1 S   00:11  0:00    \_
/usr/java/bin/java -Dlog4j.configuration=file:////home/hmb/ca
tomcat5 25102 0.0 3.3 708200 68588 pts/1 S   00:11  0:00    \_
/usr/java/bin/java -Dlog4j.configuration=file:////home/hmb/ca
# .....
#-----------------------------

there are good reasons to start tomcat using jsvc, but when i do it, i
have some problems with permissions in the file-system.
are there some jsvc-cracks which already know the problem i described or
did i something "wrong".
by the way, i have no reason to run tomcat as privileged service, port
8080 is okay.

thanks in advance,
kind reagrds,
christoph

>Christoph,
>
>If you are going to run Tomcat on port 8080 and 8443 then you can use the
>normal startup script. If you need it on port 80 the you have two choices,
>run as root (not good) or use jsrv daemon which starts tomcat as root then
>changes the user id as set in the startup script.
>
>If you need to respawn the process if it fails then call the startup.sh from
>the inittab with repawn.
>
>Glad you got it going.
>
>Good luck.
>
>Doug
>
>----- Original Message -----
>From: "Christoph Meier" <christoph.meier@(protected)>
>To: "Tomcat Users List" <tomcat-user@(protected)>
>Sent: Sunday, May 02, 2004 10:42 AM
>Subject: Re: writing to File-System; IOException on File.mkdirs() and/or
>File.createNewFile()
>
>
>
>
>>Doug
>>
>>finally, it works.
>>
>>  
>>
>>>This appears to be a permissions issue. ...
>>>
>>>    
>>>
>>you are right.
>>you might remember that i started Tomcat with a custom-script (see some
>>post before)
>>ps -auxfw =>
>>#--------------------
>>root    9267 0.0 0.0   28  28 ?     S   Apr17  0:02 runsv
>>  
>>
>tomcat
>
>
>>root   29989 0.0 0.0 1416 564 ?     S   16:26  0:00 \_
>>jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:SurvivorRatio=8
>>tomcat5 29992 6.9 3.3 708184 68556 ?    S   16:26  0:03    \_
>>jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:SurvivorRati
>>tomcat5 29993 0.0 3.3 708184 68556 ?    S   16:26  0:00
>>\_ jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:Survivor
>>tomcat5 29994 0.3 3.3 708184 68556 ?    S   16:26
>>0:00         \_ jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:Surv
>>tomcat5 29995 0.0 3.3 708184 68556 ?    S   16:26
>>0:00         \_ jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=48m -XX:Surv
>>tomcat5 29996 0.0 3.3 708184 68556 ?    S   16:26
>>0:00         \_ jsvc.exec -XX:NewSize=48m -XX:MaxNewSize=4
>>#--------------------
>>the process on top still belongs root (which i did not expected) , but
>>this is just an observation,
>>is still do not understand its effect
>>
>>
>>after your mail i tried using the "normal" catalina.sh start =>
>>#-----------------------------------------------
>>tomcat5 30290 70.0 2.3 696512 48568 pts/4 R   16:29  0:02
>>/usr/java/bin/java -Dlog4j.configuration=file:////home/hmb/catalina_5
>>tomcat5 30291 0.0 2.3 696512 48572 pts/4 S   16:29  0:00 \_
>>/usr/java/bin/java -Dlog4j.configuration=file:////home/hmb/catali
>>tomcat5 30292 0.0 2.3 696512 48572 pts/4 S   16:29  0:00    \_
>>/usr/java/bin/java -Dlog4j.configuration=file:////home/hmb/ca
>>tomcat5 30293 0.0 2.3 696512 48572 pts/4 S   16:29  0:00    \_
>>/usr/java/bin/java -Dlog4j.configuration=file:////home/hmb/ca
>>tomcat5 30294 0.0 2.3 696512 48572 pts/4 S   16:29
>>#--------------------
>>
>>now even the Tomcat-"top"-process belomgs to tomcat5 and everything works.
>>
>>actually it was "our" admin who advised to use the runsv-daemon to
>>controll the tomcat-process ... its job is to restart the process if
>>Tomcat-top-process should go down ... actually a practically thing ...
>>but well
>>
>>  
>>
>>>It may be the file system does not like the mkdirs() command for non
>>>    
>>>
>root
>
>
>>>users.
>>>
>>>
>>>    
>>>
>> such behaviour i would considerate as a bug.
>>i'm extremly happy this is not the case.
>>
>>
>>Thanks for your hints!
>>
>>_christoph
>>
>>  
>>
>>>Another test would be to logon as tomcat5 and run your program from the
>>>shell. If it fails, that backs up the idea that you need to be root to
>>>    
>>>
>run
>
>
>>>mkdirs(). Or that you still don't have the correct permissions set.
>>>
>>>Do a ls -l on your directories and drill down several levels to ensure
>>>    
>>>
>that
>
>
>>>the change propagated down.
>>>
>>>Next look at the directories and see if the command mkdirs() created any
>>>    
>>>
>of
>
>
>>>the levels.
>>>
>>>Also what are the permissions set for on the catalina_5_19 directory?
>>>
>>>I am no expert on this by far and it is possible that I am missing
>>>something.
>>>
>>>As another test, I you would like, email me directly your test file and I
>>>will run it on my test box. I am also running TC5 on Linux and JDK1.4.2.
>>>
>>>Doug
>>>
>>>
>>>----- Original Message -----
>>>From: "Christoph Meier" <christoph.meier@(protected)>
>>>To: "Parsons Technical Services" <parsonstechnical@(protected)>
>>>Sent: Saturday, May 01, 2004 7:02 AM
>>>Subject: Re: writing to File-System; IOException on File.mkdirs() and/or
>>>File.createNewFile()
>>>
>>>
>>>
>>>
>>>    
>>>
>>>>Doug
>>>>
>>>>thanks for your hint.
>>>>when running tomcat as root, now it works (i thought that i already
>>>>tried that out, obvisouly i didn't)
>>>> ... the TestService worked suddenly, other parts of my cms-app i had
>>>>to "fix" a bit; it seems like there some file operations which work on
>>>>solaris with a jdk1.3 but do not not with the jdk1.4.2 on linux; but i
>>>>adapted it now
>>>>
>>>>.... BUT
>>>>... after doing
>>>># chown -Rc tomcat5 /home/hmb/catalina_5_19
>>>>and
>>>># chgrp -Rc tomcat5 /home/hmb/catalina_5_19
>>>>
>>>>and starting tomcat as tomcat5...
>>>>... i have the same problems like before
>>>>
>>>>
>>>>
>>>>java.io.IOException:
>>>>
>>>>
>>>>
>>>>    
>>>>
>>/home/hmb/catalina_5_19/webapps/hmb/cms-content/edit/contents/xml/pages/de.
>>  
>>
>x
>
>
>>>ml
>>>
>>>
>>>    
>>>
>>>>java.io.IOException:
>>>>
>>>>
>>>>
>>>>    
>>>>
>>/home/hmb/catalina_5_19/webapps/hmb/cms-content/edit/contents/xml/pages/de.
>>  
>>
>x
>
>
>>>ml
>>>
>>>
>>>    
>>>
>>>>at java.io.UnixFileSystem.createFileExclusively(Native Method) at
>>>>java.io.File.createNewFile (File.java:828) at
>>>>ch.webmover.cms.content.page.XmlCmsPage.save
>>>><<<<<<<<<<
>>>>
>>>>... whereas the root-cause for the failing of >>createNewFile()<< still
>>>>is the failing of mkdirs() like describedin my last post ...
>>>>
>>>>anyway, Doug, thank you.
>>>>
>>>>_christoph
>>>>
>>>>
>>>>
>>>>    
>>>>
>>>>>Christoph,
>>>>>
>>>>>Just as a quick test try this.
>>>>>
>>>>>Start Tomcat from the prompt as root using
>>>>>/home/hmb/catalina_5_19/bin/startup.sh
>>>>>
>>>>>If it works you have a permissions problem.
>>>>>
>>>>># chown -Rc tomcat5 /home/hmb/catalina_5_19
>>>>>
>>>>>and for good measure
>>>>>
>>>>># chgrp -Rc tomcat5 /home/hmb/catalina_5_19
>>>>>
>>>>>Note the permissions on the directories as well as the files.
>>>>>
>>>>>>From your first post it appears that you can read a file if it is
>>>>>      
>>>>>
>there
>
>
>>>>>      
>>>>>
>>>and
>>>
>>>
>>>    
>>>
>>>>>write one as well. The real issue is in creating a directory. Is this
>>>>>correct?
>>>>>
>>>>>Doug
>>>>>www.parsonstechnical.com
>>>>>
>>>>>
>>>>>
>>>>>----- Original Message -----
>>>>>From: "Christoph Meier" <christoph.meier@(protected)>
>>>>>To: "Tomcat Users List" <tomcat-user@(protected)>
>>>>>Sent: Thursday, April 29, 2004 7:28 PM
>>>>>Subject: Re: writing to File-System; IOException on File.mkdirs()
>>>>>      
>>>>>
>and/or
>
>
>>>>>File.createNewFile()
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>      
>>>>>
>>>>>>Hi
>>>>>>
>>>>>>today i was debugging a lillte bit deeper (into sdk 1.4.2) to find out
>>>>>>where the IOException ecatly is thrown ...
>>>>>>in my desperation i also tried an alternative jre (blackdown); the
>>>>>>debugging i did with standard sun j2se
>>>>>>
>>>>>>... may be this can help somebody to give me the final hint.
>>>>>>
>>>>>>at the end of this mail i attach the script i'm using to start Tomcat
>>>>>>(onto which i added a "umask 006" ...)
>>>>>>
>>>>>>-> debugging aFile.mkdirs()
>>>>>>-----------------------------------------------------
>>>>>>public class File implements java.io.Serializable, Comparable {
>>>>>>// ...
>>>>>>static private FileSystem fs = FileSystem.getFileSystem();
>>>>>>
>>>>>>public boolean mkdirs() {
>>>>>> if (exists()) {
>>>>>>   return false;
>>>>>> }
>>>>>> if (mkdir()) {
>>>>>>    return true;
>>>>>> }
>>>>>>   File canonFile = null;
>>>>>>   try {
>>>>>>      canonFile = getCanonicalFile();
>>>>>>   } catch (IOException e){    // -> 1
>>>>>>      return false;
>>>>>>   }
>>>>>> String parent = canonFile.getParent();
>>>>>>   return (parent != null) && (new File(parent).mkdirs() &&
>>>>>>canonFile.mkdir());
>>>>>> }
>>>>>>// ...
>>>>>> public File getCanonicalFile() throws IOException {
>>>>>>   return new File(getCanonicalPath());
>>>>>> }
>>>>>>// ...
>>>>>> public String getCanonicalPath() throws IOException {
>>>>>>  return fs.canonicalize(fs.resolve(this));
>>>>>> }
>>>>>>
>>>>>>// ...
>>>>>>
>>>>>>}
>>>>>>--------------------------------------------
>>>>>>
>>>>>>Exception is thrown at (1) in >>mkdirs()<<
>>>>>>when calling >>getCanonicalFile()<<
>>>>>>the IOException is passed from >>getCanonicalPath()<<
>>>>>>within >>getCanonicalPath()<< it is  >>fs.canonicalize()<< which
>>>>>>
>>>>>>
>>>>>>        
>>>>>>
>>>fails.
>>>
>>>
>>>    
>>>
>>>>>>>>fs<< is the plattform-dependant Implementation of abstract
>>>>>>>>
>>>>>>>>
>>>>>>>>          
>>>>>>>>
>>>>>>java.io.FileSystem , for which i had no Source-Code to debugg into;
>>>>>>actually it is java.io.UnixFileSystem, and i know how it looks like
>>>>>>(see
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>        
>>>>>>
>>>http://www.cs.purdue.edu/homes/palsberg/cs565/java-source/java.1.2.2/src/s
>>>    
>>>
>o
>
>
>>>>    
>>>>
>>>laris/classes/java/io/UnixFileSystem.java
>>>
>>>
>>>    
>>>
>>>>>      
>>>>>
>>>>>>, maybe there is a newer version somewhere )
>>>>>>
>>>>>>in UnixFileSystem (see Link above) >>canonicalize()<< calls a native
>>>>>>method;
>>>>>>#---- snippet ----
>>>>>>public native String canonicalize(String path) throws IOException;
>>>>>>#----------------
>>>>>>
>>>>>>
>>>>>>the stack trace when calling directly >>aFile.getCanonicalPath()<< im
>>>>>>my TestService looks like:
>>>>>>->
>>>>>>.#-------------------------------------
>>>>>>java.io.IOException: Bad pathname
>>>>>>    at java.io.UnixFileSystem.canonicalize0(Native Method)
>>>>>>    at java.io.UnixFileSystem.canonicalize (UnixFileSystem.java:154)
>>>>>>    at java.io.File.getCanonicalPath (File.java:513)
>>>>>>    at ch.hmb.app.service.TestService.writeTo(TestService.java:78)
>>>>>>#---------------------------------------
>>>>>>.. the "Bad pathname" is nothing else than
>>>>>>"home/hmb/catalina_5_19/webapps/hmb/a/1.txt" which should't be that
>>>>>>        
>>>>>>
>bad
>
>
>>>>>>...(i guessed)
>>>>>>... later on in my TestService ...
>>>>>>when calling >>aFile.createNewFile()<< next Exception is thrown
>>>>>>#------------------------------------------------------------------
>>>>>>    at java.io.UnixFileSystem.createFileExclusively(Native Method)
>>>>>>    at java.io.File.createNewFile (File.java:828)
>>>>>>    at ch.hmb.app.service.TestService.writeTo(TestService.java:94)
>>>>>>#----------------------------------------------------
>>>>>>... but that's no more mistery since >>mkdirs()<< already failed
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>below are the stacks from the Exceptions thrown when using
>>>>>>blackdown-jre ... looks the same
>>>>>>#-------------------------------------
>>>>>>java.io.IOException: Bad pathname
>>>>>>    at java.io.UnixFileSystem.canonicalize0(Native Method)
>>>>>>    at java.io.UnixFileSystem.canonicalize (UnixFileSystem.java:154)
>>>>>>    at java.io.File.getCanonicalPath (File.java:513)
>>>>>>    at ch.hmb.app.service.TestService.writeTo(TestService.java:78)
>>>>>>#---------------------------------------
>>>>>>java.io.IOException: /home/hmb/catalina_5_19/webapps/hmb/a/1.txt
>>>>>>    at java.io.UnixFileSystem.createFileExclusively(Native Method)
>>>>>>    at java.io.File.createNewFile (File.java:828)
>>>>>>    at ch.hmb.app.service.TestService.writeTo(TestService.java:94)
>>>>>>#----------------------------------------------------
>>>>>>
>>>>>>
>>>>>>to finish i would like to emphasise again, that i still have another
>>>>>>Class "Test" which works fine concerning
>>>>>>
>>>>>>
>>>>>>        
>>>>>>
>>>>>>>>mkdirs()<< and >>createNewFile()<< when i start it directly from
>>>>>>>>          
>>>>>>>>
>the
>
>
>>>>>>>>          
>>>>>>>>
>>>>>>shell (without Tomcat)
>>>>>>
>>>>>>->
>>>>>>tomcat5@(protected)
>>>>>>/home/hmb/catalina_5_19/webapps/hmb/1/2/3/4/myFile.txt
>>>>>>-> and the File is written!!!
>>>>>>
>>>>>>well, i still hope to find a solution ... may be someone has a good
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>        
>>>>>>
>>>>>hint?
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>      
>>>>>
>>>>>>thanks,
>>>>>>regards,
>>>>>>christoph
>>>>>>
>>>>>>
>>>>>>
>>>>>>############## start-script ########################
>>>>>>JAVA_HOME=/usr/java
>>>>>>JAVA_OPTS="${JAVA_OPTS} -XX:NewSize=48m -XX:MaxNewSize=48m
>>>>>>-XX:SurvivorRatio=8 -Xms128m -Xmx512m"
>>>>>>CATALINA_OPTS=
>>>>>>CATALINA_BASE=/home/hmb/catalina_5_19
>>>>>>CATALINA_HOME=$CATALINA_BASE
>>>>>>CATALINA_TMPDIR="$CATALINA_BASE"/webapps/hmb
>>>>>>JAVA_ENDORSED_DIRS="$CATALINA_HOME"/common/endorsed
>>>>>>
>>>>>>CLASSPATH=\
>>>>>>$JAVA_HOME/lib/tools.jar:\
>>>>>>$CATALINA_HOME/bin/commons-daemon.jar:\
>>>>>>$CATALINA_HOME/bin/bootstrap.jar
>>>>>>
>>>>>>. $CATALINA_HOME/bin/custom.sh
>>>>>>
>>>>>>umask 006
>>>>>>
>>>>>>exec $CATALINA_HOME/bin/jsvc $JAVA_OPTS $CATALINA_OPTS \
>>>>>> -user tomcat5 \
>>>>>>         -nodetach \
>>>>>> -home $JAVA_HOME \
>>>>>>         -Djava.endorsed.dirs="$JAVA_ENDORSED_DIRS" \
>>>>>>         -Dcatalina.base=$CATALINA_BASE \
>>>>>> -Dcatalina.home=$CATALINA_HOME \
>>>>>> -Djava.io.tmpdir=$CATALINA_TMPDIR \
>>>>>> -outfile /home/hmb/catalina_5_19/logs/catalina.out \
>>>>>> -errfile '&1' \
>>>>>> $CATALINA_OPTS \
>>>>>> -cp $CLASSPATH \
>>>>>> org.apache.catalina.startup.Bootstrap
>>>>>>
>>>>>>############ EOF: start-script ########################
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>        
>>>>>>
>>>>>>>Hallo
>>>>>>>
>>>>>>>i have some problems writing Files to the local harddisk.
>>>>>>>running Tomcat 5.19 on a Linux with a jre1.4.2, Tomcat started
>>>>>>>        
>>>>>>>
>without
>
>
>>>>>>>security-option;
>>>>>>>process-owner is a user called "tomcat5"
>>>>>>>
>>>>>>>i'm trying to write a File (from scratch) into
>>>>>>>$catalinaBase/webapps/myApp/ .
>>>>>>>$catalinaBase/** belongs to user tomcat5, Permissions set to 770 .
>>>>>>>
>>>>>>>i'm doing something like:
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>        
>>>>>>>
>>>>-------------------------------------------------------------------------
>>>>    
>>>>
>>>>>      
>>>>>
>>>>>>        
>>>>>>
>>>>>>>   File aFile = new File(aFilePath);
>>>>>>>   if (!aFile.mkdirs()){
>>>>>>>     //
>>>>>>>   }
>>>>>>>       if (aFile.exists()){
>>>>>>>      if (!aFile.delete()){
>>>>>>>       //
>>>>>>>      }
>>>>>>>   }
>>>>>>>   try {
>>>>>>>      aFile.createNewFile();
>>>>>>>   } catch (IOException e) {
>>>>>>>      e.printStackTrace();
>>>>>>>   }
>>>>>>>     // adding some xml into the file ...
>>>>>>>    addContentToFile(aFile);
>>>>>>>------------------------------------------------------------
>>>>>>>if the parent directory of "aFilePath" already exists, everything
>>>>>>>works fine ...
>>>>>>>if one of the parent-dirs is missing, it fails ...
>>>>>>>e.g. $catalinaBase/webapps/myApp/myTestFile.txt wil be created
>>>>>>>        
>>>>>>>
>(since
>
>
>>>>>>>$catalinaBase/webapps/myApp already exists), but
>>>>>>>$catalinaBase/webapps/myApp/a/b/c/myTestFile.txt fails ....
>>>>>>>
>>>>>>>when debugging i see that >>aFile.mkdirs()<< returns false ... but
>>>>>>>since it throws no Exception, i has no clear idea why mkdirs() fails,
>>>>>>>later in the code >>aFile.createNewFile()<< throws an IOException ...
>>>>>>>
>>>>>>>
>>>>>>>java.io.IOException: /home/hmb/catalina_5_19/webapps/hmb/a/1.txt
>>>>>>>   at java.io.UnixFileSystem.createFileExclusively(Native Method)
>>>>>>>   at java.io.File.createNewFile (File.java:828)
>>>>>>>   at ch.hmb.app.service.TestService.writeTo(TestService.java:93)
>>>>>>><<
>>>>>>>when inspecting the IOException with debugger (using Eclipse build
>>>>>>>30M8) root-cause of IOException or its localized message only
>>>>>>>        
>>>>>>>
>contains
>
>
>>>>>>>the path of the File which i wanted to create ... (e.g.
>>>>>>>/home/hmb/catalina_5_19/webapps/hmb/a/1.txt)
>>>>>>>
>>>>>>>the "funny" thing is, all works fine with same Deployment on win2000
>>>>>>>and solaris (with same permissions set, i guess).
>>>>>>>
>>>>>>>has somebody an idea? does the problem concern rights/permissions
>>>>>>>and/or user/groups on the file-system or must i do a special grant in
>>>>>>>the cataliny.policy (and starting tomcat with the security option)?
>>>>>>>
>>>>>>>thanks in advance,
>>>>>>>kind regards
>>>>>>>christoph
>>>>>>>
>>>>>>>
>>>>>>>---------------------------------------------------------------------
>>>>>>>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>>>>>>>For additional commands, e-mail: tomcat-user-help@(protected)
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>        
>>>>>>>
>>>>>>---------------------------------------------------------------------
>>>>>>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>>>>>>For additional commands, e-mail: tomcat-user-help@(protected)
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>        
>>>>>>
>>>>>
>>>>>
>>>>>      
>>>>>
>>>>
>>>>    
>>>>
>>>
>>>
>>>    
>>>
>>
>>---------------------------------------------------------------------
>>To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
>>For additional commands, e-mail: tomcat-user-help@(protected)
>>
>>
>>  
>>
>
>
>
>



---------------------------------------------------------------------
To unsubscribe, e-mail: tomcat-user-unsubscribe@(protected)
For additional commands, e-mail: tomcat-user-help@(protected)

©2008 junlu.com - Jax Systems, LLC, U.S.A.