# JForum to PHPBB3 help

**URL:** <https://forum.cloverdx.com/t/jforum-to-phpbb3-help/414>\
**Category:** CloverDX Platform\
**Created:** [October 10, 2008, 12:00am UTC](https://forum.cloverdx.com/t/jforum-to-phpbb3-help/414 "2008-10-10T00:00:00Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![jayderyu](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.cloverdx.com/jayderyu/32/133_2.png) [@jayderyu](https://forum.cloverdx.com/u/jayderyu)\
**Post date:** [October 10, 2008, 12:00am UTC](https://forum.cloverdx.com/t/jforum-to-phpbb3-help/414/1 "2008-10-10T00:00:00Z")

</div>

Here is my run down. Jforum broke. It’s not that big a problem except that the community is generally unhelpful. They tend to post once or twice then disapear. So i’m trying to convert my DB from JForum to PHPBB3.

The real work is converting the posts, topics and categories. It’s a personal small forum so there are few users.

JForum  
Posts(DB Input1)  
post\_id  
user\_id  
topic\_id  
forum\_id  
.bbcodes, smilies, time, ip,… the rest is not relative to orginization and data

Post\_text(DB Input2)  
post\_id  
post\_text(the actual content of the post)  
post\_subject)

PHPBB3  
Post(DB)  
post\_id  
user\_id  
topic\_id  
forum\_id  
post\_text(the actual content of the post)  
post\_subject)

basicly the phpbb just uses a single version of the post rather than splitting them.

So what i’ve done is have 2 DBInput tables. a ApproxMergerJoin and testing with a XLSDataWriter using a hand written meta data for output after joining. I’m just using the gui at the moment.

My current problem is with the size of data coming out of Database 2. posts\_text. It seems to hit a memory limit. Anyhelp would be well extremly helpful.

INFO [main] - \*\*\* CloverETL framework/transformation graph runner ver 2.5, (c) 2002-06 D.Pavlis, released under GNU Lesser General Public License \*\*\*  
INFO [main] - Running with framework version: 2.5 build#devel compiled 16/09/2008 16:58:06  
INFO [main] - Running on 2 CPU(s) max available memory for JVM 65088 KB  
INFO [main] - Loading default properties from: defaultProperties  
DEBUG [main] - Plugin org.jetel.bulkloader loaded.  
id - org.jetel.bulkloader  
version - 2.5.2  
provider-name -  
component { className = org.jetel.component.OracleDataReader; type = ORACLE\_DATA\_READER; }  
component { className = org.jetel.component.OracleDataWriter; type = ORACLE\_DATA\_WRITER; }  
component { className = org.jetel.component.MysqlDataReader; type = MYSQL\_DATA\_READER; }  
component { className = org.jetel.component.DB2DataWriter; type = DB2\_DATA\_WRITER; }  
component { className = org.jetel.component.InformixDataWriter; type = INFORMIX\_DATA\_WRITER; }  
component { className = org.jetel.component.MsSqlDataWriter; type = MS\_SQL\_DATA\_WRITER; }  
component { className = org.jetel.component.MysqlDataWriter; type = MYSQL\_DATA\_WRITER; }  
component { className = org.jetel.component.PostgreSqlDataWriter; type = POSTGRESQL\_DATA\_WRITER; }

