<?xml version="1.0" encoding="UTF-8" ?>
<rss version="2.0">
  <channel>
    <title>liusu</title>
    <description></description>
    <link>http://liusu.javaeye.com</link>
    <language>UTF-8</language>
    <copyright>Copyright 2003-2008, JavaEye.com</copyright>
    <docs>http://blogs.law.harvard.edu/tech/rss</docs>
    <generator>JavaEye - 做最棒的软件开发交流社区</generator>
      <item>
        <title>Java ZIP API压缩文件解压后，丢失文件权限属性？如何找回？</title>
        <author>liusu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liusu.javaeye.com">liusu</a>&nbsp;
          链接：<a href="http://liusu.javaeye.com/blog/153876" style="color:red;">http://liusu.javaeye.com/blog/153876</a>&nbsp;
          发表时间: 2008年01月08日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          Java ZIP API提供了处理ZIP压缩以及解压的方法，但是有一个大的问题，压缩进去的文件解压后就丢失了文件可执行属性。这是部分压缩实现代码：<br /><pre name="code" class="java">
		File d = new File(dir);
		if (!d.isDirectory())
			throw new IllegalArgumentException("Not a directory:  " + dir);
		String[] entries = d.list();
		byte[] buffer = new byte[4096]; // Create a buffer for copying
		int bytesRead;

		ZipOutputStream out = new ZipOutputStream(new FileOutputStream(zipfile));

		for (int i = 0; i &lt; entries.length; i++) {
			File f = new File(d, entries[i]);
			if (f.isDirectory())
				continue;
			FileInputStream in = new FileInputStream(f); 
			ZipEntry entry = new ZipEntry(f.getPath()); 
			out.putNextEntry(entry); 
			while ((bytesRead = in.read(buffer)) != -1)
				out.write(buffer, 0, bytesRead);
			in.close();
		}
		out.close();
</pre><br /><br />其实就是一个流的读取，好像没有任何涉及到属性相关的操作。我用这样的代码压缩一些可执行脚本，然后使用unzip或其他程序解压，这些可执行脚本的执行权限就丢失了。<br /><br />我想了一个办法<br /><br />如果完全采用我自己程序来作压缩和解压，我可以在压缩的过程中，将文件的权限信息当作ZipEntry的Comment或其他属性设置进去，解压的时候读出来然后设置文件属性，但是这样就只局限于只能用我自己的压缩解压程序来处理。使用别的比如7-zip或WINRAR之类的程序解开就不行了。<br /><br />不晓得哪位碰到过类似的问题，是否可以给个思路?<br /><br />---<br /><br />我想7zip之类的压缩工具是不是也会是在压缩的时候将文件属性记录在某处，然后在解压的时候从那里读出来设定回去?
          <br/>
          <span style="color:red;">
            <a href="http://liusu.javaeye.com/blog/153876#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 08 Jan 2008 11:02:34 +0800</pubDate>
        <link>http://liusu.javaeye.com/blog/153876</link>
        <guid>http://liusu.javaeye.com/blog/153876</guid>
      </item>
      <item>
        <title>两个类实现同一个接口如何共享某些方法的实现?</title>
        <author>liusu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liusu.javaeye.com">liusu</a>&nbsp;
          链接：<a href="http://liusu.javaeye.com/blog/136690" style="color:red;">http://liusu.javaeye.com/blog/136690</a>&nbsp;
          发表时间: 2007年10月30日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          这个设计具体该如何实现?当前有一个接口IValidatable和两个需要实现这个接口的类Composite,Dialog<br /><br /><pre name="code" class="java">
public interface IValidatable{
   public boolean isValid();
   public void computeValid();
   public void addValidator(IInputValidator validator);
   public List&lt;IInputValidator> getValidators();
   public void addValidators(IInputValidator[] validators);
}
</pre><br /><br />现在在一个GUI(SWT)程序的设计中有两种类型的对象需要实现这个接口,<br />一个是Composite的扩展类ValidatableComposite,<br />一个是Dialog的扩展类ValidatableDialog(Composite and Dialog都非接口而是实际类).<br /><br />假定这两个类内部对<br />public void addValidator(IInputValidator validator);<br />public List&lt;IInputValidator> getValidators();<br />public void addValidators(IInputValidator[] validators);<br />三个方法的的实现是一致的.<br /><br />请问有什么办法可以避免在ValidatableComposite和ValidatableDialog重复实现那三个方法?
          <br/>
          <span style="color:red;">
            <a href="http://liusu.javaeye.com/blog/136690#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Tue, 30 Oct 2007 12:28:24 +0800</pubDate>
        <link>http://liusu.javaeye.com/blog/136690</link>
        <guid>http://liusu.javaeye.com/blog/136690</guid>
      </item>
      <item>
        <title>SWT大家数据绑定采用框架吗？有没有好用的推荐？</title>
        <author>liusu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liusu.javaeye.com">liusu</a>&nbsp;
          链接：<a href="http://liusu.javaeye.com/blog/132793" style="color:red;">http://liusu.javaeye.com/blog/132793</a>&nbsp;
          发表时间: 2007年10月17日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          我看了一下JFace Data binding,还有其他一些之类的，想问下大家开发类似程序会采用这些数据绑定框架吗？有没有比较成熟好用的推荐一下？
          <br/>
          <span style="color:red;">
            <a href="http://liusu.javaeye.com/blog/132793#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 17 Oct 2007 10:18:57 +0800</pubDate>
        <link>http://liusu.javaeye.com/blog/132793</link>
        <guid>http://liusu.javaeye.com/blog/132793</guid>
      </item>
      <item>
        <title>Tomcat崩溃会导致日志被截断?(已解决)</title>
        <author>liusu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liusu.javaeye.com">liusu</a>&nbsp;
          链接：<a href="http://liusu.javaeye.com/blog/123724" style="color:red;">http://liusu.javaeye.com/blog/123724</a>&nbsp;
          发表时间: 2007年09月14日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          日志中的一句话被硬生生切断,请问可能是什么原因?<br /><br /><pre name="code" class="java">2007-09-13 20:32:18 [com.liusu.app.Validator]-[DEBUG] Thu Sep 13 20:32:18 HKT 2007
