You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2011/03/30 23:44:16 UTC
svn commit: r1087091 -
/directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/shared/dsmlv2/engine/Dsmlv2Engine.java
Author: kayyagari
Date: Wed Mar 30 21:44:16 2011
New Revision: 1087091
URL: http://svn.apache.org/viewvc?rev=1087091&view=rev
Log:
o do not append search response tag when no search results are present
Modified:
directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/shared/dsmlv2/engine/Dsmlv2Engine.java
Modified: directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/shared/dsmlv2/engine/Dsmlv2Engine.java
URL: http://svn.apache.org/viewvc/directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/shared/dsmlv2/engine/Dsmlv2Engine.java?rev=1087091&r1=1087090&r2=1087091&view=diff
==============================================================================
--- directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/shared/dsmlv2/engine/Dsmlv2Engine.java (original)
+++ directory/shared/trunk/dsml/engine/src/main/java/org/apache/directory/shared/dsmlv2/engine/Dsmlv2Engine.java Wed Mar 30 21:44:16 2011
@@ -215,7 +215,7 @@ public class Dsmlv2Engine
*/
public void processDSMLFile( File file, OutputStream respStream ) throws Exception
{
- parser = new Dsmlv2Parser();
+ parser = new Dsmlv2Parser(grammar);
parser.setInputFile( file.getAbsolutePath() );
processDSML( respStream );
@@ -244,7 +244,7 @@ public class Dsmlv2Engine
*/
public void processDSML( InputStream inputStream, String inputEncoding, OutputStream out ) throws Exception
{
- parser = new Dsmlv2Parser();
+ parser = new Dsmlv2Parser(grammar);
parser.setInput( inputStream, inputEncoding );
processDSML( out );
}
@@ -606,28 +606,35 @@ public class Dsmlv2Engine
case SEARCH_REQUEST:
SearchCursor searchResponses = connection.search( ( SearchRequest ) request );
- if ( respWriter != null )
- {
- StringBuilder sb = new StringBuilder();
- sb.append( "<searchResponse" );
-
- if ( request.getDecorated().getMessageId() > 0 )
- {
- sb.append( " requestID=\"" );
- sb.append( request.getDecorated().getMessageId() );
- sb.append( '"' );
- }
-
- sb.append( '>' );
-
- respWriter.write( sb.toString() );
- }
-
SearchResponseDsml searchResponseDsml = new SearchResponseDsml( connection.getCodecService() );
searchResponseDsml.setMessageId( request.getDecorated().getMessageId() );
+ boolean first = true;
+
while ( searchResponses.next() )
{
+ if( first )
+ {
+ if ( respWriter != null )
+ {
+ StringBuilder sb = new StringBuilder();
+ sb.append( "<searchResponse" );
+
+ if ( request.getDecorated().getMessageId() > 0 )
+ {
+ sb.append( " requestID=\"" );
+ sb.append( request.getDecorated().getMessageId() );
+ sb.append( '"' );
+ }
+
+ sb.append( '>' );
+
+ respWriter.write( sb.toString() );
+ }
+
+ first = false;
+ }
+
Response searchResponse = searchResponses.get();
if ( searchResponse.getType() == MessageTypeEnum.SEARCH_RESULT_ENTRY )
@@ -667,18 +674,22 @@ public class Dsmlv2Engine
}
SearchResultDone srDone = searchResponses.getSearchResultDone();
- resultCode = srDone.getLdapResult().getResultCode();
-
- SearchResultDoneDsml srdDsml = new SearchResultDoneDsml( connection.getCodecService(), srDone );
- writeResponse( respWriter, srdDsml);
- if ( respWriter != null )
- {
- respWriter.write( "</searchResponse>" );
- }
- else
+ if ( srDone != null )
{
- batchResponse.addResponse( searchResponseDsml );
+ resultCode = srDone.getLdapResult().getResultCode();
+
+ SearchResultDoneDsml srdDsml = new SearchResultDoneDsml( connection.getCodecService(), srDone );
+ writeResponse( respWriter, srdDsml);
+
+ if ( respWriter != null )
+ {
+ respWriter.write( "</searchResponse>" );
+ }
+ else
+ {
+ batchResponse.addResponse( searchResponseDsml );
+ }
}
break;