DEBUG [main] - Plugin org.jetel.component loaded.  
id - org.jetel.component  
version - 2.5.2  
provider-name - null  
component { className = org.jetel.component.DataReader; type = DATA\_READER; }  
component { className = org.jetel.component.DataWriter; type = DATA\_WRITER; }  
component { className = org.jetel.component.DelimitedDataReader; type = DELIMITED\_DATA\_READER; }  
component { className = org.jetel.component.DelimitedDataWriter; type = DELIMITED\_DATA\_WRITER; }  
component { className = org.jetel.component.SimpleCopy; type = SIMPLE\_COPY; }  
component { className = org.jetel.component.Concatenate; type = CONCATENATE; }  
component { className = org.jetel.component.SimpleGather; type = SIMPLE\_GATHER; }  
component { className = org.jetel.component.Reformat; type = REFORMAT; }  
component { className = org.jetel.component.DBInputTable; type = DB\_INPUT\_TABLE; }  
component { className = org.jetel.component.Sort; type = SORT; }  
component { className = org.jetel.component.DBOutputTable; type = DB\_OUTPUT\_TABLE; }  
component { className = org.jetel.component.FixLenDataWriter; type = FIXLEN\_DATA\_WRITER; }  
component { className = org.jetel.component.Dedup; type = DEDUP; }  
component { className = org.jetel.component.FixLenDataReader; type = FIXLEN\_DATA\_READER; }  
component { className = org.jetel.component.Merge; type = MERGE; }  
component { className = org.jetel.component.MergeJoin; type = MERGE\_JOIN; }  
component { className = org.jetel.component.MergeJoin; type = EXT\_MERGE\_JOIN; }  
component { className = org.jetel.component.MergeJoin; type = SORTED\_JOIN; }  
component { className = org.jetel.component.Trash; type = TRASH; }  
component { className = org.jetel.component.DBExecute; type = DB\_EXECUTE; }  
component { className = org.jetel.component.HashJoin; type = HASH\_JOIN; }  
component { className = org.jetel.component.HashJoin; type = EXT\_HASH\_JOIN; }  
component { className = org.jetel.component.CheckForeignKey; type = CHECK\_FOREIGN\_KEY; }  
component { className = org.jetel.component.DBFDataReader; type = DBF\_DATA\_READER; }  
component { className = org.jetel.component.ExtFilter; type = EXT\_FILTER; }  
component { className = org.jetel.component.ExtSort; type = EXT\_SORT; }  
component { className = org.jetel.component.Partition; type = PARTITION; }  
component { className = org.jetel.component.DataIntersection; type = DATA\_INTERSECTION; }  
component { className = org.jetel.component.Aggregate; type = AGGREGATE; }  
component { className = org.jetel.component.SystemExecute; type = SYS\_EXECUTE; }  
component { className = org.jetel.component.RunGraph; type = RUN\_GRAPH; }  
component { className = org.jetel.component.KeyGenerator; type = KEY\_GEN; }  
component { className = org.jetel.component.AproxMergeJoin; type = APROX\_MERGE\_JOIN; }  
component { className = org.jetel.component.DBJoin; type = DBJOIN; }  
component { className = org.jetel.component.XLSReader; type = XLS\_READER; }  
component { className = org.jetel.component.XLSWriter; type = XLS\_WRITER; }  
component { className = org.jetel.component.CloverDataWriter; type = CLOVER\_WRITER; }  
component { className = org.jetel.component.CloverDataReader; type = CLOVER\_READER; }  
component { className = org.jetel.component.StructureWriter; type = STRUCTURE\_WRITER; }  
component { className = org.jetel.component.Normalizer; type = NORMALIZER; }  
component { className = org.jetel.component.Denormalizer; type = DENORMALIZER; }  
component { className = org.jetel.component.JmsReader; type = JMS\_READER; }  
component { className = org.jetel.component.JmsWriter; type = JMS\_WRITER; }  
component { className = org.jetel.component.LookupJoin; type = LOOKUP\_JOIN; }  
component { className = org.jetel.component.LookupTableReaderWriter; type = LOOKUP\_TABLE\_READER\_WRITER; }  
component { className = org.jetel.component.DataGenerator; type = DATA\_GENERATOR; }  
component { className = org.jetel.component.MultiLevelReader; type = MULTI\_LEVEL\_READER; }  
component { className = org.jetel.component.SequenceChecker; type = SEQUENCE\_CHECKER; }  
component { className = org.jetel.component.TextTableWriter; type = TEXT\_TABLE\_WRITER; }  
component { className = org.jetel.component.XmlXPathReader; type = XML\_XPATH\_READER; }  
component { className = org.jetel.component.Pacemaker; type = PACEMAKER; }  
component { className = org.jetel.component.SpeedLimiter; type = SPEED\_LIMITER; }  
component { className = org.jetel.component.JavaExecute; type = JAVA\_EXECUTE; }  
component { className = org.jetel.component.XmlWriter; type = XML\_WRITER; }  
component { className = org.jetel.component.XSLDataTransformer; type = XSL\_TRANSFORMER; }

