<?xml version="1.0" encoding="utf-8" ?>

<rss version="2.0" 
   xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
   xmlns:admin="http://webns.net/mvcb/"
   xmlns:dc="http://purl.org/dc/elements/1.1/"
   xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
   xmlns:wfw="http://wellformedweb.org/CommentAPI/"
   xmlns:content="http://purl.org/rss/1.0/modules/content/"
    xmlns:creativeCommons="http://backend.userland.com/creativeCommonsRssModule" >
<channel>
    
    <title>/dev/weblog - Java</title>
    <link>https://devweblog.org/</link>
    <description>Technical drivel.</description>
    <dc:language>en</dc:language>
    <generator>Serendipity 1.6.2 - http://www.s9y.org/</generator>
    <pubDate>Sat, 11 Jun 2011 18:30:04 GMT</pubDate>

    <image>
        <url>https://devweblog.org/templates/default/img/s9y_banner_small.png</url>
        <title>RSS: /dev/weblog - Java - Technical drivel.</title>
        <link>https://devweblog.org/</link>
        <width>100</width>
        <height>21</height>
    </image>

<item>
    <title>Desktop Apps Be Damned</title>
    <link>https://devweblog.org/archives/53-Desktop-Apps-Be-Damned.html</link>
            <category>Java</category>
    
    <comments>https://devweblog.org/archives/53-Desktop-Apps-Be-Damned.html#comments</comments>
    <wfw:comment>https://devweblog.org/wfwcomment.php?cid=53</wfw:comment>

    <slash:comments>2</slash:comments>
    <wfw:commentRss>https://devweblog.org/rss.php?version=2.0&amp;type=comments&amp;cid=53</wfw:commentRss>
    

    <author>nospam@example.com (Double Compile)</author>
    <content:encoded>
    &lt;p&gt;As a side project, a couple of friends and I for a long time have been working on the &lt;a href=&quot;http://nsdgames.com&quot;&gt;Elysium role-playing game&lt;/a&gt;. I had an idea yesterday for a character generator and campaign builder. I remember from years past when I used to play Dungeons and Dragons that there was a free software character generator called &lt;a href=&quot;http://pcgen.sourceforge.net/&quot;&gt;PCGen&lt;/a&gt;. I took a look at it to see how easily I could develop plug-ins or data sets that applied to our game system. I didn&#039;t get a warm fuzzy about this looking at the PCGen docs. &lt;/p&gt;
&lt;p&gt;Jonathan Hawk&#039;s Rule of Programming #0 states that you will try to extend or reuse something, but find out it sucks and end up doing it yourself anyway. I&#039;m not saying that PCGen sucks by any stretch, but I don&#039;t think our non-d20 game system will be easily implementable there. Time to roll our own. &lt;/p&gt;
&lt;p&gt;I toyed with the idea of implementing it using &lt;a href=&quot;http://www.eclipse.org/home/categories/rcp.php&quot;&gt;Eclipse RCP&lt;/a&gt;, even going so far as to downloading the RCP environment and doing a tutorial. I was pretty impressed how easy it was to get a simple app going with Eclipse RCP. It was at this point that a few sudden realizations hit me. &lt;/p&gt;
&lt;ol&gt;
&lt;li&gt;I hate Java. I do it all day at work and with each keystroke, a little bit of my soul is stolen.&lt;/li&gt;
&lt;li&gt;I run Linux. If we wanted to distribute this cross-platform, I would have to do some leg work to get it built on Windows and Mac OS X machines.&lt;/li&gt;
&lt;li&gt;I gave thought to recent trends in computing of late: mobile and distributed applications. Nothing new and exciting is happening with native desktop programs anymore.&lt;/li&gt;
&lt;/ol&gt;
&lt;p&gt;I decided to abandon the idea that this application needs to be locally-installed on a person&#039;s computer, instead realizing that with HTML 5, I can create an app that runs across different devices (including phones and tablets) and would allow people to store their created characters and game information both locally on their device and remotely.&lt;/p&gt;
&lt;p&gt;To the ☁! Desktop Apps Be Damned!&lt;br /&gt;&lt;/p&gt; 
    </content:encoded>

    <pubDate>Mon, 06 Jun 2011 13:49:29 +0000</pubDate>
    <guid isPermaLink="false">https://devweblog.org/archives/53-guid.html</guid>
    <category>cloud</category>