2007-09-13 20:32:18 [com.liusu.app.ServiceHelper]-[DEBUG] Insert journal:100003 SUCC_CALL 357171303
2007-09-13 20:32:18 [com.liusu.sqlutil.JdbcUtils]-[DEBUG] SQL:insert into ABC(id,OBJ_ID,AGENT_ID,TIME_STA
MP,EVENT) values(null,?,?,now(),?)
2007-09-13 20:32:18 [com.liusu.sqlutil.JdbcConnectionFactory]-[DEBUG] Connection url:jdbc:mysql://localhost/liusu?user=root&password=
2007-09-13 20:32:18 [com.cosmact.ngtpx.app.ServiceImpl]-[DEBUG] ==>Agent reco
</pre><br /><br />这是Tomcat的Catalina.out的最后几行,关键是最后一行,本来应该是写的Agent record.结果就硬生生的给断了.日志写到这里,下面就啥都没有了.ps看了一下,两个jsvc进程全没了,Tomcat已经挂了.<br /><br />另外,日志大小已经到2G了,是不是有可能是日志大小的原因?<br /><br />谢谢!
          <br/>
          <span style="color:red;">
            <a href="http://liusu.javaeye.com/blog/123724#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Fri, 14 Sep 2007 10:11:07 +0800</pubDate>
        <link>http://liusu.javaeye.com/blog/123724</link>
        <guid>http://liusu.javaeye.com/blog/123724</guid>
      </item>
      <item>
        <title>TreeViewer如何通过TreeItem寻找到相应的Entity（即Input List中的元素）？</title>
        <author>liusu</author>
        <description>
          <![CDATA[
          <br/>
          作者: <a href="http://liusu.javaeye.com">liusu</a>&nbsp;
          链接：<a href="http://liusu.javaeye.com/blog/52970" style="color:red;">http://liusu.javaeye.com/blog/52970</a>&nbsp;
          发表时间: 2007年02月07日
          <br/><br/>
          声明：本文系JavaEye网站发布的原创博客文章，未经作者书面许可，严禁任何网站转载本文，否则必将追究法律责任！
          <br/><br/>
          使用CellEditor，写modify()的方法的时候一般会更新TreeItem的值。<br /><br />我想也有必要更新与TreeItem相对应的那个是数据Entity的值，这里就有一个问题，如何通过当前的TreeItem去Input List中寻找到相应的那个数据Entity呢？<br /><br />我最初想了一个折衷的办法：使用当前的TreeSelection对象，从TreeSelection对象中提取Entity并更新其值，前提是通过<span style="color: red">CellEditor来编辑数据是可以保证当前TreeSelection中的Entity数量有且只有一个，而且刚刚好就是CellEditor正在编辑的那个TreeItem对应的Entity</span>。（理解的不知道对不对？）<br /><br /><pre name="code" class="java">
TreeSelection selection = (TreeSelection) treeViewer.getSelection();
if (!selection.isEmpty()) {
    for (Iterator iterator = selection.iterator(); iterator.hasNext();) {
    Entity domain = (Entity) iterator.next();
    /*
     * Update the domain correlated the TreeItem where
     * CellEditor at.
     */
     domain.setValue(val);
     }
treeViewer.refresh();
}
</pre><br /><br />但是这样会带来一个问题，如果CellEditor编辑完了以后不敲Enter的话，直接点击下一个CellEditor框会将数据更新为我们刚刚输入的数据。<br /><br />最想知道，<span style="color: red">TreeViewer如何通过TreeItem寻找到相应的Entity？</span><br /><br />似乎应该发在新手区，请版主见谅，帮忙转移。谢谢。
          <br/>
          <span style="color:red;">
            <a href="http://liusu.javaeye.com/blog/52970#comments" style="color:red;">本文的讨论也很精彩，浏览讨论>></a>
          </span>
          <br/><br/><br/>
          <span style="color:#E28822;">JavaEye推荐</span>
          <br/>
          <ul class='adverts'><li><a href='/adverts/106' target='_blank'><span style="color:blue;font-weight:bold;">JavaEye问答大赛开始了！ 从6月23日 至 7月6日，奖品丰厚 ！</span></a></li><li><a href='/adverts/41' target='_blank'><span style="color:red;font-weight:bold;">北京: 千橡集团暨校内网诚聘软件研发工程师</span></a></li><li><a href='/adverts/97' target='_blank'><span style="color:blue;font-weight:bold;">Oracle专区上线，有Oracle最新文章，重要下载及知识库等精彩内容，欢迎访问。</span></a></li><li><a href='/adverts/92' target='_blank'><span style="color:red;font-weight:bold;">快来参加7月17日在成都举行的SOA中国技术论坛</span></a></li><li><a href='/adverts/42' target='_blank'><span style="color:red;font-weight:bold;">搜狐网站诚聘Java、PHP和C++工程师</span></a></li></ul>
          <br/><br/><br/>
          ]]>
        </description>
        <pubDate>Wed, 07 Feb 2007 16:44:37 +0800</pubDate>
        <link>http://liusu.javaeye.com/blog/52970</link>
        <guid>http://liusu.javaeye.com/blog/52970</guid>
      </item>
  </channel>
</rss>