DEBUG [main] - Plugin org.jetel.connection loaded.  
id - org.jetel.connection  
version - 2.5.2  
provider-name - null  
connection { className = org.jetel.connection.jdbc.DBConnection; type = JDBC; }  
connection { className = org.jetel.connection.jms.JmsConnection; type = JMS; }

DEBUG [main] - Plugin org.jetel.engine loaded.  
id - org.jetel.engine  
version - 2.5.2  
provider-name - null  
dictionaryEntry { className = org.jetel.graph.dictionary.StringDictionaryEntryProvider; type = string; }

DEBUG [main] - Plugin org.jetel.jdbc loaded.  
id - org.jetel.jdbc  
version - 2.5.2  
provider-name - null  
jdbcSpecific { name = DB2; class = org.jetel.connection.jdbc.specific.impl.DB2Specific; database = DB2; }  
jdbcSpecific { name = Informix; class = org.jetel.connection.jdbc.specific.impl.InformixSpecific; database = INFORMIX; }  
jdbcSpecific { name = MS SQL; class = org.jetel.connection.jdbc.specific.impl.MSSQLSpecific; database = MSSQL; }  
jdbcSpecific { name = MySQL; class = org.jetel.connection.jdbc.specific.impl.MySQLSpecific; database = MYSQL; }  
jdbcSpecific { name = Oracle; class = org.jetel.connection.jdbc.specific.impl.OracleSpecific; database = ORACLE; }  
jdbcSpecific { name = PostgreSQL; class = org.jetel.connection.jdbc.specific.impl.PostgreSpecific; database = POSTGRE; }  
jdbcDriver { driverLibrary = lib/mysql/mysql-connector-java-5.1.5-bin.jar; jdbcSpecific = MYSQL; name = MySQL; dbDriver = org.gjt.mm.mysql.Driver; urlHint = jdbc:mysql://hostname:3306/database; database = MYSQL; }  
jdbcDriver { driverLibrary = lib/postgre/postgresql-8.3-603.jdbc3.jar; jdbcSpecific = POSTGRE; name = PostgreSQL; dbDriver = org.postgresql.Driver; urlHint = jdbc:postgresql://hostname/database; database = POSTGRE; }

DEBUG [main] - Plugin org.jetel.lookup loaded.  
id - org.jetel.lookup  
version - 2.5.2  
provider-name - null  
lookup { className = org.jetel.lookup.SimpleLookupTable; type = simpleLookup; }  
lookup { className = org.jetel.lookup.DBLookupTable; type = dbLookup; }  
lookup { className = org.jetel.lookup.RangeLookupTable; type = rangeLookup; }

DEBUG [main] - Plugin org.jetel.sequence loaded.  
id - org.jetel.sequence  
version - 2.5.2  
provider-name - null  
sequence { className = org.jetel.sequence.SimpleSequence; type = SIMPLE\_SEQUENCE; }  
sequence { className = org.jetel.sequence.PrimitiveSequence; type = PRIMITIVE\_SEQUENCE; }

DEBUG [main] - Plugin org.jetel.thirdparty loaded.  
id - org.jetel.thirdparty  
version - 2.5.2  
provider-name - null  
component { className = org.jetel.component.XMLExtract; type = XML\_EXTRACT; }  
component { className = org.jetel.component.Filter; type = FILTER; }  
component { className = com.linagora.component.LdapReader; type = LDAP\_READER; }  
component { className = com.linagora.component.LdapWriter; type = LDAP\_WRITER; }

DEBUG [main] - Plugin org.jetel.tlfunction loaded.  
id - org.jetel.tlfunction  
version - 2.5.2  
provider-name - null  
tlfunction { libraryName = math; className = org.jetel.interpreter.extensions.MathLib; function = sqrt,log,log10,exp,round,pow,pi,e,random,abs; }  
tlfunction { libraryName = date; className = org.jetel.interpreter.extensions.DateLib; function = today,dateadd,datediff,trunc; }  
tlfunction { libraryName = string; className = org.jetel.interpreter.extensions.StringLib; function = concat,uppercase,lowercase,substring,left,right,trim,length,soundex,replace,split,char\_at,is\_blank,is\_ascii,is\_number,is\_integer,is\_long,is\_date,remove\_diacritic,remove\_blank\_space,get\_alphanumeric\_chars,translate,join,index\_of,count\_char; }  
tlfunction { libraryName = convert; className = org.jetel.interpreter.extensions.ConvertLib; function = num2str,date2str,str2date,date2num,str2num,try\_convert,base64byte,byte2base64,bits2str,str2bits,hex2byte,byte2hex,num2num,num2bool,bool2num,str2bool,long2date,date2long,to\_string; }

INFO [main] - Graph definition file: graph/posts.grf  
INFO [main] - Checking graph configuration…  
INFO [main] - Graph configuration is valid.  
INFO [main] - Graph initialization (posts)  
INFO [main] - Initializing connection:  
INFO [main] - DBConnection driver[org.jetel.connection.jdbc.driver.JdbcDriver@12aea3e]:jndi[null]:url[jdbc:hsqldb:hsql://192.168.0.10/xdb]:user[sa] … OK  
INFO [main] - Initializing connection:  
INFO [main] - DBConnection driver[org.jetel.connection.jdbc.driver.JdbcDriver@97d026]:jndi[null]:url[jdbc:mysql://192.168.0.10/sreforum]:user[jasonjarvis] … OK  
INFO [main] - register MBean with name:org.jetel.graph.runtime:type=CLOVERJMX\_1223575998812\_0  
INFO [WatchDog] - [Clover] Initializing phase: 0  
DEBUG [WatchDog] - initializing edges:  
DEBUG [WatchDog] - all edges initialized successfully…  
DEBUG [WatchDog] - initializing nodes:  
DEBUG [WatchDog] - APROX\_MERGE\_JOIN0 …OK  
DEBUG [WatchDog] - DB\_INPUT\_TABLE0 …OK  
DEBUG [WatchDog] - DB\_INPUT\_TABLE2 …OK  
DEBUG [WatchDog] - TRASH0 …OK  
DEBUG [WatchDog] - XLS\_WRITER0 …OK  
INFO [WatchDog] - [Clover] phase: 0 initialized successfully.  
INFO [WatchDog] - Starting up all nodes in phase [0]  
DEBUG [WatchDog] - APROX\_MERGE\_JOIN0 … started  
DEBUG [WatchDog] - DB\_INPUT\_TABLE0 … started  
DEBUG [WatchDog] - DB\_INPUT\_TABLE2 … started  
DEBUG [WatchDog] - TRASH0 … started  
DEBUG [WatchDog] - XLS\_WRITER0 … started  
INFO [WatchDog] - Sucessfully started all nodes in phase!  
DEBUG [DB\_INPUT\_TABLE0] - DB\_INPUT\_TABLE0: Sending query “select \* from JFORUM\_POSTS”  
DEBUG [DB\_INPUT\_TABLE2] - DB\_INPUT\_TABLE2: Sending query “select \* from JFORUM\_POSTS\_TEXT”  
DEBUG [DB\_INPUT\_TABLE0] - DB\_INPUT\_TABLE0: Query execution time: 00:00:00.062  
DEBUG [DB\_INPUT\_TABLE2] - DB\_INPUT\_TABLE2: Query execution time: 00:00:00.703  
ERROR [WatchDog] - Graph execution finished with error  
ERROR [WatchDog] - Node DB\_INPUT\_TABLE2 finished with status: ERROR caused by: The size of data buffer is only 12288. Set appropriate parameter in defautProperties file.  
DEBUG [WatchDog] - Node DB\_INPUT\_TABLE2 error details:  
java.lang.RuntimeException: The size of data buffer is only 12288. Set appropriate parameter in defautProperties file.  
at org.jetel.data.StringDataField.serialize(StringDataField.java:380)  
at org.jetel.data.DataRecord.serialize(DataRecord.java:453)  
at org.jetel.graph.DirectEdge.writeRecord(DirectEdge.java:238)  
at org.jetel.graph.Edge.writeRecord(Edge.java:342)  
at org.jetel.graph.Node.writeRecordBroadcast(Node.java:754)  
at org.jetel.component.DBInputTable.execute(DBInputTable.java:244)  
at org.jetel.graph.Node.run(Node.java:379)  
at java.lang.Thread.run(Unknown Source)  
Caused by: java.nio.BufferOverflowException  
at java.nio.Buffer.nextPutIndex(Unknown Source)  
at java.nio.DirectByteBuffer.putChar(Unknown Source)  
at org.jetel.data.StringDataField.serialize(StringDataField.java:377)  
… 7 more  
ERROR [WatchDog] - !!! Phase finished with error - stopping graph run !!!  
INFO [WatchDog] - ----------------------\*\* Final tracking Log for phase [0] \*\*---------------------  
INFO [WatchDog] - Time: 09/10/08 18:25:22  
INFO [WatchDog] - Node Status Port #Records #KB Rec/s KB/s  
INFO [WatchDog] - ----------------------------------------------------------------------------------  
INFO [WatchDog] - APROX\_MERGE\_JOIN0 RUNNING  
INFO [WatchDog] - %cpu:… In:0 240 21 0 0  
INFO [WatchDog] - In:1 17 37 0 0  
INFO [WatchDog] - Out:0 0 0 0 0  
INFO [WatchDog] - Out:1 0 0 0 0  
INFO [WatchDog] - DB\_INPUT\_TABLE0 FINISHED\_OK  
INFO [WatchDog] - %cpu:… Out:0 240 21 0 0  
INFO [WatchDog] - DB\_INPUT\_TABLE2 ERROR  
INFO [WatchDog] - %cpu:… Out:0 0 0 0 0  
INFO [WatchDog] - TRASH0 RUNNING  
INFO [WatchDog] - %cpu:… In:0 0 0 0 0  
INFO [WatchDog] - XLS\_WRITER0 RUNNING  
INFO [WatchDog] - %cpu:0.01 In:0 0 0 0 0  
INFO [WatchDog] - ---------------------------------\*\* End of Log \*\*--------------------------------  
INFO [WatchDog] - Execution of phase [0] successfully finished - elapsed time(sec): 1  
INFO [WatchDog] - -----------------------\*\* Summary of Phases execution \*\*---------------------  
INFO [WatchDog] - Phase# Finished Status RunTime(sec) MemoryAllocation(KB)  
INFO [WatchDog] - 0 ERROR 1 10846  
INFO [WatchDog] - ------------------------------\*\* End of Summary \*\*---------------------------  
INFO [WatchDog] - WatchDog thread finished - total execution time: 1 (sec)  
INFO [main] - Freeing graph resources.  
ERROR [main] - Execution of graph failed !

---

<div class="post-metadata">

**Author:** ![avackova](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@avackova](https://forum.cloverdx.com/u/avackova)\
**Post date:** [October 10, 2008, 6:45am UTC](https://forum.cloverdx.com/t/jforum-to-phpbb3-help/414/2 "2008-10-10T06:45:30Z")

</div>

Hello,  
try to change constants in defaultProperties file (see [Default properites](http://wiki.clovergui.net/doku.php?id=compile%5Ftime%5Fconstants)). For large data you have to set -Xmx parameter for jvm too.

---

<div class="post-metadata">

**Author:** ![jayderyu](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.cloverdx.com/jayderyu/32/133_2.png) [@jayderyu](https://forum.cloverdx.com/u/jayderyu)\
**Post date:** [October 10, 2008, 8:24pm UTC](https://forum.cloverdx.com/t/jforum-to-phpbb3-help/414/3 "2008-10-10T20:24:00Z")

</div>

thank you I was looking for this. Ok the properties file sais I should not exceed 64kb. Which sound reasonable. The database text is a LONGVARCHAR(2147483647) in size. Doesn’t this well exceed 64k, and would it be safe to set the MAX\_RECORD\_SIZE to say 100 more than that is listed. Just to cover the other record data.

If some one could give an answer. In the mean time I’m going to see what the longest post is and force a datasize change.

---

<div class="post-metadata">

**Author:** ![jayderyu](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.cloverdx.com/jayderyu/32/133_2.png) [@jayderyu](https://forum.cloverdx.com/u/jayderyu)\
**Post date:** [October 12, 2008, 3:05am UTC](https://forum.cloverdx.com/t/jforum-to-phpbb3-help/414/4 "2008-10-12T03:05:28Z")

</div>

I have managed to get the system to accept the large size. Theres another problem. I get a 1300kb(apx) from the DB, but the writer only does 6kb.

INFO [main] - Graph definition file: graph/posts.grf  
INFO [main] - Checking graph configuration…  
INFO [main] - Graph configuration is valid.  
INFO [main] - Graph initialization (posts)  
INFO [main] - Initializing connection:  
INFO [main] - DBConnection driver[org.jetel.connection.jdbc.driver.JdbcDriver@ff057f]:jndi[null]:url[jdbc:hsqldb:hsql://192.168.0.10/xdb]:user[sa] … OK  
INFO [main] - Initializing connection:  
INFO [main] - DBConnection driver[org.jetel.connection.jdbc.driver.JdbcDriver@94884d]:jndi[null]:url[jdbc:mysql://192.168.0.10/sreforum]:user[jasonjarvis] … OK  
INFO [main] - register MBean with name:org.jetel.graph.runtime:type=CLOVERJMX\_1223575998812\_0  
INFO [WatchDog] - [Clover] Initializing phase: 0  
DEBUG [WatchDog] - initializing edges:  
DEBUG [WatchDog] - all edges initialized successfully…  
DEBUG [WatchDog] - initializing nodes:  
DEBUG [WatchDog] - APROX\_MERGE\_JOIN0 …OK  
DEBUG [WatchDog] - DB\_INPUT\_TABLE0 …OK  
DEBUG [WatchDog] - DB\_INPUT\_TABLE2 …OK  
DEBUG [WatchDog] - TRASH0 …OK  
DEBUG [WatchDog] - XLS\_WRITER0 …OK  
INFO [WatchDog] - [Clover] phase: 0 initialized successfully.  
INFO [WatchDog] - Starting up all nodes in phase [0]  
DEBUG [WatchDog] - APROX\_MERGE\_JOIN0 … started  
DEBUG [WatchDog] - DB\_INPUT\_TABLE0 … started  
DEBUG [WatchDog] - DB\_INPUT\_TABLE2 … started  
DEBUG [WatchDog] - TRASH0 … started  
DEBUG [WatchDog] - XLS\_WRITER0 … started  
INFO [WatchDog] - Sucessfully started all nodes in phase!  
DEBUG [DB\_INPUT\_TABLE0] - DB\_INPUT\_TABLE0: Sending query “select \* from JFORUM\_POSTS”  
DEBUG [DB\_INPUT\_TABLE2] - DB\_INPUT\_TABLE2: Sending query “select \* from JFORUM\_POSTS\_TEXT”  
DEBUG [DB\_INPUT\_TABLE0] - DB\_INPUT\_TABLE0: Query execution time: 00:00:00.469  
DEBUG [DB\_INPUT\_TABLE2] - DB\_INPUT\_TABLE2: Query execution time: 00:00:01.765  
INFO [WatchDog] - ----------------------\*\* Final tracking Log for phase [0] \*\*---------------------  
INFO [WatchDog] - Time: 11/10/08 20:01:44  
INFO [WatchDog] - Node Status Port #Records #KB Rec/s KB/s  
INFO [WatchDog] - ----------------------------------------------------------------------------------  
INFO [WatchDog] - APROX\_MERGE\_JOIN0 FINISHED\_OK  
INFO [WatchDog] - %cpu:… In:0 240 21 0 0  
INFO [WatchDog] - In:1 240 1318 0 0  
INFO [WatchDog] - Out:0 240 6 0 0  
INFO [WatchDog] - Out:1 0 0 0 0  
INFO [WatchDog] - DB\_INPUT\_TABLE0 FINISHED\_OK  
INFO [WatchDog] - %cpu:… Out:0 240 21 0 0  
INFO [WatchDog] - DB\_INPUT\_TABLE2 FINISHED\_OK  
INFO [WatchDog] - %cpu:… Out:0 240 1318 0 0  
INFO [WatchDog] - TRASH0 FINISHED\_OK  
INFO [WatchDog] - %cpu:… In:0 0 0 0 0  
INFO [WatchDog] - XLS\_WRITER0 FINISHED\_OK  
INFO [WatchDog] - %cpu:… In:0 240 6 0 0  
INFO [WatchDog] - ---------------------------------\*\* End of Log \*\*--------------------------------  
INFO [WatchDog] - Execution of phase [0] successfully finished - elapsed time(sec): 6  
INFO [WatchDog] - -----------------------\*\* Summary of Phases execution \*\*---------------------  
INFO [WatchDog] - Phase# Finished Status RunTime(sec) MemoryAllocation(KB)  
INFO [WatchDog] - 0 FINISHED\_OK 6 9476  
INFO [WatchDog] - ------------------------------\*\* End of Summary \*\*---------------------------  
INFO [WatchDog] - WatchDog thread finished - total execution time: 6 (sec)  
INFO [main] - Freeing graph resources.  
INFO [main] - Execution of graph successful !

---

<div class="post-metadata">

**Author:** ![jayderyu](https://yyz1.discourse-cdn.com/flex007/user_avatar/forum.cloverdx.com/jayderyu/32/133_2.png) [@jayderyu](https://forum.cloverdx.com/u/jayderyu)\
**Post date:** [October 12, 2008, 10:18am UTC](https://forum.cloverdx.com/t/jforum-to-phpbb3-help/414/5 "2008-10-12T10:18:43Z")

</div>

ahh, sigh. I think I got it. Almost.  
I’ve got the joiner in place. I tested it with a flat file. I seemed to be limited to files no bigger than apx 40kb. What’s important that data did go where it was supposed to.

Now I am formatting my fields to match up with the database. I have the reformatter in place and have all the data mapped and stuff.

Any ideas?

Tranform  
//#TL  
int post\_time = $0.POST\_TIME;  
int edit\_time = $0.POST\_EDIT\_TIME;  
string attach = $0.ATTACH;

// Transforms input record into output record.  
function transform() {  
$0.post\_id := $0.POST\_ID;  
$0.topic\_id := $0.TOPIC\_ID;  
$0.forum\_id := $0.FORUM\_ID;  
$0.poster\_id := $0.USER\_ID;  
$0.icon\_id := 0;  
$0.poster\_ip := $0.POSTER\_IP;  
$0.post\_time := post\_time;  
$0.post\_approved := true;  
$0.post\_reported := false;  
$0.enable\_bbcode := $0.ENABLE\_BBCODE;  
$0.enable\_smilies := $0.ENABLE\_SMILIES;  
$0.enable\_magic\_url := true;  
$0.enable\_sig := $0.ENABLE\_SIG;  
$0.post\_username := “[search]”;  
$0.post\_subject := $0.SUBJECT;  
$0.post\_text := $0.TEXT;  
$0.post\_checksum := “”;  
$0.post\_attachment := attach;  
$0.bbcode\_bitfield := “”;  
$0.bbcode\_uid := “”;  
$0.post\_postcount := true;  
$0.post\_edit\_time := edit\_time;  
$0.post\_edit\_reason := “”;  
$0.post\_edit\_user := 0;  
$0.post\_edit\_count := $0.POST\_EDIT\_COUNT;  
$0.post\_edit\_locked := false;  
}

Result code for Reformat

DEBUG [WatchDog] - initializing edges:  
DEBUG [WatchDog] - all edges initialized successfully…  
DEBUG [WatchDog] - initializing nodes:  
DEBUG [WatchDog] - APROX\_MERGE\_JOIN1 …OK  
DEBUG [WatchDog] - DB\_INPUT\_TABLE0 …OK  
DEBUG [WatchDog] - DB\_INPUT\_TABLE2 …OK  
DEBUG [WatchDog] - DB\_OUTPUT\_TABLE0 …OK  
ERROR [WatchDog] - java.lang.NullPointerException  
ERROR [WatchDog] - Phase initialization failed with reason: REFORMAT0 …FAILED !  
Reason: null  
REFORMAT0 …FAILED !  
Reason: null  
at org.jetel.graph.Phase.init(Phase.java:159)  
at org.jetel.graph.runtime.WatchDog.executePhase(WatchDog.java:415)  
at org.jetel.graph.runtime.WatchDog.call(WatchDog.java:177)  
at org.jetel.graph.runtime.WatchDog.call(WatchDog.java:62)  
at java.util.concurrent.FutureTask$Sync.innerRun(Unknown Source)  
at java.util.concurrent.FutureTask.run(Unknown Source)  
at java.lang.Thread.run(Unknown Source)  
Caused by: null  
at org.jetel.component.WrapperTL.init(WrapperTL.java:197)  
at org.jetel.component.RecordTransformTL.init(RecordTransformTL.java:78)  
at org.jetel.component.RecordTransformFactory.createTransform(RecordTransformFactory.java:107)  
at org.jetel.component.Reformat.init(Reformat.java:244)  
at org.jetel.graph.Phase.init(Phase.java:154)  
… 6 more  
ERROR [WatchDog] - !!! Phase finished with error - stopping graph run !!!  
INFO [WatchDog] - ----------------------\*\* Final tracking Log for phase [0] \*\*---------------------  
INFO [WatchDog] - Time: 12/10/08 03:12:40  
INFO [WatchDog] - Node Status Port #Records #KB Rec/s KB/s  
INFO [WatchDog] - ----------------------------------------------------------------------------------  
INFO [WatchDog] - APROX\_MERGE\_JOIN1 READY  
INFO [WatchDog] - %cpu:… In:0 0 0 0 0  
INFO [WatchDog] - In:1 0 0 0 0  
INFO [WatchDog] - Out:0 0 0 0 0  
INFO [WatchDog] - Out:1 0 0 0 0  
INFO [WatchDog] - DB\_INPUT\_TABLE0 READY  
INFO [WatchDog] - %cpu:… Out:0 0 0 0 0  
INFO [WatchDog] - DB\_INPUT\_TABLE2 READY  
INFO [WatchDog] - %cpu:… Out:0 0 0 0 0  
INFO [WatchDog] - DB\_OUTPUT\_TABLE0 READY  
INFO [WatchDog] - %cpu:… In:0 0 0 0 0  
INFO [WatchDog] - REFORMAT0 ERROR  
INFO [WatchDog] - %cpu:… In:0 0 0 0 0  
INFO [WatchDog] - Out:0 0 0 0 0  
INFO [WatchDog] - TRASH0 N/A  
INFO [WatchDog] - %cpu:… In:0 0 0 0 0  
INFO [WatchDog] - ---------------------------------\*\* End of Log \*\*--------------------------------  
INFO [WatchDog] - Execution of phase [0] successfully finished - elapsed time(sec): 0  
INFO [WatchDog] - -----------------------\*\* Summary of Phases execution \*\*---------------------  
INFO [WatchDog] - Phase# Finished Status RunTime(sec) MemoryAllocation(KB)  
INFO [WatchDog] - 0 ERROR 0 3182  
INFO [WatchDog] - ------------------------------\*\* End of Summary \*\*---------------------------  
INFO [WatchDog] - WatchDog thread finished - total execution time: 0 (sec)  
INFO [main] - Freeing graph resources.  
Exception in thread “main” java.lang.NullPointerException  
at org.jetel.connection.jdbc.SQLDataParser.close(SQLDataParser.java:376)  
at org.jetel.component.DBInputTable.free(DBInputTable.java:370)  
at org.jetel.graph.Phase.free(Phase.java:337)  
at org.jetel.graph.TransformationGraph.freeResources(TransformationGraph.java:577)  
at org.jetel.graph.TransformationGraph.free(TransformationGraph.java:822)  
at org.jetel.main.runGraph.runGraph(runGraph.java:381)  
at org.jetel.main.runGraph.main(runGraph.java:310)

---

<div class="post-metadata">

**Author:** ![avackova](https://avatars.discourse-cdn.com/v4/letter/a/65b543/32.png) [@avackova](https://forum.cloverdx.com/u/avackova)\
**Post date:** [October 20, 2008, 7:23am UTC](https://forum.cloverdx.com/t/jforum-to-phpbb3-help/414/6 "2008-10-20T07:23:40Z")

</div>

You can’t use data record out of transform function - that’s why you get NPE. Move the whole transform code to transform function.
