Index: src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilterForInstance.java =================================================================== --- src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilterForInstance.java (revision 52420) +++ src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilterForInstance.java (working copy) @@ -73,7 +73,7 @@ public File downloadGivenInstanceLogFile(Habitat habitat, Server targetServer, Domain domain, Logger logger, String instanceName, String domainRoot, String logFileName, String instanceLogFileName) - throws IOException, WindowsException { + throws IOException { File instanceLogFile = null; @@ -168,17 +168,21 @@ String loggingDir = getLoggingDirectoryForNode(instanceLogFileName, node, sNode, instanceName); - DcomInfo info = new DcomInfo(node); - WindowsRemoteFileSystem wrfs = new WindowsRemoteFileSystem(info.getHost(), info.getUser(), info.getPassword()); + try { + DcomInfo info = new DcomInfo(node); + WindowsRemoteFileSystem wrfs = new WindowsRemoteFileSystem(info.getHost(), info.getUser(), info.getPassword()); - if (logFileName == null || logFileName.equals("")) { - logFileName = "server.log"; - } - WindowsRemoteFile wrf = new WindowsRemoteFile(wrfs, loggingDir + File.separator + logFileName); + if (logFileName == null || logFileName.equals("")) { + logFileName = "server.log"; + } + WindowsRemoteFile wrf = new WindowsRemoteFile(wrfs, loggingDir + File.separator + logFileName); - instanceLogFile = new File(logFileDirectoryOnServer + File.separator + logFileName); + instanceLogFile = new File(logFileDirectoryOnServer + File.separator + logFileName); - wrf.copyTo(instanceLogFile); + wrf.copyTo(instanceLogFile); + } catch (WindowsException ex) { + throw new IOException("Unable to download instance log file from DCOM Instance Node"); + } } @@ -188,7 +192,7 @@ public void downloadAllInstanceLogFiles(Habitat habitat, Server targetServer, Domain domain, Logger logger, String instanceName, String tempDirectoryOnServer, String instanceLogFileDirectory) - throws IOException, WindowsException { + throws IOException { // method is used from collect-log-files command // for Instance it's going through this loop. This will use ssh utility to get file from instance machine(remote machine) and @@ -242,27 +246,31 @@ scpClient.get(remoteFileNames, tempDirectoryOnServer); } else if (node.getType().equals("DCOM")) { - Vector instanceLogFileNames = getInstanceLogFileNames(habitat, targetServer, domain, logger, instanceName, instanceLogFileDirectory); + try { + Vector instanceLogFileNames = getInstanceLogFileNames(habitat, targetServer, domain, logger, instanceName, instanceLogFileDirectory); - String sourceDir = getLoggingDirectoryForNode(instanceLogFileDirectory, node, sNode, instanceName); + String sourceDir = getLoggingDirectoryForNode(instanceLogFileDirectory, node, sNode, instanceName); - DcomInfo info = new DcomInfo(node); + DcomInfo info = new DcomInfo(node); - WindowsRemoteFileSystem wrfs = new WindowsRemoteFileSystem(info.getHost(), info.getUser(), info.getPassword()); + WindowsRemoteFileSystem wrfs = new WindowsRemoteFileSystem(info.getHost(), info.getUser(), info.getPassword()); - for (int i = 0; i < instanceLogFileNames.size(); i++) { + for (int i = 0; i < instanceLogFileNames.size(); i++) { - String logFileName = (String) instanceLogFileNames.get(i); - WindowsRemoteFile wrf = new WindowsRemoteFile(wrfs, sourceDir + File.separator + logFileName); - File instanceLogFile = new File(tempDirectoryOnServer + File.separator + logFileName); - wrf.copyTo(instanceLogFile); + String logFileName = (String) instanceLogFileNames.get(i); + WindowsRemoteFile wrf = new WindowsRemoteFile(wrfs, sourceDir + File.separator + logFileName); + File instanceLogFile = new File(tempDirectoryOnServer + File.separator + logFileName); + wrf.copyTo(instanceLogFile); + } + } catch (WindowsException ex) { + throw new IOException("Unable to download instance log file from DCOM Instance Node"); } } } public Vector getInstanceLogFileNames(Habitat habitat, Server targetServer, Domain domain, Logger logger, - String instanceName, String instanceLogFileDirectory) throws IOException, WindowsException { + String instanceName, String instanceLogFileDirectory) throws IOException { // helper method to get all log file names for given instance String sNode = targetServer.getNodeRef(); @@ -355,21 +363,25 @@ sftpClient.close(); } else if (node.getType().equals("DCOM")) { - String loggingDir = getLoggingDirectoryForNode(instanceLogFileDirectory, node, sNode, instanceName); + try { + String loggingDir = getLoggingDirectoryForNode(instanceLogFileDirectory, node, sNode, instanceName); - DcomInfo info = new DcomInfo(node); - WindowsRemoteFileSystem wrfs = new WindowsRemoteFileSystem(info.getHost(), info.getUser(), info.getPassword()); - WindowsRemoteFile wrf = new WindowsRemoteFile(wrfs, loggingDir); - String[] allLogFileNames = wrf.list(); + DcomInfo info = new DcomInfo(node); + WindowsRemoteFileSystem wrfs = new WindowsRemoteFileSystem(info.getHost(), info.getUser(), info.getPassword()); + WindowsRemoteFile wrf = new WindowsRemoteFile(wrfs, loggingDir); + String[] allLogFileNames = wrf.list(); - for (int i = 0; i < allLogFileNames.length; i++) { - File file = new File(allLogFileNames[i]); - String fileName = file.getName(); - // code to remove . and .. file which is return - if (!fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") - && !fileName.contains(".log.")) { - instanceLogFileNamesAsString.add(fileName); + for (int i = 0; i < allLogFileNames.length; i++) { + File file = new File(allLogFileNames[i]); + String fileName = file.getName(); + // code to remove . and .. file which is return + if (!fileName.equals(".") && !fileName.equals("..") && fileName.contains(".log") + && !fileName.contains(".log.")) { + instanceLogFileNamesAsString.add(fileName); + } } + } catch (WindowsException ex) { + throw new IOException("Unable to get instance log file names from DCOM Instance Node"); } } Index: src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilter.java =================================================================== --- src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilter.java (revision 52420) +++ src/main/java/com/sun/enterprise/server/logging/logviewer/backend/LogFilter.java (working copy) @@ -47,7 +47,6 @@ import com.sun.enterprise.config.serverbeans.Server; import com.sun.enterprise.util.StringUtils; import com.sun.enterprise.util.SystemPropertyConstants; -import com.sun.enterprise.util.cluster.windows.process.WindowsException; import com.sun.logging.LogDomains; import org.glassfish.api.admin.CommandRunner; import org.glassfish.api.admin.ServerEnvironment; @@ -310,13 +309,8 @@ // if remote then need to download log file on DAS and returning that log file for view String logFileName = logFileDetailsForInstance.substring(logFileDetailsForInstance.lastIndexOf(File.separator) + 1, logFileDetailsForInstance.length()); File instanceFile = null; - try { - instanceFile = new LogFilterForInstance().downloadGivenInstanceLogFile(habitat, targetServer, domain, logger, - targetServerName, env.getDomainRoot().getAbsolutePath(), logFileName, logFileDetailsForInstance); - } catch (WindowsException we) { - throw new IOException("File not found for the given instance"); - } - + instanceFile = new LogFilterForInstance().downloadGivenInstanceLogFile(habitat, targetServer, domain, logger, + targetServerName, env.getDomainRoot().getAbsolutePath(), logFileName, logFileDetailsForInstance); return instanceFile.getAbsolutePath(); } Index: osgi.bundle =================================================================== --- osgi.bundle (revision 52420) +++ osgi.bundle (working copy) @@ -46,4 +46,7 @@ DynamicImport-Package: \ org.glassfish.cluster.ssh.launcher, \ org.glassfish.cluster.ssh.sftp, \ - com.trilead.ssh2 + com.trilead.ssh2, \ + com.sun.enterprise.util.cluster.windows.io, \ + com.sun.enterprise.util.cluster.windows.process, \ + org.glassfish.cluster.ssh.util