Hi again,
Other comments coming soon...
Here they are :
The files :
cite/conf/userBasic/demo/describe.xml
cite/conf/userBasic/demo/getCapabilities.xml
cite/conf/userBasic/demo/getFeature.xml
Have the following attribute :
xsi:schemaLocation="http://www.opengis.net/wfs../wfs/1.0.0/WFS-basic.xsd"
Given http://interops.esri.com/help/wfs_dft.htm, isn't it rather :
xsi:schemaLocation='http://www.opengis.net/wfs
../schema/wfs/1.0.0/WFS-basic.xsd'
(with a space) ? If so, maybe :
String wfsSchemaLoc = request.getSchemaBaseUrl()
+ "wfs/1.0.0/WFS-basic.xsd";
... should be changed in
org/vfny/geoserver/responses/wfs/GML2FeatureResponseDelegate.java
Now, trying : transactionUpdate.xml. Yeah !
But, when I repost this request (using reload in my browser), I get :
<wfs:WFS_TransactionResponse version="1.0.0"
xmlns:wfs="http://www.opengis.net/wfs"
xmlns:ogc="http://www.opengis.net/ogc"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.opengis.net/wfs
http://schemas.opengis.net/wfs/1.0.0/WFS-transaction.xsd">
<wfs:TransactionResult handle="">
<wfs:Status>
<wfs:FAILED />
</wfs:Status>
<wfs:Message>null topp:bc_roads 1: java.io.IOException: No feature
available to write at
org.geotools.data.DiffFeatureWriter.write(DiffFeatureWriter.java:150) at
org.geotools.data.InProcessLockingManager$1.write(InProcessLockingManager.ja
va:329) at
org.geotools.data.FilteringFeatureWriter.write(FilteringFeatureWriter.java:1
05) at
org.geotools.data.AbstractFeatureStore.modifyFeatures(AbstractFeatureStore.j
ava:145) at
org.geotools.data.AbstractFeatureStore.modifyFeatures(AbstractFeatureStore.j
ava:84) at
org.vfny.geoserver.global.GeoServerFeatureStore.modifyFeatures(GeoServerFeat
ureStore.java:122) at
org.vfny.geoserver.responses.wfs.TransactionResponse.execute(TransactionResp
onse.java:407) at
org.vfny.geoserver.responses.wfs.TransactionResponse.execute(TransactionResp
onse.java:99) at
org.vfny.geoserver.servlets.AbstractService.doService(AbstractService.java:3
65) at
org.vfny.geoserver.servlets.AbstractService.doPost(AbstractService.java:296)
at
org.vfny.geoserver.servlets.wfs.WfsDispatcher.doResponse(WfsDispatcher.java:
220) at
org.vfny.geoserver.servlets.wfs.WfsDispatcher.doPost(WfsDispatcher.java:110)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:760) at
javax.servlet.http.HttpServlet.service(HttpServlet.java:853) at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Application
FilterChain.java:247) at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterCh
ain.java:193) at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.ja
va:260) at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.ja
va:191) at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
org.apache.catalina.core.StandardContext.invoke(StandardContext.java:2415)
at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:180
) at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643) at
org.apache.catalina.valves.ErrorDispatcherValve.invoke(ErrorDispatcherValve.
java:170) at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641) at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:172
) at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:641) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java
:174) at
org.apache.catalina.core.StandardPipeline$StandardPipelineValveContext.invok
eNext(StandardPipeline.java:643) at
org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:480)
at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:995) at
org.apache.coyote.tomcat4.CoyoteAdapter.service(CoyoteAdapter.java:223) at
org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:432)
at
org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConne
ction(Http11Protocol.java:386) at
org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:534)
at
org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.jav
a:530) at java.lang.Thread.run(Thread.java:534)</wfs:Message>
</wfs:TransactionResult>
</wfs:WFS_TransactionResponse>
Well. It is quite normal but can't this big stack trace be shortened to get
something more human-readable ? Reciprocally, this big stack trace would
certainly be useful in the logs. Or maybe this behaviour is log-level
dependant ?
A basic question : In what transactionUpdateBad.xml is "bad" ? On the first
attempt, it returns a SUCCESS.
In the style editor, the file name is in the form :
C:\tomcat4\bin\..\webapps\geoserver\data\styles\blue.sld. Wouldn't it be
better to have a (absolutized) URL here ? Remember that
file:///C:\tomcat4\webapps\geoserver\data\styles\blue.sld *is* actually a
URL.
On a similar topic, the datastore editor displays a URL of the form :
file:data/featureTypes/bc_roads/bc_roads.shp. Well... I wonder if this one
conforms the to canonical URL scheme.
The last one is more cosmetic : where do the WFS description whitespaces
come from ? BTW : correct the typo "modificaiton".
Good night 
p.b.