<category>html5</category>
<category>java</category>
<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
</item>
<item>
    <title>Spring + Hibernate Search 3.1.0 = ArrayStoreException</title>
    <link>https://devweblog.org/archives/36-Spring-+-Hibernate-Search-3.1.0-ArrayStoreException.html</link>
            <category>Java</category>
    
    <comments>https://devweblog.org/archives/36-Spring-+-Hibernate-Search-3.1.0-ArrayStoreException.html#comments</comments>
    <wfw:comment>https://devweblog.org/wfwcomment.php?cid=36</wfw:comment>

    <slash:comments>1</slash:comments>
    <wfw:commentRss>https://devweblog.org/rss.php?version=2.0&amp;type=comments&amp;cid=36</wfw:commentRss>
    

    <author>nospam@example.com (Double Compile)</author>
    <content:encoded>
    &lt;p&gt;I&#039;m using Spring Framework version 3.0.0 (although, I&#039;ll bet the same problem would happen with 2.x). I&#039;m using Hibernate Search 3.1.0 (That&#039;s what&#039;s in Maven. I wonder why there&#039;s no 3.1.1).&lt;/p&gt; 
&lt;p&gt;Trying to use the configuration as follows inside of a Spring configuration document.&lt;/p&gt; 
&lt;div class=&quot;xml&quot; style=&quot;border: 1px solid #d0d0d0; font-family: monospace; color: #000066; background-color: #f0f0f0;&quot;&gt;&lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;property&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;name&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;eventListeners&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;map&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;entry&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;key&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;post-update&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value-ref&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;fullTextEventListener&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;entry&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;key&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;post-delete&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value-ref&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;fullTextEventListener&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;entry&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;key&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;post-insert&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;value-ref&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;fullTextEventListener&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;entry&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;key&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;flush&amp;quot;&lt;/span&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;list&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;bean&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;class&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;org.hibernate.event.def.DefaultFlushEventListener&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;ref&lt;/span&gt; &lt;span style=&quot;color: #000066;&quot;&gt;local&lt;/span&gt;=&lt;span style=&quot;color: #ff0000;&quot;&gt;&amp;quot;fullTextEventListener&amp;quot;&lt;/span&gt; &lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;/&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/list&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/entry&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/map&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;br /&gt; &lt;span style=&quot;color: #009900;&quot;&gt;&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;lt;/property&lt;span style=&quot;color: #000000; font-weight: bold;&quot;&gt;&amp;gt;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/div&gt; 
&lt;p&gt;Upon running some unit tests, I get a nasty Exception stack, with the following at the root.&lt;/p&gt; 
&lt;pre&gt;Caused by: java.lang.ArrayStoreException
	at java.lang.System.arraycopy(Native Method)
	at java.util.ArrayList.toArray(ArrayList.java:306)
	at org.springframework.orm.hibernate3.LocalSessionFactoryBean.buildSessionFactory(LocalSessionFactoryBean.java:759)
	at org.springframework.orm.hibernate3.AbstractSessionFactoryBean.afterPropertiesSet(AbstractSessionFactoryBean.java:211)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1460)
	at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1398)
	... 57 more
&lt;/pre&gt; 
&lt;p&gt;The root cause of the problem (and I needed to debug the Spring/Hibernate internals to figure this out) is that &lt;code&gt;FullTextIndexEventListener&lt;/code&gt; does &lt;em&gt;not&lt;/em&gt; implement the &lt;em&gt;FlushEventListener&lt;/em&gt; interface in version 3.1.0, but it does in 3.1.1.&lt;/p&gt; 
&lt;p&gt;Solution: upgrade (if you&#039;re using Maven, try the &lt;a href=&quot;http://repository.jboss.org/maven2/&quot;&gt;JBoss repository&lt;/a&gt; which has the latest stuff) or omit the &amp;quot;flush&amp;quot; event from the configuration.&lt;/p&gt; 
    </content:encoded>

    <pubDate>Tue, 19 Jan 2010 15:30:27 +0000</pubDate>
    <guid isPermaLink="false">https://devweblog.org/archives/36-guid.html</guid>
    <category>arraystoreexception</category>
<category>hibernate search</category>
<category>java</category>
<category>spring framework</category>
<creativeCommons:license>http://creativecommons.org/licenses/by-sa/3.0/</creativeCommons:license>
</item>

</channel>
</rss>