mirror of
https://github.com/Alfresco/alfresco-community-repo.git
synced 2025-08-07 17:49:17 +00:00
Merged V3.0 to HEAD
11982: Fix for ETHREEOH-906 - Writing the TICKET value directly to the page during template processing is a potential XSS security hole. 11983: Added back .html suffix to plain HTML form upload api call - added code comment to explain why it's there. 11984: Added debug/info level logging to Invite process. 11985: ETHREEOH-184: thumbnail assocs do not double up on check-in and thumbnail updates are done in one action 11986: Fix for ETHREEOH-905 - missing url encoding step for user password during webscript based login process. 11995: Unit test fixed up, fallout from runAs merge. 11998: Part of a fix for ETHREEOH-546 - Cannot save document to the any space for Microsoft Office 11999: Merged V2.2 to V3.0 11996: Fix for open Lucene ResultSet memory leaks 12000: ETHREEOH-692 - It is impossible to login to Alfresco from Microsoft Office add-in using NTLM authentication. ETHREEOH-546 - Cannot save document to the any space for Microsoft Office. 12001: Paging enabled by default in all Document Libraries git-svn-id: https://svn.alfresco.com/repos/alfresco-enterprise/alfresco/HEAD/root@12494 c4b6b30b-aa2e-2d43-bbcb-ca4b014f7261
This commit is contained in:
@@ -1009,6 +1009,7 @@ public class AdminNodeBrowseBean implements Serializable
|
||||
{
|
||||
rows.setWrappedData(resultSet.getChildAssocRefs());
|
||||
length = resultSet.length();
|
||||
resultSet.close();
|
||||
}
|
||||
}
|
||||
|
||||
|
@@ -220,12 +220,20 @@ public class AddUsersDialog extends BaseDialogBean
|
||||
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:");
|
||||
query.append(term);
|
||||
query.append("*");
|
||||
List<NodeRef> nodes;
|
||||
ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query(
|
||||
Repository.getStoreRef(),
|
||||
SearchService.LANGUAGE_LUCENE,
|
||||
query.toString());
|
||||
List<NodeRef> nodes = resultSet.getNodeRefs();
|
||||
|
||||
query.toString());
|
||||
try
|
||||
{
|
||||
nodes = resultSet.getNodeRefs();
|
||||
}
|
||||
finally
|
||||
{
|
||||
resultSet.close();
|
||||
}
|
||||
|
||||
ArrayList<SelectItem> itemList = new ArrayList<SelectItem>(nodes.size());
|
||||
for (NodeRef personRef : nodes)
|
||||
{
|
||||
|
@@ -37,6 +37,7 @@ import javax.transaction.UserTransaction;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationException;
|
||||
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.search.ResultSet;
|
||||
import org.alfresco.service.cmr.search.SearchParameters;
|
||||
import org.alfresco.service.cmr.search.SearchService;
|
||||
import org.alfresco.service.cmr.security.AuthenticationService;
|
||||
@@ -153,9 +154,18 @@ public class DeleteUserDialog extends BaseDialogBean
|
||||
params.setLanguage(SearchService.LANGUAGE_LUCENE);
|
||||
params.addStore(Repository.getStoreRef());
|
||||
params.setQuery(query);
|
||||
|
||||
List<NodeRef> people = this.getSearchService().query(params).getNodeRefs();
|
||||
|
||||
|
||||
ResultSet results = this.getSearchService().query(params);
|
||||
List<NodeRef> people;
|
||||
try
|
||||
{
|
||||
people = results.getNodeRefs();
|
||||
}
|
||||
finally
|
||||
{
|
||||
results.close();
|
||||
}
|
||||
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("Found " + people.size() + " users");
|
||||
|
||||
|
@@ -41,6 +41,7 @@ import org.alfresco.repo.search.impl.lucene.QueryParser;
|
||||
import org.alfresco.repo.security.authentication.AuthenticationException;
|
||||
import org.alfresco.service.cmr.repository.InvalidNodeRefException;
|
||||
import org.alfresco.service.cmr.repository.NodeRef;
|
||||
import org.alfresco.service.cmr.search.ResultSet;
|
||||
import org.alfresco.service.cmr.search.SearchParameters;
|
||||
import org.alfresco.service.cmr.search.SearchService;
|
||||
import org.alfresco.service.namespace.NamespaceService;
|
||||
@@ -343,7 +344,16 @@ public class UsersDialog extends BaseDialogBean implements IContextListener, Cha
|
||||
params.addStore(Repository.getStoreRef());
|
||||
params.setQuery(query.toString());
|
||||
|
||||
List<NodeRef> people = properties.getSearchService().query(params).getNodeRefs();
|
||||
ResultSet results = properties.getSearchService().query(params);
|
||||
List<NodeRef> people;
|
||||
try
|
||||
{
|
||||
people = results.getNodeRefs();
|
||||
}
|
||||
finally
|
||||
{
|
||||
results.close();
|
||||
}
|
||||
|
||||
if (logger.isDebugEnabled())
|
||||
logger.debug("Found " + people.size() + " users");
|
||||
|
@@ -272,13 +272,20 @@ public class EditFormWizard
|
||||
for (WebProject wp: webProjects)
|
||||
{
|
||||
ResultSet results = searchRenderingEngineTemplateInWebProject(wp, retd.getName());
|
||||
for (int i=0; i<results.length(); i++)
|
||||
try
|
||||
{
|
||||
NodeRef webformTemplateNodeRef = results.getNodeRef(i);
|
||||
NodeRef webformNodeRef = getNodeService().getPrimaryParent(webformTemplateNodeRef).getParentRef();
|
||||
getNodeService().removeChild(webformNodeRef, webformTemplateNodeRef);
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug(webformNodeRef);
|
||||
for (int i=0; i<results.length(); i++)
|
||||
{
|
||||
NodeRef webformTemplateNodeRef = results.getNodeRef(i);
|
||||
NodeRef webformNodeRef = getNodeService().getPrimaryParent(webformTemplateNodeRef).getParentRef();
|
||||
getNodeService().removeChild(webformNodeRef, webformTemplateNodeRef);
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug(webformNodeRef);
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
results.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -324,26 +331,33 @@ public class EditFormWizard
|
||||
|
||||
ResultSet webforms = getSearchService().query(wp.getNodeRef().getStoreRef(), SearchService.LANGUAGE_LUCENE, query);
|
||||
|
||||
props.clear();
|
||||
props.put(WCMAppModel.PROP_BASE_RENDERING_ENGINE_TEMPLATE_NAME,
|
||||
retd.getName());
|
||||
for (int i=0; i<webforms.length(); i++)
|
||||
try
|
||||
{
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("WebForm NodeRef: " + webforms.getNodeRef(i));
|
||||
|
||||
NodeRef templateRef = getNodeService().createNode(webforms.getNodeRef(i),
|
||||
WCMAppModel.ASSOC_WEBFORMTEMPLATE,
|
||||
WCMAppModel.ASSOC_WEBFORMTEMPLATE,
|
||||
WCMAppModel.TYPE_WEBFORMTEMPLATE,
|
||||
props).getChildRef();
|
||||
|
||||
if (retd.getOutputPathPatternForRendition() != null)
|
||||
{
|
||||
props.clear();
|
||||
props.put(WCMAppModel.PROP_OUTPUT_PATH_PATTERN, retd.getOutputPathPatternForRendition());
|
||||
getNodeService().addAspect(templateRef, WCMAppModel.ASPECT_OUTPUT_PATH_PATTERN, props);
|
||||
}
|
||||
props.clear();
|
||||
props.put(WCMAppModel.PROP_BASE_RENDERING_ENGINE_TEMPLATE_NAME,
|
||||
retd.getName());
|
||||
for (int i=0; i<webforms.length(); i++)
|
||||
{
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("WebForm NodeRef: " + webforms.getNodeRef(i));
|
||||
|
||||
NodeRef templateRef = getNodeService().createNode(webforms.getNodeRef(i),
|
||||
WCMAppModel.ASSOC_WEBFORMTEMPLATE,
|
||||
WCMAppModel.ASSOC_WEBFORMTEMPLATE,
|
||||
WCMAppModel.TYPE_WEBFORMTEMPLATE,
|
||||
props).getChildRef();
|
||||
|
||||
if (retd.getOutputPathPatternForRendition() != null)
|
||||
{
|
||||
props.clear();
|
||||
props.put(WCMAppModel.PROP_OUTPUT_PATH_PATTERN, retd.getOutputPathPatternForRendition());
|
||||
getNodeService().addAspect(templateRef, WCMAppModel.ASPECT_OUTPUT_PATH_PATTERN, props);
|
||||
}
|
||||
}
|
||||
}
|
||||
finally
|
||||
{
|
||||
webforms.close();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -380,7 +394,7 @@ public class EditFormWizard
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
/**
|
||||
* Action handler called when the Remove button is pressed to remove a
|
||||
* rendering engine
|
||||
*/
|
||||
|
@@ -492,14 +492,22 @@ public class RegenerateRenditionsWizard
|
||||
LOGGER.debug("running query " + query);
|
||||
sp.setQuery(query.toString());
|
||||
final ResultSet rs = getSearchService().query(sp);
|
||||
final List<FormInstanceData> result = new ArrayList<FormInstanceData>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
try
|
||||
{
|
||||
final String avmPath = AVMNodeConverter.ToAVMVersionPath(row.getNodeRef()).getSecond();
|
||||
final String previewAvmPath = AVMUtil.getCorrespondingPathInPreviewStore(avmPath);
|
||||
result.add(getFormsService().getFormInstanceData(-1, previewAvmPath));
|
||||
final List<FormInstanceData> result = new ArrayList<FormInstanceData>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
{
|
||||
final String avmPath = AVMNodeConverter.ToAVMVersionPath(row.getNodeRef()).getSecond();
|
||||
final String previewAvmPath = AVMUtil.getCorrespondingPathInPreviewStore(avmPath);
|
||||
result.add(getFormsService().getFormInstanceData(-1, previewAvmPath));
|
||||
}
|
||||
|
||||
return result;
|
||||
}
|
||||
finally
|
||||
{
|
||||
rs.close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Rendition> getRelatedRenditions(final WebProject webProject, final RenderingEngineTemplate ret)
|
||||
@@ -516,14 +524,21 @@ public class RegenerateRenditionsWizard
|
||||
LOGGER.debug("running query " + query);
|
||||
sp.setQuery(query.toString());
|
||||
final ResultSet rs = getSearchService().query(sp);
|
||||
final List<Rendition> result = new ArrayList<Rendition>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
try
|
||||
{
|
||||
final String avmPath = AVMNodeConverter.ToAVMVersionPath(row.getNodeRef()).getSecond();
|
||||
final String previewAvmPath = AVMUtil.getCorrespondingPathInPreviewStore(avmPath);
|
||||
result.add(getFormsService().getRendition(-1, previewAvmPath));
|
||||
final List<Rendition> result = new ArrayList<Rendition>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
{
|
||||
final String avmPath = AVMNodeConverter.ToAVMVersionPath(row.getNodeRef()).getSecond();
|
||||
final String previewAvmPath = AVMUtil.getCorrespondingPathInPreviewStore(avmPath);
|
||||
result.add(getFormsService().getRendition(-1, previewAvmPath));
|
||||
}
|
||||
return result;
|
||||
}
|
||||
finally
|
||||
{
|
||||
rs.close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
private List<Rendition> regenerateRenditions()
|
||||
@@ -596,65 +611,72 @@ public class RegenerateRenditionsWizard
|
||||
LOGGER.debug("running query " + query);
|
||||
sp.setQuery(query.toString());
|
||||
final ResultSet rs = getSearchService().query(sp);
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("received " + rs.length() + " results");
|
||||
|
||||
final List<Rendition> result = new ArrayList<Rendition>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
try
|
||||
{
|
||||
final String avmPath = AVMNodeConverter.ToAVMVersionPath(row.getNodeRef()).getSecond();
|
||||
final String previewAvmPath = AVMUtil.getCorrespondingPathInPreviewStore(avmPath);
|
||||
if (this.regenerateScope.equals(REGENERATE_SCOPE_ALL) ||
|
||||
this.regenerateScope.equals(REGENERATE_SCOPE_FORM))
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("received " + rs.length() + " results");
|
||||
|
||||
final List<Rendition> result = new ArrayList<Rendition>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
{
|
||||
final FormInstanceData fid = getFormsService().getFormInstanceData(-1, previewAvmPath);
|
||||
try
|
||||
final String avmPath = AVMNodeConverter.ToAVMVersionPath(row.getNodeRef()).getSecond();
|
||||
final String previewAvmPath = AVMUtil.getCorrespondingPathInPreviewStore(avmPath);
|
||||
if (this.regenerateScope.equals(REGENERATE_SCOPE_ALL) ||
|
||||
this.regenerateScope.equals(REGENERATE_SCOPE_FORM))
|
||||
{
|
||||
final List<FormInstanceData.RegenerateResult> regenResults = fid.regenerateRenditions();
|
||||
for (final FormInstanceData.RegenerateResult rr : regenResults)
|
||||
final FormInstanceData fid = this.formsService.getFormInstanceData(-1, previewAvmPath);
|
||||
try
|
||||
{
|
||||
if (rr.getException() != null)
|
||||
final List<FormInstanceData.RegenerateResult> regenResults = fid.regenerateRenditions();
|
||||
for (final FormInstanceData.RegenerateResult rr : regenResults)
|
||||
{
|
||||
Utils.addErrorMessage("error regenerating rendition using " +
|
||||
rr.getRenderingEngineTemplate().getName() +
|
||||
": " + rr.getException().getMessage(),
|
||||
rr.getException());
|
||||
}
|
||||
else
|
||||
{
|
||||
result.add(rr.getRendition());
|
||||
}
|
||||
if (rr.getRendition() != null)
|
||||
{
|
||||
getAvmLockingService().removeLock(AVMUtil.getStoreId(rr.getRendition().getPath()),
|
||||
AVMUtil.getStoreRelativePath(rr.getRendition().getPath()));
|
||||
if (rr.getException() != null)
|
||||
{
|
||||
Utils.addErrorMessage("error regenerating rendition using " +
|
||||
rr.getRenderingEngineTemplate().getName() +
|
||||
": " + rr.getException().getMessage(),
|
||||
rr.getException());
|
||||
}
|
||||
else
|
||||
{
|
||||
result.add(rr.getRendition());
|
||||
}
|
||||
if (rr.getRendition() != null)
|
||||
{
|
||||
this.avmLockingService.removeLock(AVMUtil.getStoreId(rr.getRendition().getPath()),
|
||||
AVMUtil.getStoreRelativePath(rr.getRendition().getPath()));
|
||||
}
|
||||
}
|
||||
}
|
||||
catch (FormNotFoundException fnfe)
|
||||
{
|
||||
Utils.addErrorMessage("error regenerating renditions of " + fid.getPath() +
|
||||
": " + fnfe.getMessage(),
|
||||
fnfe);
|
||||
}
|
||||
}
|
||||
catch (FormNotFoundException fnfe)
|
||||
else
|
||||
{
|
||||
Utils.addErrorMessage("error regenerating renditions of " + fid.getPath() +
|
||||
": " + fnfe.getMessage(),
|
||||
fnfe);
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
final Rendition r = getFormsService().getRendition(-1, previewAvmPath);
|
||||
try
|
||||
{
|
||||
r.regenerate();
|
||||
result.add(r);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Utils.addErrorMessage("error regenerating rendition using " +
|
||||
r.getRenderingEngineTemplate().getName() +
|
||||
": " + e.getMessage(),
|
||||
e);
|
||||
final Rendition r = this.formsService.getRendition(-1, previewAvmPath);
|
||||
try
|
||||
{
|
||||
r.regenerate();
|
||||
result.add(r);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
Utils.addErrorMessage("error regenerating rendition using " +
|
||||
r.getRenderingEngineTemplate().getName() +
|
||||
": " + e.getMessage(),
|
||||
e);
|
||||
}
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
finally
|
||||
{
|
||||
rs.close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@@ -259,8 +259,16 @@ public class SetPermissionsDialog extends UpdatePermissionsDialog
|
||||
query.append(term);
|
||||
query.append("*");
|
||||
ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query(Repository.getStoreRef(), SearchService.LANGUAGE_LUCENE, query.toString());
|
||||
List<NodeRef> nodes = resultSet.getNodeRefs();
|
||||
|
||||
List<NodeRef> nodes;
|
||||
try
|
||||
{
|
||||
nodes = resultSet.getNodeRefs();
|
||||
}
|
||||
finally
|
||||
{
|
||||
resultSet.close();
|
||||
}
|
||||
|
||||
for (int index = 0; index < nodes.size(); index++)
|
||||
{
|
||||
NodeRef personRef = nodes.get(index);
|
||||
|
@@ -391,8 +391,16 @@ public abstract class BaseInviteUsersWizard extends BaseWizardBean
|
||||
searchParams.setLimitBy(LimitBy.FINAL_SIZE);
|
||||
}
|
||||
|
||||
ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query(searchParams);
|
||||
List<NodeRef> nodes = resultSet.getNodeRefs();
|
||||
ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query(searchParams);
|
||||
List<NodeRef> nodes;
|
||||
try
|
||||
{
|
||||
nodes = resultSet.getNodeRefs();
|
||||
}
|
||||
finally
|
||||
{
|
||||
resultSet.close();
|
||||
}
|
||||
|
||||
// set the maximum users returned flag if appropriate
|
||||
if (nodes.size() == maxResults)
|
||||
|
@@ -128,6 +128,7 @@ public abstract class BaseReassignDialog extends BaseDialogBean
|
||||
SelectItem[] items;
|
||||
|
||||
UserTransaction tx = null;
|
||||
ResultSet resultSet = null;
|
||||
try
|
||||
{
|
||||
tx = Repository.getUserTransaction(context, true);
|
||||
@@ -143,7 +144,7 @@ public abstract class BaseReassignDialog extends BaseDialogBean
|
||||
query.append("*\" @").append(NamespaceService.CONTENT_MODEL_PREFIX).append("\\:userName:");
|
||||
query.append(term);
|
||||
query.append("*");
|
||||
ResultSet resultSet = Repository.getServiceRegistry(context).getSearchService().query(
|
||||
resultSet = Repository.getServiceRegistry(context).getSearchService().query(
|
||||
Repository.getStoreRef(), SearchService.LANGUAGE_LUCENE, query.toString());
|
||||
List<NodeRef> nodes = resultSet.getNodeRefs();
|
||||
|
||||
@@ -175,6 +176,13 @@ public abstract class BaseReassignDialog extends BaseDialogBean
|
||||
|
||||
items = new SelectItem[0];
|
||||
}
|
||||
finally
|
||||
{
|
||||
if (resultSet != null)
|
||||
{
|
||||
resultSet.close();
|
||||
}
|
||||
}
|
||||
|
||||
return items;
|
||||
}
|
||||
|
@@ -218,17 +218,24 @@ public final class FormsService
|
||||
final ResultSet rs = this.searchService.query(Repository.getStoreRef(),
|
||||
SearchService.LANGUAGE_LUCENE,
|
||||
query);
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("found " + rs.length() + " form definitions");
|
||||
final Collection<Form> result = new ArrayList<Form>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
try
|
||||
{
|
||||
result.add(this.getForm(row.getNodeRef()));
|
||||
if (LOGGER.isDebugEnabled())
|
||||
LOGGER.debug("found " + rs.length() + " form definitions");
|
||||
final Collection<Form> result = new ArrayList<Form>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
{
|
||||
result.add(this.getForm(row.getNodeRef()));
|
||||
}
|
||||
QuickSort sorter = new QuickSort((List)result, "name", true, IDataContainer.SORT_CASEINSENSITIVE);
|
||||
sorter.sort();
|
||||
|
||||
return result;
|
||||
}
|
||||
finally
|
||||
{
|
||||
rs.close();
|
||||
}
|
||||
QuickSort sorter = new QuickSort((List)result, "name", true, IDataContainer.SORT_CASEINSENSITIVE);
|
||||
sorter.sort();
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
/**
|
||||
@@ -400,15 +407,22 @@ public final class FormsService
|
||||
final ResultSet rs = this.searchService.query(Repository.getStoreRef(),
|
||||
SearchService.LANGUAGE_LUCENE,
|
||||
query);
|
||||
if (LOGGER.isDebugEnabled())
|
||||
try
|
||||
{
|
||||
LOGGER.debug("query " + query + " returned " + rs.length() + " results");
|
||||
if (LOGGER.isDebugEnabled())
|
||||
{
|
||||
LOGGER.debug("query " + query + " returned " + rs.length() + " results");
|
||||
}
|
||||
final List<NodeRef> result = new ArrayList<NodeRef>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
{
|
||||
result.add(row.getNodeRef());
|
||||
}
|
||||
return result;
|
||||
}
|
||||
final List<NodeRef> result = new ArrayList<NodeRef>(rs.length());
|
||||
for (final ResultSetRow row : rs)
|
||||
finally
|
||||
{
|
||||
result.add(row.getNodeRef());
|
||||
rs.close();
|
||||
}
|
||||
return result;
|
||||
}
|
||||
}
|
||||
|
@@ -145,18 +145,25 @@ public class Schema2XFormsProperties
|
||||
searchService.query(Repository.getStoreRef(),
|
||||
SearchService.LANGUAGE_LUCENE,
|
||||
"PATH:\"" + name + "\"");
|
||||
LOGGER.debug("search returned " + results.length() +
|
||||
" results");
|
||||
if (results.length() == 1)
|
||||
try
|
||||
{
|
||||
final NodeRef nr = results.getNodeRef(0);
|
||||
final ContentReader reader =
|
||||
contentService.getReader(nr, ContentModel.PROP_CONTENT);
|
||||
return reader.getContentInputStream();
|
||||
LOGGER.debug("search returned " + results.length() +
|
||||
" results");
|
||||
if (results.length() == 1)
|
||||
{
|
||||
final NodeRef nr = results.getNodeRef(0);
|
||||
final ContentReader reader =
|
||||
contentService.getReader(nr, ContentModel.PROP_CONTENT);
|
||||
return reader.getContentInputStream();
|
||||
}
|
||||
else
|
||||
{
|
||||
return super.getResourceAsStream(name);
|
||||
}
|
||||
}
|
||||
else
|
||||
finally
|
||||
{
|
||||
return super.getResourceAsStream(name);
|
||||
results.close();
|
||||
}
|
||||
}
|
||||
};
|
||||
|
Reference in New Issue
Block a user